Views: 3576
Dans cet article, nous allons passer d’un utilisateur lambda sans droits à l’utilisateur root à l’aide d’un script python et de la technique “python library hijacking“.
Python Library Hijacking :
Le contexte de cet exemple est très simple, nous avons un utilisateur simple_user qui après vérification peut lancer le script example.py à l’aide de sudo :
Cependant ce n’est pas aussi facile que ça étant donné que nous n’avons pas les droits d’écriture sur ce dernier !
Mais comment faire pour bypass dans ce cas là ?
Il faut regarder en détail notre fameux script, qui à titre d’exemple importe le module random et génère une liste de nombre entre 10 et 30 et nous l’affiche :
La méthode de cet article repose sur le fait que nous allons pouvoir écrire notre propre module random mais qui sera bien sûr malicieux et nous permettra donc de passer root.
En effet, en créant un fichier random.py dans le chemin /home/simple_user/ python va prioriser l’exécution de ce module à la place du chemin habituel que l’on peut retrouver avec la commande :
python3 -c 'import sys; print("\n".join(sys.path))'
C’est donc parti pour la création de notre “module” dans /home/simple_user/ :
Une fois le module os importé nous mettons le bit SUID sur le binaire bash.
Il est désormais temps d’exécuter le script afin qu’il fasse appel à notre module :
sudo /usr/bin/python3 /home/simple_user/example.py
Après vérification du fichier /bin/bash nous pouvons voir la réussite du processus !
Il suffit à présent d’exécuter la commande :
/bin/bash -p
Très bon article ! Une de mes privesc préféré !
très bon article !
Fonctionne pas en mutu, ils bloquent sudo 🙂
Tant mieux ça limite pas mal de choses 😀