
Exploit für CVE-2020-1472 (ZeroLogon), der das Maschinenkonto-Passwort eines Domänencontrollers ändert und DCSync sowie vollständige Kompromittierung der Domäne ermöglicht. Enthält Wiederherstellungsfunktion.
Erfordert die neueste impacket-Version von GitHub mit hinzugefügten Netlogon-Strukturen.
Beachten Sie, dass dies standardmäßig das Passwort des Domänencontroller-Kontos ändert. Ja, das ermöglicht DCSync, aber es unterbricht auch die Kommunikation mit anderen Domänencontrollern, also seien Sie vorsichtig damit!
Weitere Informationen und die ursprüngliche Forschung hier
Funktioniert nur mit Python 3.6 und neuer! Wenn Ihr Betriebssystem mit impacket ausgestattet ist (wie Kali), stellen Sie sicher, dass Sie zuerst alle vorhandenen Installationen entfernen. Wenn Sie danach immer noch Importfehler erhalten, führen Sie es aus einer virtualenv oder pipenv aus.
cve-2020-1472-exploit.py mit IP und Netbios-Name des DC aus-just-dc und -no-pass oder leeren Hashes und dem DCHOSTNAME$-KontoWenn Sie eine Version von impacket von GitHub installieren, die am 15. September 2020 oder später aktualisiert wurde, wird secretsdump beim Dumpen der lokalen Registry-Geheimnisse automatisch das Klartext-Maschinenpasswort (hex-kodiert) ausgeben. Beachten Sie, dass dies anders ist als DCSync, da DCSync das Maschinenkonto verwendet, während das Dumpen der Registry erfordert, dass Sie secretsdump gegen den Domänencontroller als Domänenadministrator (wie das integrierte Administrator-Konto) ausführen.
Alternativ können Sie auf etwas älteren Versionen von secretsdump dasselbe Passwort dumpen, indem Sie zuerst die Registry-Hives extrahieren und dann secretsdump offline ausführen (es wird dann immer den Klartextschlüssel ausgeben, weil es die Kerberos-Hashes nicht berechnen kann).
Mit diesem Klartext-Passwort können Sie restorepassword.py mit dem Parameter -hexpass ausführen. Dies wird zuerst mit dem leeren Passwort gegen denselben DC authentifizieren und dann das Passwort zurück auf das ursprüngliche setzen. Stellen Sie sicher, dass Sie den Netbios-Namen und die IP wieder als Ziel angeben, also zum Beispiel:
python restorepassword.py testsegment/s2016dc@s2016dc -target-ip 192.168.222.113 -hexpass e6ad4c4f64e71cf8c8020aa44bbd70ee711b8dce2adecd7e0d7fd1d76d70a848c987450c5be97b230bd144f3c3...etc