Méthodes d'énumération Linux pour augmenter les privilèges

L'énumération est l'une des principales étapes des tests d'intrusion. C'est la première chose que vous faites lorsque vous piratez un système cible en tant que testeur d'intrusion. Bien qu'il existe une pléthore d'outils pour automatiser ce processus, il est toujours judicieux de rechercher manuellement le système et de le revérifier pour détecter les vecteurs d'escalade potentiels.

Comme le processus d'extraction d'informations telles que les noms d'utilisateur, les noms de machine, les ressources réseau, les partages, l'énumération et les services sont définis par le système. Dans la phase d'énumération, le pirate établit des connexions actives avec le système et dirige les requêtes pour obtenir plus d'informations sur le système cible. Il utilise les informations collectées pour identifier les failles ou les faiblesses du système de sécurité et tente ensuite de les exploiter. Les techniques de recensement se déroulent dans un environnement connecté. Cela inclut l'établissement de communications actives avec le système cible.

Examinons les différentes façons d'énumérer manuellement Linux pour l'élévation des privilèges. Vérifier Meilleurs outils de test d'intrusion pour les professionnels de la cybersécurité.

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Pourquoi le recensement est-il important pour l'escalade des pouvoirs ?

L'escalade de privilèges, également connue sous le nom d'escalade de privilèges (EOP), est un composant et une méthodologie essentiels pour les tests d'intrusion. Comme son nom l'indique, il s'agit d'une étape où vous essayez d'élever vos privilèges à l'administrateur ou, sur les systèmes Linux, à l'utilisateur root.

Pour obtenir les privilèges root, vous devez d'abord trouver une vulnérabilité dans le système. C'est là que le recensement peut être utile. Bien qu'il existe des outils pour automatiser l'énumération, souvent, une énumération manuelle approfondie peut révéler des erreurs de configuration et d'autres vulnérabilités qui ne sont pas capturées par les outils.

1. Énumération du système

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

La première chose que vous devez faire après avoir pris pied est de vous familiariser avec le système auquel vous avez établi un accès. Cela vous aidera à optimiser vos charges utiles pour correspondre à l'architecture et assurer une compatibilité maximale de vos charges utiles 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 découvririez que la version est obsolète et vulnérable aux exploits publics. Voici quelques commandes qui vous aideront à récupérer les informations système :

Pour trouver des informations système telles que la version du noyau, la version du système d'exploitation, etc., tapez :

cat /etc/cpuinfo 

uname -a

Si vous voulez en savoir plus sur l'architecture du CPU, utilisez la commande lscpu:

lscpu

2. Énumération des processus

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Les processus exécutent des logiciels. Connaître la liste complète des processus sous Linux, ainsi que certaines des autres méthodes d'énumération mentionnées dans ce guide, vous aidera à identifier les processus potentiellement vulnérables et à en tirer parti pour augmenter les privilèges.

Par exemple, si vous trouvez un processus qui s'exécute avec des privilèges root, vous pourrez peut-être y insérer du code arbitraire qui peut élever le privilège avec succès.

Vous pouvez utiliser la commande ps avec des signes aux Pour répertorier tous les processus du système :

ps aux

Vérifier Gestion des processus Linux : le guide ultime.

3. Énumération des utilisateurs et des groupes

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

L'énumération des utilisateurs et des groupes est importante pour savoir qui a accès à quelle partie du système. Le savoir vous permet de cibler efficacement vos cibles et de construire une stratégie d'attaque efficace. De plus, vous pouvez créer des mappages appropriés et comprendre en profondeur les rôles et les privilèges de chaque compte.

La visibilité des comptes premium vous permet d'essayer des combinaisons de nom d'utilisateur et de mot de passe bien connues. Vous pouvez imprimer le contenu des fichiers /etc/passwd et /etc/group pour accéder à la liste des utilisateurs. Alternativement, vous pouvez également utiliser la commande obtenir.

Pour obtenir une liste d'utilisateurs sous Linux :

getent passwd

Pour obtenir une liste de groupes :

getent group

4. Enquêtez sur les fichiers sensibles

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Les fichiers sensibles comme /etc/passwd et /etc/shadow peuvent divulguer beaucoup d'informations. À partir de /etc/shadow , vous pouvez trouver le hachage du mot de passe de l'utilisateur et essayer de le déchiffrer avec un pirate de hachage comme Hashcat ou John the Ripper.

Il existe également un fichier /etc/sudoers , qui, si vous pouvez le modifier d'une manière ou d'une autre, permettra de modifier les autorisations sudo pour les utilisateurs et les groupes.

5. Vérifiez les autorisations sudo

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Une bonne gestion des autorisations sudo est essentielle à l'intégrité du système Linux. L'analyse des autorisations sudo vous donnera un aperçu des routeurs potentiels pour l'élévation des privilèges. S'il y a des erreurs de configuration telles que certaines applications avec un niveau de privilège alarmant, vous pourrez peut-être les exploiter pour un accès root.

Ceci n'est qu'un exemple des nombreux chemins d'attaque qui peuvent s'ouvrir une fois que les autorisations sudo sont claires sous Linux. Un autre exemple est l'abus du mécanisme de préchargement de la bibliothèque LD_PRELOAD, que vous pouvez énumérer en consultant les autorisations sudo.

sudo -l

Vérifier La plupart des raisons pour lesquelles Linux n'a pas besoin d'un antivirus ou d'un pare-feu.

6. Trouvez n'importe quel exploit dans le noyau Linux

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Les exploits du noyau Linux sont mortels car ils attaquent le cœur du système d'exploitation exécuté sur le système cible. Avec une grave faille dans le noyau, vous pourrez faire presque n'importe quoi avec le système.

Pour trouver les vulnérabilités du noyau, découvrez d'abord la version du noyau, puis utilisez un outil comme searchsploit ou utilisez Google Dorks, trouvez un exploit approprié qui affecte la version exacte du noyau en cours d'exécution sur le système.

7. Exploiter les binaires SUID

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

SUID signifie Set Owner User ID On Execution. Il s'agit d'un type spécial d'autorisation de fichier qui, lorsqu'il est défini, exécute un programme avec les privilèges de son propriétaire.

Si un programme est créé par l'utilisateur root et que le bit SUID est défini pour celui-ci, le programme, lorsqu'il est exécuté, aura les privilèges root. Comment SUID peut-il être abusé ? c'est facile.

Vous devez énumérer tous les binaires avec le bit SUID défini, parcourir la liste, trouver un binaire pour lequel vous avez un accès en écriture et modifier sa source pour ajouter votre charge utile. Vous pouvez utiliser la commande find pour rechercher des binaires SUID et rediriger la sortie standard vers /dev/null :

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

8. Piratage de bibliothèques

Parfois, il peut y avoir des programmes en cours d'exécution sur le système qui 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 contrôler la fonctionnalité du programme.

Si vous avez de la chance et que vous trouvez un programme enraciné, vous pouvez détourner la bibliothèque dont il dépend et éventuellement obtenir un accès root.

9. Enquêter et détourner des variables d'environnement

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Les variables d'environnement sont des types spéciaux de variables qui, dans une certaine mesure, déterminent le fonctionnement du système et des programmes. La variable d'environnement importante est la variable PATH.

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

Par exemple, supposons qu'il existe un fichier exécutable avec le bit SUID défini. Pour fonctionner correctement, il appelle un binaire sans spécifier son chemin complet.

Vous pouvez en tirer parti en créant une copie malveillante du binaire et en mettant à jour la variable PATH avec l'emplacement du binaire malveillant. Ainsi, lorsque vous exécutez l'exécutable SUID, le binaire malveillant s'exécutera en tant que root, et vous aussi. Vous pourrez produire un root shell.

De plus, il y a aussi de bonnes chances de trouver des clés secrètes et des mots de passe simplement en regardant les variables d'environnement. Vous pouvez imprimer toutes les variables d'environnement avec la commande env :

env

10. Rechercher des traces dans l'historique de Bash

Souvent, l'historique de l'utilisateur actuel ne sera pas supprimé. Vous pouvez en abuser pour accéder à des informations sensibles ou réexécuter des commandes précédentes avec des paramètres modifiés.

Bien que ceux-ci ne conduisent probablement pas à une élévation des privilèges, ils constituent une bonne source de fuites d'informations pour clarifier ce que l'utilisateur fait habituellement sur le système.

11. Détourner des tâches Cron vulnérables

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Les tâches cron sont une fonctionnalité intégrée et hautement ressourcée de Linux. Si vous migrez depuis Windows, la tâche cron peut être directement comparée à une tâche planifiée sous Windows.

Travaille régulièrement et exécute les commandes. L'heure à laquelle il s'exécutera et les commandes à exécuter sont prédéfinies par l'utilisateur. Parfois, vous pouvez constater que certaines tâches cron sont vulnérables aux attaques telles que l'injection de caractères génériques ou sont accessibles en écriture par l'utilisateur avec lequel vous êtes connecté.

Vous pouvez exploiter ces vulnérabilités pour obtenir un accès root sur le système. Pour exploiter une tâche Cron, vous devez d'abord trouver une tâche vulnérable. Voici les commandes pour répertorier les tâches Cron en cours d'exécution et d'autres données pertinentes :

ls /etc/cron.d/

crontab -l -u <username>

12. Insérez les anciens packages

Méthodes d'énumération Linux pour l'escalade de privilèges - Linux

Lorsque vous avez accès à un système, l'une des premières étapes à suivre consiste à répertorier tous les packages logiciels installés et leurs versions installées, ainsi que leurs dernières versions.

Il est possible que certains packages obscurs soient installés, qu'ils ne soient pas encore beaucoup utilisés et qu'ils soient très vulnérables aux attaques par escalade de privilèges. Vous pouvez ensuite exploiter ce package pour un accès root.

Utilisez la commande dpkg avec l'indicateur -l pour répertorier les packages 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 répertorier les packages installés :

rpm -qa

Vérifier Raisons de l'augmentation des attaques de la chaîne d'approvisionnement.

Vous savez maintenant comment énumérer manuellement Linux pour augmenter les privilèges

L'escalade des pouvoirs ne dépend que de l'énumération. Plus vous avez accès à des informations, mieux vous pouvez planifier des stratégies d'attaque.

Une énumération efficace est essentielle pour établir un pied, augmenter les privilèges et survivre avec succès sur votre système cible. Bien que faire les choses manuellement aide, certaines tâches peuvent être assignées à des outils automatisés pour gagner du temps et des efforts. Vous devez connaître les meilleurs outils de sécurité pour analyser le système à la recherche de vulnérabilités. Vous pouvez voir maintenant Comment installer et configurer Snort IDS sur Linux pour sécuriser votre réseau.

Aller au bouton supérieur