Kerberoasting
破解服务票据
Kerberoasting 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。
什么是 Kerberoasting
Kerberoasting 是一种针对 Active Directory 中服务帐户的攻击。任何经过身份验证的域用户都可以为拥有服务主体名称(SPN)的帐户请求服务票据。
该票据的一部分使用服务帐户的密码哈希加密,因此攻击者可以在离线状态下破解它,而完全无需接触该帐户。
原理
当用户请求服务票据(TGS)时,KDC 会使用服务帐户密码的 NTLM 哈希加密票据的一部分。
由于任何域用户都可以请求该票据,而且不需要特殊权限,攻击者只需收集票据,然后在自己的计算机上从容破解即可。
查找 SPN 帐户
首先,枚举设置了 SPN 的帐户。这些通常是运行 SQL、Web 或其他服务的服务帐户。
带有 SPN 的用户帐户(而非计算机帐户)是理想目标,因为它们的密码通常由人工设置,而且很少轮换。
# PowerView
Get-DomainUser -SPN | select samaccountname,serviceprincipalname使用 Rubeus 请求票据
Rubeus 是一种常用的 C# Kerberos 滥用工具。kerberoast 命令会为 SPN 帐户请求 TGS 票据,并以可破解的格式输出这些票据。
这一步很隐蔽:从外观上看,它与合法用户发出的正常 Kerberos 流量无异。
Rubeus.exe kerberoast /outfile:hashes.txt使用 Impacket 请求票据
在 Linux 上,Impacket 的 GetUserSPNs.py 可以使用有效的域凭据远程执行同样的攻击。
在外部安全测试或假设已遭入侵的安全测试中,这一方法非常方便,因为您通常已经拥有一组低权限凭据。
GetUserSPNs.py corp.local/lowuser:Password1 -dc-ip 10.0.0.10 -request哈希格式
捕获的票据会保存为 Hashcat 可识别的 13100 模式格式(Kerberos 5 TGS-REP 类型 23,RC4)。
每个哈希都以 $krb5tgs$23$ 开头,后面依次是 SPN、帐户和加密数据块。这就是要交给破解工具处理的内容。
$krb5tgs$23$*svc_sql$CORP.LOCAL$MSSQL/...*$a1b2c3...使用 Hashcat 破解
离线破解会使用词表(通常配合规则)来尝试破解捕获的哈希。由于 RC4 票据的测试速度很快,弱服务密码很快就会被破解。
因此,服务账户密码应当足够长且随机,最好由组托管服务账户(gMSA)进行管理。
hashcat -m 13100 hashes.txt rockyou.txt -r best64.rule加密类型很重要
如果账户支持 RC4(etype 23),破解速度会很快。如果只允许使用 AES(etype 17/18),破解速度会慢得多,但仍然可行(Hashcat 模式 19600/19700)。
攻击者甚至可能降低所请求的加密类型,强制获取较弱的 RC4 票据。
检测与防御
防御者会监控异常数量的 TGS 请求,尤其是 RC4 票据请求(事件 ID 4769)。缓解措施包括:
- 使用较长且随机的服务账户密码(至少 25 个字符)。
- 使用具有自动轮换功能的 gMSA 账户。
- 禁用 RC4 并强制使用 AES。
为什么选择服务账户?
服务账户很有吸引力,因为它们经常属于特权组、密码长期未更换,而且不与某个特定人员绑定,因此不会有人注意到异常。
如果服务账户被粗心地授予过多权限,破解其中一个账户就可能让您获得域管理员权限。
它在攻击中的位置
Kerberoasting 通常在获得域内立足点后不久进行。它结合了低噪声枚举和离线破解,因此很少触发警报。
破解服务账户通常可以带来横向移动或权限提升,因此它是内部渗透测试和红队行动中的常用手段。
快速检查
回忆一下 Kerberoasting 的核心要求。
总结
现在,您已经了解 Kerberoasting:
- 任何域用户都可以为 SPN 账户请求 TGS 票据。
- 票据使用服务账户的哈希加密,并在离线状态下破解。
- 工具包括:Rubeus、Impacket GetUserSPNs.py,以及使用 Hashcat 模式 13100 进行破解。
- 通过使用长密码、gMSA 和仅限 AES 的加密来防御。
接下来,您将使用传递哈希直接重用凭据。
常见问题解答
「Kerberoasting」课时是免费的吗?
是的 — 「Kerberoasting」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。
「Kerberoasting」这节课中我会学到什么?
破解服务票据 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ethical Hacking Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「Kerberoasting」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?
能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- AD 基础
- Kerberoasting
- 哈希传递
- BloodHound