
Exploit Docker
Ce dépôt fournit un environnement Docker autonome et interactif pour démontrer et analyser en toute sécurité la vulnérabilité d'élévation de privilèges « Dirty Pipe ». Il est conçu comme un outil pédagogique permettant aux professionnels de la sécurité de comprendre les mécanismes d'une exploitation critique au niveau du noyau dans un environnement contrôlé.
Dirty Pipe était une vulnérabilité critique découverte dans le noyau Linux (affectant les versions à partir de 5.8). Elle permettait à un utilisateur local non privilégié d'écraser des données dans des fichiers en lecture seule arbitraires.
L'impact est sévère : en écrasant un fichier sensible comme /etc/passwd ou un binaire SUID, un attaquant pourrait facilement élever ses privilèges à root, obtenant le contrôle complet du système. Cette vulnérabilité était particulièrement dangereuse car elle contournait les vérifications standard des permissions de fichiers, un contrôle de sécurité fondamental sous Linux.
Ce projet utilise Docker pour créer un environnement sûr, isolé et intentionnellement vulnérable. Cela permet à quiconque d'étudier l'exploit sans risquer sa machine hôte.
Les composants clés sont :
Dockerfile : Définit le modèle de notre conteneur vulnérable. Il utilise une image de base plus ancienne (debian:bullseye-20210927-slim) connue pour avoir un noyau sensible à Dirty Pipe, et il automatise le processus de configuration.exploit.c : Le code C qui implémente la logique de l'exploit, basé sur la preuve de concept originale de Max Kellermann.Makefile : Un makefile simple pour compiler le code C en un binaire exécutable dans le conteneur.Cette procédure pas à pas vous guidera dans la construction de l'environnement et l'exécution de l'exploit.
Prérequis : Vous devez avoir Docker installé et en cours d'exécution sur votre système.
Ouvrez votre terminal et clonez ce projet.
git clone https://github.com/mrchucu1/CVE-2022-0847-Docker.git
cd CVE-2022-0847-Docker
Utilisez la commande docker build pour créer l'image du conteneur. Le Dockerfile gérera toutes les dépendances et compilera le code de l'exploit.
docker build -t dirty-pipe-demo .
Maintenant, exécutez le conteneur de manière interactive. Le flag --rm garantit que le conteneur est supprimé à la sortie, et -it vous donne un shell interactif.
docker run --rm -it dirty-pipe-demo
Vous serez placé dans un shell à l'intérieur du conteneur en tant qu'utilisateur non privilégié (hacker@...:/$).
Maintenant, exécutez l'exploit précompilé :
# You are currently an unprivileged user.
# Your prompt looks like this: hacker@<container_id>:/$
#
# Now run the exploit...
./exploit
Succès ! L'exploit écrase un binaire SUID pour vous accorder un shell root. Votre invite de terminal passera de $ à #, indiquant que vous avez maintenant les privilèges root.
# The exploit has succeeded.
# Your prompt is now a root shell: # whoami
root
#
Ce projet est plus qu'un simple script ; c'est une démonstration pratique des principes critiques de sécurité pertinents pour mon travail en tant qu'ingénieur en sécurité cloud :
Ce projet et son code sont destinés à des fins éducatives et de recherche uniquement. N'essayez pas d'utiliser cet exploit sur un système pour lequel vous n'avez pas d'autorisation explicite et autorisée.