前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2020-1472漏洞实战 深度剖析

CVE-2020-1472漏洞实战 深度剖析

作者头像
Ms08067安全实验室
发布2020-11-26 15:58:50
1.8K0
发布2020-11-26 15:58:50
举报
文章被收录于专栏:Ms08067安全实验室

0x00漏洞说明

CVE-2020-1472是继MS17010之后一个比较好用的内网提权漏洞,影响Windows Server 2008R 2至Windows Server 2019的多个版本系统,只要攻击者能访问到目标域控井且知道域控计算机名即可利用该漏洞.该漏洞不要求当前计算机在域内,也不要求当前计算机操作系统为windows,该漏洞的稳定利用方式为重置目标域控的密码, 然后利用城控凭证进行Dc sync获取域管权限后修复域控密码,之所以不直接使用坏控凭证远程执行命令,是因为城控账户是不可以登录的,但是域控具备Dc sync权限, 可以获取域内任意用户的凭证。

漏洞利用过程中会重置域控存储在域中(ntds.dit)的凭证,而域控存储在域中的凭证与本地的注册表/lsass中的凭证不一致时,会导致目标域控脱域,所以在重置完域控凭证后要尽快恢复。

0x01利用过程

0x01a mimikatz利用过程

测试环境:

代码语言:javascript
复制
域控:
  域名:ADC1.A.com
  IP:192.168.27.150
  操作系统:Windows Server 2012R 2
攻击机:
  不在域内:
  IP:192.168.27.129(没要求,能访问到目标域控即可)
  操作系统:Windows 7

工具地址:

代码语言:javascript
复制
https://github.com/genti1kiwi/mimikatz
https://github.com/SecureAuthCorp/impacket

测试步骤如下:

  1. 检测是否存在CVE-2020-1472漏洞

2.利用CVE-2020-1472修改域控密码为空

3.利用域控凭证通过dcsync获取域管hash。

4.利用获取的域管凭证进行hash注入获取一个域管权限的cmd.exe。这里的“domain:.”也可以是 “domain:A"

5.在新开的cmd中使用mimikatz修改域控密码。

mimikatz会将保存在域中的凭证以及注册表/lsass中的凭证同时修改为"Waza1234/Waza1234/Waza1234/",这样不影响域控的正常工作。

0x01b zerologon利用过程

测试环境:

代码语言:javascript
复制
域控:
  域名:ADC1.A.com
  IP:192.168.27.150
  操作系统:Windows Server 2012R 2
攻击机:
  不在域内:
  IP:192.168.27.130(没要求,能访问到目标域控即可)
  操作系统:Windows 10

下载地址:

代码语言:javascript
复制
https://github.com/SecuraBV/CVE-2020-1472
https://github.com/risksense/zerologon
https://github.com/SecureAuthCorp/impacket

测试步骤如下:

1.检测漏洞是否存在

2.修改域控密码为空

3.使用impacket中的secretdump获取域管hash,这里的“./ADC1”也可以是“A/ADC1”,也就是说我们 不需要知道目标域名即可获取到域管hash。

4.可以破解出域管密码,使用net结合wmic、schtasks等远程执行命令方法离线获取保存在注册表中 的域控凭证,也可以使用imapcket中的远程执行工具通过hash传递获取。当然也可以通过 mimikatz在域控上直接获取,注意这一步一定要尽量快。

5.使用impacket中的secretsdump拿到域控机器账户原始哈希。

之前已经用mimikatz测试过一次,所以域控账户的hash为"Waza1234/Waza1234/Waza1234/"的hash。

6. 将dc机器用户密码恢复。

0x01c 利用方式对比

1.mimikatz使用起来比zerologon方便快捷,极大的缩短了域控凭证恢复时间,减小对业务的影响以 及被发现的可能。

2.mimikatz利用过程中第三步dcsync需要域名等信息,且需要当前计算机可以解析域控的IP。当前计算机在域内时使用这种方式比较便捷。建议使用zerologon利用过程的第三步进行替换。

3.mimikatz利用过程中第四步hash注入需要具有SeDebugPrivilege权限。

4.mimikatz利用过程中第四步hash注入在win10环境下需要绕过LSA Protection,该功能需要 mimidrv.sys文件,未绕过LSA Protection时报错为。

使用mimikatz绕过LSA Protection的命令为:

代码语言:javascript
复制
privilege::debug
!+
!processprotect /process:lsass.exe /remove

0x02 寻找域控

1.利用nbtscan扫描识别,标注SHARING DC即为域控。

2.扫描存活主机的389端口、88端口是否开放。389端口运行着LDAP服务,88端口运行着Kerberos 服务,开放这两个端口的计算机大概率为域控。

3.如果是拨VPN进入内网,可以 ipconfig /all 查看DNS服务器,DNS可能是域控。

4.如果当前在域内,可以通过命令查询域控。参考如下命令:

代码语言:javascript
复制
Nslookup -type=SRV _ldap._tcp
nltest /DCLIST:域名
net group "Domain Controllers" /do
…………

5.如果以上方式都无法定位到域控,尝试获取域内计算机权限后,查询域控信息。

0x03 获取域控计算机名

1.利用nbatscan扫描识别。

2.利用smb嗅探目标域控的计算机名。

3.利用3389获取相关信息。查看3389的证书信息,或者用03版mstsc不输凭证进入后“切换用户”找到 计算机名,特定情况下可用。

4.尝试利用DNS解析,可能不准确。

5.如果当前在域内,可以通过命令查询域控。

6.如果以上方式都无法定位到域控,尝试获取域内计算机权限后,查询域控信息。

0x04 一些技巧

1.检测的目标计算机名不正确时,报错如下:

2.如果不知道目标域的域管用户名,可以secretsdump.exe -no-pass ./ADC1$@192.168.17.150 获取所有用户的hash,然后利用rid为500的用户进行后续操作,或者使用任意用户凭证通过adfind 或者powerview查询域信息。如果当前计算机在域内的话还可以尝试使用黄金票据。

3.验证域控密码是否恢复,如果域控hash为31d6cfe0d16ae931b73c59d7e0c089c0,代表未恢复。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
VPN 连接
VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档