
PoC für Dirty COW (CVE-2016-5195)
PoC für Dirty COW (CVE-2016-5195).
Dieses PoC verwendet ptrace (anstatt /proc/self/mem), um vDSO zu patchen. Es hat einige Vorteile gegenüber PoCs, die Dateisystem-Binaries modifizieren:
Und einige Nachteile:
Der aktuelle Payload ist fast identisch mit dem in
The Sea Watcher und wird ausgeführt,
sobald ein Prozess einen Aufruf an clock_gettime() tätigt. Wenn der Prozess
Root-Rechte besitzt und /tmp/.x nicht existiert, forkt er, erstellt /tmp/.x
und erstellt schließlich eine TCP-Reverse-Shell zum Exploit. Es ist nicht
elegant, könnte aber für einen Container-Escape verwendet werden.
Das Erkennen, ob vDSO erfolgreich gepatcht wurde, ist nicht narrensicher. Während des Rücksetz-Schritts wird das vDSO zwar effektiv wiederhergestellt, aber der Exploit meldet dies nicht korrekt. Tatsächlich scheinen die vDSO-Änderungen den Exploit-Prozess nicht zu beeinflussen.