
Énumération d'escalade de privilèges post-exploitation Linux
Enumy est un exécutable portable ultra rapide que vous déposez sur une machine Linux cible lors d'un pentest ou d'un CTF en phase de post-exploitation. L'exécution d'enumy permet d'énumérer la machine à la recherche de vulnérabilités de sécurité courantes.
Vous pouvez télécharger le binaire final depuis l'onglet release x86 ou x64. Lié statiquement à musl Transférez le binaire enumy final sur la machine cible.
./enumy
$ ./enumy64 -h
▄█▀─▄▄▄▄▄▄▄─▀█▄ _____
▀█████████████▀ | __|___ _ _ _____ _ _
█▄███▄█ | __| | | | | | |
█████ |_____|_|_|___|_|_|_|_ |
█▀█▀█ |___|
https://github.com/luke-goddard/enumy
Enumy - Utilisé pour énumérer l'environnement cible et rechercher
les vulnérabilités de sécurité courantes et les points sensibles
----------------------------------------------------------------------
Output
-o <loc> Écrire les RÉSULTATS à cet emplacement (par défaut enumy.json)
Parcours du système de fichiers
-i <loc> IGNORER les fichiers dans ce répertoire (utile pour les partages réseau)
-w <loc> Parcourir UNIQUEMENT les fichiers dans ce répertoire (utile pour le développement)
Options d'analyse
-f exécuter les analyses COMPLÈTES (analyses gourmandes en CPU activées)
-t <num> THREADS (par défaut 4)
Options d'affichage
-a Afficher tous les problèmes d'AUDIT de sécurité à l'écran (probablement inutile pendant un CTF)
Les problèmes sont TOUJOURS enregistrés dans les fichiers de résultats, indépendamment de ce drapeau.
-d <1|2> Afficher le mode DEBUG (1 faible, 2 élevé) pour afficher les erreurs à l'écran.
-g <H|M|L> Afficher à l'écran les valeurs SUPÉRIEURES ou égales à haute, moyenne et faible
-p <H|M|L|I> NE PAS AFFICHER à l'écran les problèmes haute, moyenne, faible et info (voir exemple ci-dessous)
-m 1-100 Nombre MAXIMUM de problèmes avec le même nom à afficher à l'écran (par défaut illimité)
Pour compiler pendant le développement, make et la bibliothèque libcap sont suffisants.
sudo apt-get install libcap-dev
make
Pour supprimer la dépendance à glibc et lier statiquement toutes les bibliothèques/compiler avec musl, procédez comme suit. Note : pour cela, vous devrez avoir docker installé pour créer l'environnement de build alpine.
./build.sh 64bit
./build.sh 32bit
./build.sh all
cd output

Voici la liste toujours croissante des analyses qui ont été implémentées.
Remarque : pour afficher les résultats marqués ❌, activez le mode audit avec le drapeau -a.
Cette analyse vérifie les versions du noyau pour voir si elles correspondent à des versions de noyau avec des exploits connus.
L'idée de cette analyse est d'énumérer le système à la recherche de binaires SUID/GUID anormaux, ou avec des permissions faibles qui peuvent être exploitées.
Récemment, le noyau Linux prend en charge les capacités, c'est la méthode privilégiée pour donner à un fichier un sous-ensemble des pouvoirs de root afin d'atténuer les risques. Bien que ce soit une manière beaucoup plus sûre de faire les choses, si vous avez la chance de trouver des capacités anormales définies sur un fichier, il est tout à fait possible que vous puissiez exploiter l'exécutable pour obtenir un accès plus élevé. Enumy vérifiera les capacités définies sur tous les fichiers exécutables du système.
Il s'agit d'une analyse plus générique qui tentera de catégoriser un fichier en fonction de son contenu, de son extension et de son nom. Enumy recherchera des fichiers tels que des clés privées, des mots de passe et des fichiers de sauvegarde.
Les fichiers coredump sont un type de fichier ELF qui contient l'espace d'adressage d'un processus lorsque le programme se termine de manière inattendue. Imaginez maintenant si la mémoire de ce processus était lisible et contenait des informations sensibles. Ou mieux encore, ce coredump pourrait être celui d'un outil développé en interne qui a fait un segfault, vous permettant de développer un zero day.
Certains fichiers ne devraient jamais avoir le bit SUID. Il est assez courant qu'un administrateur système paresseux donne à un fichier comme docker, ionice, hexdump le SUID pour faire fonctionner un script bash ou faciliter sa vie. Cette analyse essaie de trouver certains binaires SUID connus comme étant dangereux.
Sysctl est utilisé pour modifier les paramètres du noyau en temps réel. Il est également possible d'interroger ces paramètres du noyau et de vérifier si des mesures de sécurité importantes comme ASLR sont activées.
Vivre sur le terrain est une technique utilisée par les attaquants qui exploitent ce qui est déjà présent sur le système. Ils le font pour rester discrets, entre autres raisons. Cette analyse énumère les fichiers qu'un attaquant rechercherait.
Cette analyse analyse les fichiers ELF pour leurs dépendances. Si nous avons un accès en écriture à l'une de ces dépendances ou un accès en écriture à des valeurs DT_RPATH et DT_RUNPATH, alors nous pouvons créer notre propre objet partagé malveillant dans cet exécutable, compromettant potentiellement le système.
SSH est l'un des services les plus courants que vous trouverez dans le monde réel. Il est également assez facile de mal le configurer. Cette analyse vérifie s'il peut être durci d'une manière ou d'une autre.
L'analyse de l'utilisateur actuel analyse simplement /etc/passwd. Avec ces informations, nous trouvons les comptes root, les répertoires personnels non protégés et manquants, etc.
Cette analyse va trouver les fichiers qui sont globalement inscriptibles, les permissions inégales et les fichiers sans propriétaire. Voir ici pour l'inspiration de l'analyse.
Cette analyse serait utile pour les personnes qui tentent de durcir leur machine Linux. Elle mettra en évidence des problèmes tels que des disques non chiffrés et des configurations de montage non sécurisées.
| Type d'analyse | Analyse rapide | Analyse complète | Implémentée | Affichée à l'écran | Enregistrée dans le journal |
|---|
| Suggesteur d'exploit kernel | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse SUID/GUID | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse des capacités de fichiers | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Analyse des fichiers intéressants | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse des coredumps | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse des binaires d'évasion | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse de la configuration SSHD | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
| Analyse sysctl | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse « Vivre sur le terrain » | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse de l'utilisateur actuel | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| Analyse d'injection *.so | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Analyse des permissions | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Analyse du système de fichiers | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
| Analyse Docker | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse de l'environnement | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse des accès privilégiés | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse réseau | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse des informations système | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse des informations de version | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse des identifiants faibles par défaut | ✔️ | ✔️ | ❌ | ✔️ | |
| Analyse crypto faible | ❌ | ✔️ | ❌ | ✔️ |