CVE-2021-3156 (Sudo Baron Samedit)
Dieses Repository enthält einen Exploit für CVE-2021-3156, der auf Linux x64 abzielt. Für den Writeup besuchen Sie bitte https://datafarm-cybersecurity.medium.com/exploit-writeup-for-cve-2021-3156-sudo-baron-samedit-7a9a4282cb31
Dank an Braon Samedit von Qualys für die ursprüngliche Sicherheitsmeldung.
Dateien
Exploit auf glibc mit tcache
- exploit_nss.py erkennt automatisch alle Anforderungen und die Anzahl der Einträge in /etc/nsswitch.conf
- exploit_nss_manual.py vereinfachte Version von exploit_nss.py für ein besseres Verständnis des Exploits
- exploit_timestamp_race.c überschreibt def_timestamp und nutzt eine Race Condition, um /etc/passwd zu modifizieren
Exploit auf glibc ohne tcache
- exploit_defaults_mailer.py der Exploit überschreibt struct defaults, um den Mailer-Binärpfad zu ändern. Er erfordert ein sudo, das ohne disable-root-mailer kompiliert wurde, wie z. B. CentOS 6 und 7.
- exploit_userspec.py der Exploit überschreibt struct userspec, um die Authentifizierung zu umgehen und einen neuen Benutzer in /etc/passwd hinzuzufügen. Unterstützt nur sudo-Version 1.8.9-1.8.23.
- exploit_cent7_userspec.py vereinfachte Version von exploit_userspec.py zum Verständnis, zielt jedoch nur auf CentOS 7 mit Standardkonfiguration ab
- exploit_nss_d9.py überschreibt struct service_user auf Debian 9, unterstützt jedoch nur die Standard-/etc/nsswitch.conf
- exploit_nss_u16.py überschreibt struct service_user auf Ubuntu 16.04, unterstützt jedoch nur die Standard-/etc/nsswitch.conf
- exploit_nss_u14.py überschreibt struct service_user auf Ubuntu 14.04, unterstützt jedoch nur die Standard-/etc/nsswitch.conf
Sonstiges
- asm/ tinyelf-Bibliothek und ausführbare Datei zum Einbetten in Python-Exploits
- gdb/ Skripte, die zum Debuggen des sudo-Heaps verwendet werden
Auswahl des Exploits
Für Linux-Distributionen, deren glibc tcache unterstützt und aktiviert hat (CentOS 8, Ubuntu >= 17.10, Debian 10):
- versuchen Sie zuerst exploit_nss.py
- Wenn ein Fehler nicht mit glibc tcache zusammenhängt, können Sie als Nächstes exploit_timestamp_race.c versuchen
Für Linux-Distributionen, deren glibc kein tcache unterstützt:
- Wenn das Ziel Debian 9, Ubuntu 16.04 oder Ubuntu 14.04 ist, versuchen Sie zuerst exploit_nss_xxx.py für die jeweilige Version
- Als Nächstes versuchen Sie exploit_defaults_mailer.py. Wenn Sie wissen, dass das Ziel-sudo mit --disable-root-mailer kompiliert wurde, können Sie diesen Exploit überspringen. Der Exploit versucht, das Root-Mailer-Flag aus der sudo-Binärdatei zu prüfen. Die sudo-Berechtigung auf einigen Linux-Distributionen ist jedoch 4711 (-rws--x--x), was eine Prüfung auf dem Zielsystem unmöglich macht. (Bekannte funktionierende Betriebssysteme sind CentOS 6 und 7)
- Zuletzt versuchen Sie exploit_userspec.py