
Analyse des Sudo-Pufferüberlaufs, der Sudo-Versionen <1.8.26 betrifft, und wie man GCC verwendet, um öffentlich verfügbare Exploits zu kompilieren
Sudo 1.8.25p - 'pwfeedback' Buffer Overflow (PoC)
Die pwfeedback-Option von Sudo kann verwendet werden, um visuelles Feedback zu geben, während der Benutzer sein Passwort eingibt. Bei jedem Tastendruck wird ein Sternchen ausgegeben. Diese Option wurde als Reaktion auf die Verwirrung der Benutzer über die standardmäßige Password:-Eingabeaufforderung hinzugefügt, die das Echo von Tastendrücken deaktiviert. Obwohl pwfeedback in der Upstream-Version von Sudo standardmäßig nicht aktiviert ist, aktivieren einige Systeme wie Linux Mint und Elementary OS diese Option in ihren Standard-Sudoers-Dateien.
Sudo Buffer Overflow tryhackme writeup
Analyse von CVE-2019-18634
Zuerst melden wir uns über SSH bei der tryhackme-Instanz an.
Die Schwachstelle entsteht, weil die pwfeedback-Funktion anfällig für einen Heap-Buffer-Overflow ist. Um diese Schwachstelle auszunutzen, überprüfen wir zunächst, ob die Maschine die anfällige Version von Sudo (sudo <1.8.26) enthält, indem wir den Befehl sudo –version ausführen.
Analyse von CVE-2019-18634
Zuerst melden wir uns über SSH bei der tryhackme-Instanz an.
Die Schwachstelle entsteht, weil die pwfeedback-Funktion anfällig für einen Heap-Buffer-Overflow ist. Um diese Schwachstelle auszunutzen, überprüfen wir zunächst, ob die Maschine die anfällige Version von Sudo (sudo <1.8.26) enthält, indem wir den Befehl sudo –version ausführen.

Nachdem wir bestätigt haben, dass die Maschine eine anfällige Version von Sudo enthält, überprüfen wir nun, ob die pwfeedback-Funktion vorhanden ist. Dies kann auf zwei Arten erfolgen: durch Aufrufen von sudo und Eingabe von etwas in die Passwort-Eingabeaufforderung, die beim Tippen von Zeichen für das Passwort „*“ anzeigen sollte, und die zweite, technischere Methode besteht darin, den Befehl sudo -l zu verwenden. Dies erfordert jedoch auch, dass der Benutzer über die entsprechenden Berechtigungen verfügt, die es ihm erlauben, Informationen über sudo anzuzeigen oder die Sudoers-Datei zu verketten.

Wir werden nun bestätigen, dass ein Buffer Overflow möglich ist, indem wir den Testfall von exploit-db verwenden. https://www.exploit-db.com/exploits/47995
perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id ^^Die obige Codezeile funktioniert wie folgt:
Füge 100 A-Zeichen hinzu und leite sie in den sudo-Befehl, der dann im pwfeedback-Heap-Buffer landet.

Sudo wird dann einen Segmentation Fault ausgeben, da es nicht weiß, wie der sudo-Prozess fortgesetzt werden soll.
Dies geschieht, weil ein statischer Heap-Buffer, sobald er überflutet wird, beginnt, CPU-Register und den Instruction Pointer zu überfluten, der den Ablauf der nächsten Anweisung steuert.
Wir können den Exploit ausführen, der einen Buffer Overflow verursacht und uns Root-Zugriff auf das System gewährt. https://www.exploit-db.com/exploits/47995
