
Introducción al laboratorio de ZeroLogon
Un laboratorio para probar una vulnerabilidad del exploit ZeroLogon (CVE-2020-1472). Contiene un script de Python que utiliza la librería Impacket para probar la vulnerabilidad, y una Máquina Virtual (VM) con Windows Server 2019 configurada como Controlador de Dominio (DC).
El script intenta realizar la evasión de autenticación de Netlogon. Terminará inmediatamente cuando realice la evasión con éxito, y no realizará ninguna operación de Netlogon. Cuando el DC está parcheado, el script de detección se rendirá después de enviar un número de pares de llamadas RPC y concluirá que el objetivo no es vulnerable (con una probabilidad de falso negativo del 0,04%).
Opcional
Simplemente escriba vagrant up para cargar una compilación vulnerable de Windows Server 2019 como VM.
Luego, configure la VM como Controlador de Dominio siguiendo este tutorial.
Por último, lance el ataque contra el DC (zerologon_tester.py).
Se recomienda usar la versión Dockerizada de este ataque o un entorno virtual.
Opción Docker. Ejecute:
# NOTE: On Windows, you may need to enable the `Hyper-V` Wiwndows feature.
# NOTE2: On Windows, you may need to switch to `Linux Containers`.
$ docker build -f Dockerfile . -t zerologon
# This command run the zerologon test on the DC with domain VAGRANT in the address 192.168.33.10
$ docker run zerologon VAGRANT 192.168.33.10
Opción VirtualEnv. Ejecute:
$ python3 -m virtualenv zerologon
$ zerologon/Scripts/Activate.ps1
# NOTE: This may give you some issues with your firewall!!
$ pip install git+https://github.com/SecureAuthCorp/impacket
$ pip install -r requirements.txt
$ python zerologon_tester.py VAGRANT 192.168.33.10
La salida de este ataque debería verse así:

Este script solo sirve para probar la viabilidad del ataque, no explota el servidor de ninguna otra manera. El script no realiza ningún cambio en el DC. Si tiene curiosidad sobre cómo implementar un ataque PoC, consulte este writeup o uno similar.
Los objetivos del script se pueden usar para apuntar a un DC o a un DC de respaldo. Es probable que también funcione contra un DC de solo lectura, pero esto no ha sido probado. El nombre del DC debe ser su nombre de equipo NetBIOS. Si este nombre no es correcto, el script probablemente fallará con un error STATUS_INVALID_COMPUTER_NAME. Un whitepaper sobre esta vulnerabilidad se publicará aquí.
NOTA: Si algo sale mal y recibe un error
STATUS_INVALID_COMPUTER_NAME, ejecutenbtstat -A 192.168.33.10, esto le dará una idea de lo que está sucediendo en esa dirección. De lo contrario, siempre puede comprobar si la máquina es accesible desde su host haciendo ping (ping 192.168.33.10).NOTA2: Si el ataque falla, puede que la máquina haya sido actualizada con parches de seguridad. Revise las actualizaciones y elimine cualquier cosa que parezca
Security Patchesde 2020 en adelante.