CVE-2020-1472 aka Zerologon Exploit POC

Was ist es?
NetLogon (MS-NRPC) kann einen verwundbaren Sicherheitskanal für die domänenübergreifende Kontrolle herstellen.
Es ist möglich, das Passwort für das Computerkonto auf Domänencontrollern auf null zu setzen.
Notizen:
- Der DC ist teilweise gestört, solange das Passwort auf null gesetzt ist, dieses Programm stellt es jedoch nach Abschluss wieder her.
- Kann DNS-Probleme mit dem DC verursachen (durch Neustart behoben)
- Kerberos-Tickets haben eine Lebensdauer von 10 Stunden, bevor sie ablaufen.
- Erfordert das neueste Impacket von GitHub mit hinzugefügten Netlogon-Strukturen.
- Beachte, dass dieses Programm standardmäßig das Passwort des Systemkontos des Domänencontrollers ändert und es danach wieder zurücksetzt. Ja, das erlaubt DCSync, aber es unterbricht kurzzeitig die Kommunikation mit anderen Domänencontrollern, also sei vorsichtig damit!
Recherche:
Erforderliche Abhängigkeiten
- Erfordert das neueste Impacket von GitHub mit hinzugefügten Netlogon-Strukturen.
Auf Verwundbarkeit prüfen:
- Das Standardverhalten des Skripts besteht darin, zu prüfen, ob das System verwundbar ist, und nichts zu ändern!
Verwendung von zerologen.py
- Lies den obigen Blog/das obige Whitepaper, damit du weißt, was du tust.
- Dieses Skript prüft Domänencontroller auf CVE-2020-1472.
- Wenn die Option -exploit angegeben wird, wird es:
- Das Systempasswort des Domänencontrollers auf null setzen
- Die DRSUAPI von secretsdump mit dem Nullpasswort aufrufen, um NTDS-Hashes zu erhalten
- Die ausgelesenen Daten analysieren, um das Domänenadministratorkonto mit der RID :500: zu erhalten, und secretsdump erneut aufrufen, um LSA-Geheimnisse zu erhalten
- Den zweiten Dump auf den Wert plain_password_hex analysieren
- Das Wiederherstellungsskript mit dem Hex-Wert aufrufen, um das Systempasswort des DC auf seinen ursprünglichen Wert zurückzusetzen
python zerologen.py
usage: zerologen.py [-h] [-exploit] dc_name dc_ip
Tests whether a domain controller is vulnerable to the Zerologon attack. Resets the DC account password to an empty string
when vulnerable.
positional arguments:
dc_name The (NetBIOS) computer name of the domain controller.
dc_ip IP Address of the domain controller.
optional arguments:
-h, --help show this help message and exit
-exploit Zero out the computer's hash
Erkennung:
- Ereignis 4661 mit einer Berechtigungsanforderung für SetPassword (ohne Kenntnis des alten Passworts) (Screenshot im Anhang)
- Ereignis 4723 für einen Versuch, das Passwort eines Kontos zu ändern
- Ereignis 4738 für eine Änderung des Werts 'Password Last Set' eines Benutzerkontos
Patchen:
Betroffene Systeme:
- Windows Server 2008 R2 für x64-basierte Systeme Service Pack 1
- Windows Server 2008 R2 für x64-basierte Systeme Service Pack 1 (Server Core-Installation)
- Windows Server 2012
- Windows Server 2012 (Server Core-Installation)
- Windows Server 2012 R2
- Windows Server 2012 R2 (Server Core-Installation)
- Windows Server 2016
- Windows Server 2016 (Server Core-Installation)
- Windows Server 2019
- Windows Server 2019 (Server Core-Installation)
- Windows Server, Version 1903 (Server Core-Installation)
- Windows Server, Version 1909 (Server Core-Installation)
- Windows Server, Version 2004 (Server Core-Installation)