专栏首页Ms08067安全实验室CVE-2020-1472漏洞实战 深度剖析

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

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漏洞

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

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

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

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

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

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.检测漏洞是否存在

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的命令为:

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嗅探目标域控的计算机名。

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,代表未恢复。

本文分享自微信公众号 - Ms08067安全实验室(Ms08067_com),作者:徐哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 人人都能过杀软-简单的免杀方法+实战技巧

    b)360杀毒安装包。有老版本的尽量使用老版本的安装包。应为新版本的即使你关了上传还是会上传。

    Ms08067安全实验室
  • 一道题彻底理解 Pwn Heap Unlink

    unlink是一个宏操作,用于将某一个空闲 chunk 从其所处的双向链表中脱链,

    Ms08067安全实验室
  • 贷款诈骗 x 摸版0day + 实战预警脚本

    挖掘贷款摸版漏洞--》发现同摸版网站--》利用漏洞数据解析整理 --》 输入预警受害人!!

    Ms08067安全实验室
  • 聊聊flink的TextOutputFormat

    flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/data...

    codecraft
  • 聊聊flink的TextOutputFormat

    flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/data...

    codecraft
  • Schedule tasks on L

    By default cron saves the output in the user's mailbox (root in this case) on th...

    py3study
  • 霸榜 GitHub:200 行代码让人瞬间消失!

    今天,一个名为 Real-Time-Person-Removal(实时人物去除)项目在 GitHub 上火了,登上近日 GitHub Trending 第一,目...

    GitHubDaily
  • Java Web JDBC数据源

    <?xml version='1.0' encoding='utf-8'?> <!--   Licensed to the Apache Software Fo...

    Hongten
  • Geoserver的ImageMosaic数据源

    ImageMosaic翻译成中文就是影像拼接,适用于多个影像文件需要在一起展示的场景,针对这种场景,我们可以对每一个影像数据发布服务,完了通过layergrou...

    lzugis
  • IAR故障解决:由于找不到mfc140u.dll,无法继续执行代码

    美好的周一,打开电脑,启动IAR,准备继续解决上周遗留的bug,突然无法启动IAR,出现以下错误:

    不脱发的程序猿

扫码关注云+社区

领取腾讯云代金券