
Un simple laboratoire Docker et une configuration d'exploit pour CVE-2021-3156 - "Baron Samedit".
Ce dépôt fournit un environnement autonome et éducatif pour comprendre et exploiter CVE-2021-3156, un débordement de tampon basé sur le tas dans sudo permettant à tout utilisateur non privilégié d’obtenir les privilèges root sur des systèmes vulnérables (versions de sudo antérieures à 1.9.5p2).
Ce matériel est destiné uniquement à la formation en sécurité et à la recherche autorisées.
Une utilisation non autorisée/non éthique contre des systèmes qui ne vous appartiennent pas est illégale.
Dockerfile - Construit un conteneur Ubuntu 20.04 avec sudo 1.8.31 (vulnérable)exploit.c - Charge utile principale de l'exploit (adaptée pour Ubuntu 20.04)shellcode.c - Constructeur de bibliothèque partagée qui lance un shell rootMakefile - Compile l'exploit et la bibliothèque malveillantegit clone https://github.com/Theleopard65/CVE-2021-3156-Baron-Samedit.git
cd CVE-2021-3156-Baron-Samedit
docker build -t cve-2021-3156-lab .
poc à l'intérieur du conteneur./home/exploit, qui contient déjà les fichiers sources.docker run -it --rm --name baron_samedit_lab cve-2021-3156-lab
cd /home/exploit
./exploit
En cas de succès, vous devriez voir une invite de shell root (#). L'exploit écrase la structure service_user dans le tas de sudo et la force à charger la bibliothèque malveillante libnss_x/x.so.2, dont le constructeur exécute le shellcode.
make clean && make
Ceci crée :
exploit - le binaire principal de l'exploitlibnss_x/x.so.2 - la bibliothèque partagée malveillanteCVE-2021-3156 est un débordement basé sur le tas dans la gestion des arguments de ligne de commande de sudoedit. En fournissant un tampon spécialement conçu et des variables d'environnement, un attaquant peut écraser une structure service_user sur le tas. Cette structure contient un pointeur de fonction qui, une fois détourné, peut être amené à pointer vers une bibliothèque malveillante chargée via le mécanisme NSS (Name Service Switch). Le constructeur de la bibliothèque exécute alors du code arbitraire avec les privilèges root.
Cet exploit :
buf) pour déclencher le débordement.LC_MESSAGES, LC_TELEPHONE et LC_MEASUREMENT pour façonner la disposition du tas.service_user de files, remplaçant son nom par un chemin vers notre bibliothèque malveillante (libnss_x/x.so.2).shellcode.c) exécute setuid(0), setgid(0) et lance un shell root.Pour supprimer l'image Docker :
docker rmi cve-2021-3156-lab
Ce projet est fourni à des fins éducatives uniquement. Utilisez-le à vos propres risques.