Introduction to Linux Privilege Escalation

Le compte root sur les systèmes Linux offre un accès administratif complet. Lors d’une box, il est fréquent d’obtenir un shell avec des privilèges limités et de devoir escalader les privilèges vers root. Cette compromission complète permettrait :

  • D’intercepter du trafic sensible.

  • D’accéder à des fichiers critiques.

  • D’étendre l’accès au sein de l’environnement.

  • D’obtenir le hachage NTLM si la machine est intégrée à un domaine Active Directory.


🔎 Énumération

L’énumération est la clé de l’escalade de privilèges. Des scripts comme LinEnumarrow-up-right peuvent aider, mais il est essentiel de comprendre quoi chercher et comment analyser manuellement.

🖥️ Version du système et du noyau

  • Distribution : Ubuntu, Debian, Fedora, Red Hat, CentOS, etc.

  • Version du noyau : certaines versions disposent d’exploits publics connus. ⚠️ Les exploits de noyau peuvent provoquer des instabilités ou un crash complet.

⚙️ Services en cours d’exécution

  • Identifier les services fonctionnant en tant que root.

  • Exemples : Nagios, Exim, Samba, ProFTPd.

  • Certains services ont des vulnérabilités connues (ex : CVE-2016-9566 sur Nagios < 4.2.4).

ps aux | grep root

📦 Paquets installés et versions

  • Vérifier les logiciels obsolètes.

  • Exemple : Screen 4.05.00 est vulnérable et exploitable pour obtenir root.

👥 Utilisateurs connectés

  • Identifier les utilisateurs actifs pour envisager un mouvement latéral.

🏠 Répertoires personnels

  • Vérifier l’accessibilité des répertoires utilisateurs.

  • Rechercher :

    • Clés SSH (.ssh/).

    • Fichiers de configuration (contenant mots de passe ou tokens).

    • .bash_history (commandes sensibles).

Exemple de découverte de clés SSH :

📜 Historique des commandes

  • Peut contenir : mots de passe en clair, gestion de dépôts Git, configuration de cron jobs.

🔑 Privilèges sudo

  • Vérifier si l’utilisateur peut exécuter des commandes avec sudo.

  • Les entrées NOPASSWD sont particulièrement critiques.

⚙️ Fichiers de configuration

  • Les fichiers .conf ou .config peuvent contenir des identifiants.

🔒 /etc/shadow et /etc/passwd

  • Si /etc/shadow est lisible → récupération de hachages de mots de passe.

  • Parfois des hachages sont visibles directement dans /etc/passwd (rare, souvent sur des systèmes embarqués).

⏰ Cron jobs

  • Les tâches planifiées peuvent être exploitées si elles utilisent des chemins relatifs ou des fichiers accessibles.

💾 Systèmes de fichiers et disques additionnels

  • Monter des partitions non montées peut révéler des sauvegardes ou des fichiers sensibles.

🛠️ Permissions SETUID et SETGID

  • Certains binaires permettent d’exécuter des commandes avec des privilèges root.

📂 Répertoires accessibles en écriture

  • Identifier où il est possible d’écrire pour déposer des outils ou exploiter un cron job vulnérable.

📄 Fichiers accessibles en écriture

  • Scripts ou fichiers de configuration modifiables pouvant être exécutés en tant que root.


🚀 Conclusion

L’énumération manuelle permet de découvrir :

  • Services vulnérables.

  • Fichiers sensibles.

  • Mauvaises configurations.

  • Opportunités liées aux permissions.

Ces informations ouvrent la voie à des attaques locales d’escalade de privilèges, qui seront étudiées dans les sections suivantes.


Last updated