
DirtyPipe (CVE-2022-0847) Exploit, in Rust geschrieben
HAFTUNGSAUSSCHLUSS
Dieser Code dient ausschließlich zu Bildungs- und Forschungszwecken.
Verwenden Sie ihn nicht auf Systemen, die Ihnen nicht gehören oder für die Sie keine Testberechtigung haben.
Der Autor ist nicht verantwortlich für Missbrauch, Schäden oder rechtliche Konsequenzen, die aus der Nutzung dieses Codes entstehen.
Lies den Artikel zu diesem Exploit in meinem Blog. Dies ist eine Implementierung des DirtyPipe-(CVE-2022-0847) Exploits, die ich in Rust basierend auf Max Kellermanns Artikel geschrieben habe. Das Programm ermöglicht es, bestimmte Dateien zu überschreiben oder eine SUID-Binärdatei zu überschreiben, um Privilegien auszuweiten.
passwd) überschreiben, um Root zu erlangen/tmp sichernErstellen Sie zuerst eine Eingabedatei. Die Daten in dieser Datei werden zum Überschreiben des Ziels verwendet. Führen Sie dann einfach Folgendes aus:
./dirtypipe_exploit -m overwrite -i input.txt -o target_file -b offset
Wobei offset der Offset in Bytes ist, an dem mit dem Schreiben in die Datei begonnen wird. Der Offset darf sich nicht an einer Seitengrenze befinden, und das Schreiben darf keine Seitengrenze überschreiten, aufgrund der Natur der Sicherheitslücke.
Der SUID-Modus ersetzt eine angegebene SUID-Binärdatei durch eine bestimmte ELF-Nutzlast. Die suid-ELF ist im Release dieses Repos enthalten und wird vom Exploit verwendet, sofern nicht anders in den Optionen angegeben.
Zusätzlich können Sie diese selbst generieren oder die Nutzlast mit dem gen_suid.py Pwntools-Skript und der loader.asm-Datei modifizieren. Diese Option wird weiter unten besprochen.
Der Exploit setzt das Ziel standardmäßig auf /usr/bin/passwd.
Führen Sie Folgendes aus, um /usr/bin/passwd durch die mitgelieferte Nutzlast zu ersetzen (startet eine Shell als root):
./dirtypipe_exploit -m suid
Führen Sie dann /usr/bin/passwd aus, um eine Root-Shell zu erhalten.
Um Ihre eigene Nutzlast zu generieren, befolgen Sie diese Schritte:
gen_suid.py-Skript aus, das pwntools verwendet, um eine Nutzlast (shellcode.bin) zu generieren, die eine Root-Shell startet. Ändern Sie es nach Belieben.nasm -f bin -o [PAYLOAD_NAME] loader.asm ausführen. Dadurch wird die shellcode.bin-Datei in eine ausführbare Datei umgewandelt../dirtypipe_exploit -m suid -i [PAYLOAD_NAME] -o [TARGET_FILE].Danke an den Autor des STALKR-BLOGS für den 64-Bit Tiny-ELF-Header (hier).