Accueil Technologie
12 façons d’énumérer Linux pour l’escalade des privilèges

12 façons d’énumérer Linux pour l’escalade des privilèges

L’énumération est l’une des étapes clés des tests de pénétration. C’est la première chose à faire lorsque vous avez compromis un système cible en tant que testeur de pénétration. Bien qu’il existe une pléthore d’outils permettant d’automatiser ce processus, il est toujours recommandé de parcourir et de revérifier manuellement le système à la recherche de vecteurs potentiels d’escalade des privilèges.

Examinons les différentes façons d’énumérer manuellement un système Linux à la recherche d’une escalade de privilèges.


Pourquoi l’énumération est-elle importante pour l’escalade de privilèges ?

L’escalade des privilèges, également connue sous le nom d’escalade des privilèges (EOP), est un élément essentiel des tests de pénétration et de leur méthodologie. Comme son nom l’indique, il s’agit d’une étape au cours de laquelle vous tentez d’élever vos privilèges jusqu’à l’administrateur ou, dans les systèmes Linux, jusqu’à l’utilisateur root.

Pour obtenir les privilèges de l’utilisateur root, il faut d’abord trouver une vulnérabilité dans le système. C’est là que l’énumération entre en jeu. Bien qu’il existe des outils pour automatiser l’énumération, le plus souvent, une énumération manuelle et approfondie permet de découvrir des configurations erronées et d’autres vulnérabilités qui ne sont pas détectées par les outils.

1. Énumération du système

énumération des informations sur le système

La première chose à faire après avoir pris pied est de se renseigner sur le système auquel vous avez accès. Cela vous aidera à optimiser vos charges utiles en fonction de l’architecture et à garantir une compatibilité maximale avec le système cible.

Par exemple, si vous avez un exploit 64 bits, vous devrez le modifier si votre système cible ne prend en charge que les logiciels 32 bits, car il existe une différence entre les systèmes 32 bits et 64 bits.

De plus, connaître la version du noyau vous aidera à rechercher des exploits sur le web au cas où vous trouveriez que la version est dépassée et vulnérable à un exploit public. Voici quelques commandes qui vous aideront à obtenir des informations sur le système :

Pour obtenir des informations sur le système, telles que la version du noyau, la version du système d’exploitation, etc :

 cat /etc/cpuinfo 
uname -a

Si vous souhaitez en savoir plus sur l’architecture du processeur, utilisez la commande lscpu :

 lscpu 

2. Énumération des processus

énumération des processus sous Linux

Les processus sont des programmes en cours d’exécution. Connaître la liste complète des processus sur un système Linux, associée à quelques autres tactiques d’énumération mentionnées dans ce guide, vous aidera à identifier les processus potentiellement vulnérables et à les exploiter pour élever vos privilèges.

Par exemple, si vous trouvez un processus s’exécutant avec les privilèges de root, vous pourriez être en mesure d’y injecter du code arbitraire, ce qui pourrait conduire à une escalade réussie des privilèges.

Vous pouvez utiliser la commande ps avec l’option aux pour lister tous les processus du système :

 ps aux 

3. Énumération des utilisateurs et des groupes

L'énumération des groupes sous Linux

L’énumération des utilisateurs et des groupes est importante pour déterminer qui a accès à quelle partie du système. En sachant cela, vous pouvez délimiter vos cibles de manière efficace et construire une stratégie d’attaque efficace. En outre, vous êtes en mesure de créer des mappages appropriés et de comprendre en profondeur les rôles et les privilèges de chaque compte.

La visibilité des comptes privilégiés vous permet d’essayer des combinaisons connues de nom d’utilisateur et de mot de passe. Vous pouvez imprimer le contenu du /etc/passwd et /etc/group pour accéder à la liste des utilisateurs. Vous pouvez également utiliser la commande getent.

Pour obtenir la liste des utilisateurs sous Linux :

 getent passwd 

Pour obtenir la liste des groupes :

 getent group 

4. Recherche de fichiers sensibles

accès au fichier passwd

Fichiers sensibles tels que /etc/passwd et /etc/shadow peut potentiellement divulguer beaucoup d’informations. A partir de /etc/shadow vous pouvez trouver les hachages des mots de passe des utilisateurs et tenter de les casser avec un outil de cassage de hachages comme Hashcat ou John the Ripper.

Il y a aussi l’outil /etc/sudoers qui, si vous pouvez l’éditer d’une manière ou d’une autre, permettra de modifier les permissions sudo pour les utilisateurs et les groupes.

5. Vérification des permissions sudo

énumération des permissions sudo

La bonne gestion des permissions sudo est cruciale pour la sécurité d’un système Linux. L’analyse des permissions sudo vous permettra d’identifier les vecteurs potentiels d’escalade des privilèges. S’il y a des erreurs de configuration, par exemple si certains programmes ont un niveau de privilège alarmant, vous pourriez être en mesure de les exploiter pour obtenir l’accès à la racine.

Ce n’est qu’un exemple des nombreuses voies d’attaque qui peuvent s’ouvrir une fois que vous avez compris les autorisations sudo dans le système Linux. Un autre exemple serait l’utilisation abusive du mécanisme de préchargement de bibliothèque LD_PRELOAD, que vous pouvez énumérer en examinant les autorisations sudo.

 sudo -l 

6. Trouver des exploits dans le noyau Linux

trouver les exploits du noyau linux

Les exploits du noyau Linux sont mortels car ils s’attaquent au cœur du système d’exploitation fonctionnant sur le système compromis. Avec une faille critique du noyau, vous pourrez faire à peu près n’importe quoi avec le système.

Pour trouver des exploits du noyau, il faut d’abord connaître la version du noyau, puis, à l’aide d’un outil comme searchsploit ou de Google Dorks, trouver un exploit approprié affectant la version exacte du noyau fonctionnant sur le système.

7. Exploitation des binaires SUID

énumération des binaires SUID

SUID est l’abréviation de Set Owner User ID upon execution. Il s’agit d’un type spécial d’autorisation de fichier qui, lorsqu’elle est définie, exécute un programme avec les privilèges de son propriétaire.

Si un programme a été créé par l’utilisateur root et que le bit SUID a été activé pour lui, le programme, lorsqu’il est exécuté, possède les privilèges de l’utilisateur root. Comment peut-on abuser du SUID ? C’est très simple.

Enumerate for all binaries with SUID bit set, scourate through the list, find a binary for which you have write access, and edit its source to add your payload. Vous pouvez utiliser la commande find pour rechercher les binaires SUID et rediriger la sortie standard vers /dev/null:

 find / -perm -4000 2>/dev/null 

8. Détournement de bibliothèques

Il peut arriver que des programmes s’exécutant sur le système utilisent des bibliothèques qui ne sont pas protégées en écriture. Dans un tel scénario, vous pouvez facilement écraser la bibliothèque utilisée et prendre le contrôle des fonctionnalités du programme.

Si vous avez de la chance et que vous trouvez un programme s’exécutant en tant que root, vous pouvez détourner la bibliothèque dont il dépend et potentiellement obtenir un accès shell root.

9. Investigation et détournement des variables d’environnement

énumération des variables d'environnement

Les variables d’environnement sont des types particuliers de variables qui, dans une certaine mesure, définissent le fonctionnement du système et des programmes. Une variable d’environnement importante est la variable PATH.

Elle stocke l’emplacement de tous les binaires exécutables dans le système. Vous pouvez manipuler la variable PATH et l’associer à d’autres vulnérabilités telles que le détournement de bibliothèque pour obtenir un accès root.

Par exemple, supposons qu’il y ait un exécutable avec un bit SUID activé. Pour fonctionner correctement, il appelle un binaire sans définir son chemin d’accès complet.

Vous pouvez tirer parti de cette situation en créant une version dupliquée et malveillante du binaire, et en mettant à jour la variable PATH avec l’emplacement du binaire malveillant, de sorte que lorsque l’exécutable SUID est lancé, votre binaire malveillant sera exécuté en tant que root, et vous serez en mesure de créer un shell root.

De plus, il y a de bonnes chances de trouver des clés secrètes et des mots de passe en regardant simplement les variables d’environnement. Vous pouvez afficher toutes les variables d’environnement à l’aide de la commande env :

 env 

10. Trouver des artefacts dans l’historique de Bash

Souvent, l’historique de l’utilisateur actuel n’est pas supprimé. Vous pouvez abuser de cela pour potentiellement accéder à des informations sensibles ou réexécuter des commandes précédentes avec des paramètres modifiés.

Bien que cela ne conduise probablement pas à une escalade des privilèges, c’est une bonne source de fuites d’informations pour vous donner une idée de ce que l’utilisateur fait habituellement sur le système.

11. Détournement de tâches Cron vulnérables

énumération des jobs cron

Les tâches cron sont une fonctionnalité intégrée et très utile de Linux. Si vous avez migré de Windows, un travail cron peut être directement comparé à une tâche planifiée sous Windows.

Il s’exécute périodiquement et exécute des commandes. L’heure à laquelle il s’exécute et les commandes qu’il exécute sont prédéfinies par l’utilisateur. Il peut arriver que certaines tâches cron soient vulnérables à des attaques telles que l’injection de caractères génériques ou qu’elles soient accessibles en écriture par l’utilisateur sous lequel vous vous êtes connecté.

Vous pouvez abuser de ces vulnérabilités pour obtenir un accès root au système. Pour exploiter une tâche cron, vous devez d’abord en trouver une vulnérable. Voici les commandes permettant de lister les tâches cron en cours d’exécution et d’autres données pertinentes :

 ls /etc/cron.d/
crontab -l -u <username>

12. Liste des paquets périmés

recherche de logiciels obsolètes

Lorsque vous avez accès à un système, l’une des premières mesures à prendre est de dresser la liste de tous les logiciels installés et de comparer leur version installée à leur dernière version.

Il est possible qu’un paquetage obscur soit installé, qui n’est peut-être pas beaucoup utilisé, mais qui est extrêmement vulnérable à une attaque par élévation de privilèges. Vous pouvez alors exploiter ce paquetage pour obtenir l’accès à la racine.

Utiliser la commande dpkg avec l’option -l pour lister les paquets installés sur les systèmes basés sur Debian et Ubuntu :

 dpkg -l 

Pour les systèmes RHEL/CentOS/Fedora, utilisez cette commande pour lister les paquets installés :

 rpm -qa  

Vous savez maintenant comment énumérer manuellement Linux pour l’escalade des privilèges

L’escalade des privilèges dépend uniquement de l’énumération. Plus vous avez accès à des informations, mieux vous pourrez planifier vos stratégies d’attaque.

Une énumération efficace est essentielle pour prendre pied, escalader les privilèges et persister avec succès sur le système cible. Bien qu’il soit utile de faire les choses manuellement, certaines tâches peuvent être confiées à des outils automatisés afin de gagner du temps et d’économiser des efforts. Vous devez connaître les meilleurs outils de sécurité pour rechercher les vulnérabilités d’un système.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x