执行 Kerberoasting 攻击
概述
Kerberoasting 是一种后渗透技术,通过为设置了服务主体名称(SPN)的账户请求 Kerberos TGS(票据授予服务)票据来针对活动目录中的服务账户。这些票据使用服务账户的 NTLM 哈希加密,允许在不产生登录失败事件的情况下进行离线暴力破解。这是 AD 环境中最常见的权限提升路径之一,因为任何域用户都可以请求 TGS 票据。
MITRE ATT&CK 映射
- T1558.003 - 窃取或伪造 Kerberos 票据:Kerberoasting
- T1087.002 - 账户发现:域账户
实施步骤
阶段一:枚举 Kerberoastable 账户
- 使用 PowerView 或 Impacket 识别具有 SPN 的服务账户
- 优先排列具有特权组成员资格的账户
- 记录所有具有 SPN 的账户及其组成员关系
阶段二:请求 TGS 票据
- 为已识别的服务账户请求票据
- 以 Hashcat 兼容格式($krb5tgs$)保存票据
- 将票据导出到攻击工作站
阶段三:离线密码破解
- 使用 Hashcat(模式 13100)和词典列表破解票据
- 应用规则集以提高破解成功率
- 记录破解的凭据
阶段四:凭据验证和利用
- 使用 CrackMapExec 或 Impacket 验证破解的凭据
- 评估账户权限和横向移动机会
- 如果账户是域管理员则执行 DCSync
工具与资源
| 工具 | 用途 |
|---|---|
| GetUserSPNs.py | Linux 上的 Kerberoasting(Impacket) |
| Rubeus | Windows 上的 Kerberoasting |
| Invoke-Kerberoast | PowerShell Kerberoasting |
| Hashcat | 离线密码破解 |
| John the Ripper | 替代密码破解工具 |
验证标准
- 已识别具有 SPN 的服务账户
- 已请求并保存 TGS 票据
- 已执行离线密码破解
- 已验证破解的凭据
- 已记录具有相关 ACL 的受影响账户