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

本文作者:Faith(Ms08067实验室 内网安全攻防知识星球)

0x00漏洞说明

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

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

0x01利用过程

0x01a mimikatz利用过程

测试环境:

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

工具地址:

https://github.com/genti1kiwi/mimikatz
https://github.com/SecureAuthCorp/impacket

测试步骤如下:

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

CVE-2020-1472漏洞实战 深度剖析_第1张图片

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

CVE-2020-1472漏洞实战 深度剖析_第2张图片

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

CVE-2020-1472漏洞实战 深度剖析_第3张图片

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

CVE-2020-1472漏洞实战 深度剖析_第4张图片

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

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

CVE-2020-1472漏洞实战 深度剖析_第5张图片

0x01b zerologon利用过程

测试环境:

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

下载地址:

https://github.com/SecuraBV/CVE-2020-1472
https://github.com/risksense/zerologon
https://github.com/SecureAuthCorp/impacket

测试步骤如下:

1.检测漏洞是否存在

CVE-2020-1472漏洞实战 深度剖析_第6张图片

2.修改域控密码为空

CVE-2020-1472漏洞实战 深度剖析_第7张图片

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

CVE-2020-1472漏洞实战 深度剖析_第8张图片

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

CVE-2020-1472漏洞实战 深度剖析_第9张图片

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

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

CVE-2020-1472漏洞实战 深度剖析_第10张图片

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

CVE-2020-1472漏洞实战 深度剖析_第11张图片

0x01c 利用方式对比

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

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

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

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

CVE-2020-1472漏洞实战 深度剖析_第12张图片

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

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.如果当前在域内,可以通过命令查询域控。参考如下命令:

Nslookup -type=SRV _ldap._tcp
nltest /DCLIST:域名
net group "Domain Controllers" /do
…………

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

0x03 获取域控计算机名

1.利用nbatscan扫描识别。

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

CVE-2020-1472漏洞实战 深度剖析_第13张图片

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

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

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

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

0x04 一些技巧

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

CVE-2020-1472漏洞实战 深度剖析_第14张图片

CVE-2020-1472漏洞实战 深度剖析_第15张图片

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

CVE-2020-1472漏洞实战 深度剖析_第16张图片

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

CVE-2020-1472漏洞实战 深度剖析_第17张图片

本文来自 内网知识星球【内网安全攻防 2.0 计划】系列文章,更多文章请加入 内网知识星球 共同学习。

【内网安全攻防 2.0 计划】

CVE-2020-1472漏洞实战 深度剖析_第18张图片

现在加入星球的同学可以同时学习“内网安全攻防图书配套视频”+“内网高级渗透技术” 二套视频教程!

内网安全攻防实战及高级进阶

扫描下方二维码加入星球学习

加入后会邀请你进入内部微信群,内部微信群永久有效!

目前30000+人已关注加入我们

学习更多安全知识加入下列星球学习!

 

  

你可能感兴趣的:(安全,数据库,python,人工智能,编程语言)