
A simple Docker lab and Exploit setup for CVE-2021-3156 - "Baron Samedit".
Dieses Repository bietet eine eigenständige, lehrreiche Umgebung, um CVE-2021-3156 zu verstehen und auszunutzen, einen Heap-basierten Pufferüberlauf in sudo, der es jedem unprivilegierten Benutzer ermöglicht, auf verwundbaren Systemen (sudo-Versionen vor 1.9.5p2) Root-Rechte zu erlangen.
Dieses Material ist nur für autorisierte Sicherheitsschulungen und Forschung bestimmt.
Unautorisierte/unethische Nutzung gegen Systeme, die Ihnen nicht gehören, ist illegal.
Dockerfile - Erstellt einen Ubuntu 20.04-Container mit sudo 1.8.31 (verwundbar)exploit.c - Haupt-Exploit-Payload (angepasst für Ubuntu 20.04)shellcode.c - Konstruktor einer gemeinsam genutzten Bibliothek, der eine Root-Shell startetMakefile - Kompiliert den Exploit und die schädliche Bibliothekgit 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 angemeldet sein./home/exploit, das bereits Quelldateien enthält.docker run -it --rm --name baron_samedit_lab cve-2021-3156-lab
cd /home/exploit
./exploit
Bei Erfolg sollten Sie eine Root-Shell-Eingabeaufforderung (#) sehen. Der Exploit überschreibt die service_user-Struktur im Heap von sudo und zwingt sie, die schädliche Bibliothek libnss_x/x.so.2 zu laden, deren Konstruktor den Shellcode ausführt.
make clean && make
Dies erstellt:
exploit - die Haupt-Exploit-Binärdateilibnss_x/x.so.2 - die schädliche gemeinsam genutzte BibliothekCVE-2021-3156 ist ein Heap-basierter Überlauf in der Befehlszeilenargumentverarbeitung von sudoedit. Durch die Bereitstellung eines speziell präparierten Puffers und von Umgebungsvariablen kann ein Angreifer eine service_user-Struktur auf dem Heap überschreiben. Diese Struktur enthält einen Funktionszeiger, der, wenn er gekapert wird, auf eine schädliche Bibliothek zeigen kann, die über den NSS-Mechanismus (Name Service Switch) geladen wird. Der Konstruktor der Bibliothek führt dann beliebigen Code mit Root-Rechten aus.
Dieser Exploit:
buf), um den Überlauf auszulösen.LC_MESSAGES, LC_TELEPHONE und LC_MEASUREMENT, um das Heap-Layout zu gestalten.files-service_user-Struktur über und ersetzt deren Namen durch einen Pfad zu unserer schädlichen Bibliothek (libnss_x/x.so.2).shellcode.c) führt setuid(0), setgid(0) aus und startet eine Root-Shell.Um das Docker-Image zu entfernen:
docker rmi cve-2021-3156-lab
Dieses Projekt wird nur zu Bildungszwecken bereitgestellt. Nutzung auf eigene Gefahr.