Kerberos 是 Active Directory 的核心认证协议。理解其工作流程是掌握 Kerberoasting 和 AS-REP Roasting 的前提。
Kerberoasting 是利用 Kerberos 协议设计缺陷,离线破解服务账户密码的经典攻击手法。任何普通域用户都可以请求域内任意 SPN 账户的 TGS 票据,该票据用服务账户密码的哈希加密,可以离线破解。
Kerberoasting 的前提是找到设置了 SPN 的用户账户。通常 SQL Server 服务账户、Exchange 账户等会被注册 SPN。
Rubeus 是 C# 编写的 Kerberos 交互工具,可在 Windows 上直接操作 Kerberos 票据。
在 Kali Linux 上可使用 Impacket 套件的 GetUserSPNs.py 远程完成 Kerberoasting。
拿到 TGS 票据的哈希后,使用 Hashcat 进行离线破解。Kerberos 票据哈希在 Hashcat 中有特定的模式编号。
AS-REP Roasting 利用的是 Kerberos 认证第一阶段(AS-REQ/AS-REP)的弱点。如果某个用户账户关闭了预身份验证,攻击者无需知道用户密码即可获取 AS-REP 响应,其中包含可离线破解的加密数据。
以下演示一个完整的 Kerberoasting 攻击流程,从信息收集到密码破解。