Environment Enumeration
L’énumération de l’environnement est une étape clé dans l’escalade de privilèges. Comprendre le système sur lequel on a obtenu un premier accès est essentiel pour identifier des failles potentielles, des erreurs de configuration ou des vecteurs d’attaque exploitables.
Des scripts automatisés comme LinPEAS ou LinEnum existent et permettent d’accélérer cette phase, mais il est tout aussi important de savoir mener cette énumération manuellement pour garder la maîtrise de ce que l’on recherche.
🏷️ Informations essentielles à collecter
🔹 Version du système d’exploitation
Identifier la distribution (Ubuntu, Debian, CentOS, Fedora, FreeBSD, etc.)
Vérifier la version exacte, afin de déterminer si elle est vulnérable à des exploits publics connus.
Commande utile :
cat /etc/os-release🔹 Version du noyau (Kernel)
Certaines versions de noyau Linux sont affectées par des vulnérabilités critiques.
Exploiter un kernel vulnérable peut donner un accès root, mais cela peut aussi provoquer une instabilité système.
Commande utile :
uname -a🔹 Services en cours d’exécution
Identifier les services actifs, en particulier ceux lancés avec des privilèges élevés (root).
Certains services mal configurés (Nagios, Exim, Samba, ProFTPd, etc.) possèdent des PoC d’exploits publics.
🔹 Informations sur l’utilisateur courant
Qui sommes-nous sur la machine ?
À quels groupes appartenons-nous ?
Avons-nous déjà des privilèges sudo ?
Commandes utiles :
🧭 Acquisition de Connaissances (Situational Awareness)
Après avoir obtenu un premier shell (ex. via un reverse shell), il convient de collecter :
l’OS en place (ex. Ubuntu, CentOS, FreeBSD, etc.) ;
les chemins par défaut et variables d’environnement (
$PATH,env) ;la version du noyau (
uname -a) ;les informations CPU et matérielles (
lscpu).
Exemple :
Ces informations doivent être notées, et idéalement accompagnées de captures dans un rapport client pour prouver l’accès et le contexte.
🛡️ Sécurité et Défenses Actives
Points à vérifier :
SELinux, AppArmor, iptables, Fail2ban, Snort, ufw, etc. Connaître leur présence permet d’éviter de perdre du temps sur des attaques vouées à l’échec.
Voici une liste non exaustive de ces éléments :
💾 Systèmes de Fichiers et Périphériques
lsblk: identifier les disques, partitions et volumes logiques./etc/fstab: rechercher des informations sensibles (ex. identifiants dans les montages).df -h: examiner les systèmes de fichiers montés.Rechercher d’éventuels systèmes non montés ou temporaires contenant des données utiles.
👤 Utilisateurs et Groupes
/etc/passwd : lister les utilisateurs existants.
/etc/group : identifier les groupes privilégiés (ex.
sudo,adm).Vérifier les shells disponibles (
/etc/shells).Contrôler les répertoires personnels (
/home/) et fichiers intéressants :.bash_history.ssh/(clés privées).config/(fichiers de configuration)
💡 Les clés SSH et les mots de passe en clair sont des points critiques pour l’escalade de privilèges ou la persistance.
📡 Réseau et Communication
route/netstat -rn: table de routage.arp -a: adresses des hôtes récemment contactés./etc/resolv.conf: configuration DNS, souvent révélatrice d’un environnement Active Directory.
🗂️ Recherche de Fichiers Sensibles
Chercher dans les fichiers .conf, .config, et autres extensions susceptibles de contenir des identifiants.
Explorer les fichiers et dossiers cachés (
find / -type f -name ".*").Examiner les répertoires temporaires
/tmp,/var/tmp,/dev/shm.
📝 Conclusion
L’énumération manuelle de l’environnement permet de :
collecter des informations précieuses pour l’escalade de privilèges ;
identifier des failles de configuration ou de sécurité ;
préparer des attaques ciblées.
Même si des outils comme LinPEAS permettent de tout automatiser, une compréhension profonde des étapes et des commandes utilisées est indispensable pour être efficace dans n’importe quel environnement.
📚 Ressources Utiles
SSH to 10.129.203.104 (ACADEMY-LLPE-SUDO) with user "htb-student" and password "HTB_@cademy_stdnt!"
Enumerate the Linux environment and look for interesting files that might contain sensitive data. Submit the flag as the answer.
Afin d'effectuer l'énumération du système, nous allons utiliser grep qui va nous permettre de retrouver notre flag dans l'ensemble du système :
Nous pouvons ainsi relever le flag présent dans le fichier /usr/lib/int-check.sh :
Last updated