Vues : 919

🚩 Dans cet article Docker Group LPE, nous allons passer d’un utilisateur lambda sans droits mais dans le groupe docker à l’utilisateur root à l’aide d’une mauvaise configuration et utilisation de docker.
Docker Group Privilege Escalation :
🧾 Afin de réaliser cette attaque, j’ai installé une machine Linux ayant déjà docker de préinstallé à l’aide de ce tutoriel suivant et en mettant l’utilisateur ubuntu18 dans le groupe docker à ce moment de l’installation :

Comme prévu notre utilisateur fait bien parti du groupe docker !

Ce qui nous permet d’utiliser docker complètement avec cet utilisateur et donc de monter le volume hôte sur l’un de nos conteneurs.
Premier cas
⚠️ Dans ce premier cas, nous partons du principe que nous avons un accès sur la machine direct et qu’elle a bien accès à internet sans règles spécifiques au niveau du firewall.
Nous allons tout simplement pull une image comme par exemple celle d’ubuntu qui n’est pas présente sur la machine c’est donc pour cette raison que nous avons besoin d’un accès réseau vers le docker hub.
docker run -v /:/mnt -it ubuntu

Grâce à ceci nous pouvons lire le fichier présent dans /root et prouvant la réussite de cette technique :

📌 Il est possible après ça de changer/supprimer le hash de l’utilisateur root dans le fichier /etc/shadow et également de créer une clé ssh pour ce même utilisateur.
Second cas
⚠️ Dans notre second cas, nous partons du principe que nous sommes dans un CTF et connecté via VPN et donc nous ne pouvons pas sortir sur internet, en général une image est présente volontairement pour nous permettre d’exploiter cette technique.
J’ai donc volontairement pull l’image alpine et répéter la même méthode que le premier cas.

Et c’est parti pour la même opération mais avec l’image alpine locale déjà présente sur la machine cible.
docker run -v /:/mnt -it alpine

Salut, bon article j’ai juste détecté dans Second cas, ceci;
en général une image est présente volontairement pour nous permettre d’exploitation cette technique.
Il n’y a que toi qui puisse reformuler 😉
C’est corrigé, merci beaucoup !