SuperAPI AI 工具集

kerberos-pentesting

安全与审计

查看项目

更新于 10-16 04:39

技能介绍

本技能为 Kerberos 认证服务(88 端口)渗透测试方法论,来源于 wgpsec/aboutsecurity,围绕发现 88 端口后的攻击决策树展开,覆盖服务发现、用户名枚举、AS-REP Roasting、Kerberoasting、票据伪造、委派攻击与 Pass-the-Ticket 等阶段。以下按资料内容整理。

一、用途 当 Agent 扫描发现 88 端口开放、需要针对 Kerberos 环境进行测试时,可参考本方法论。整体决策树从“发现 88 端口开放”开始,依次进入 Phase 1 服务发现、Phase 2 用户名枚举、Phase 3 AS-REP Roasting、Phase 4 Kerberoasting、Phase 5 票据伪造、Phase 6 委派攻击、Phase 7 Pass-the-Ticket。

二、主要能力与阶段

  1. 服务发现:使用 nmap -sV -sC -p 88 <IP> 做服务探测,或用 nmap -p 88 --script krb5-enum-users 枚举用户;通过 DNS SRV 记录、SMB、LDAP 确认域名与 Realm;强调时钟同步(偏差 > 5 分钟会导致 KRB_AP_ERR_SKEW)与 krb5.conf 配置,并可用 netexec 的 --generate-krb5-file 生成配置。
  2. 用户名枚举:无需凭据,可用 Kerbrute、Nmap 脚本或 Metasploit 模块;根据 AS-REQ 响应区分有效/无效用户,如 KDC_ERR_PREAUTH_REQUIRED 表示用户存在。
  3. AS-REP Roasting:针对设置了 DONT_REQUIRE_PREAUTH 的账户,可在不知道密码的情况下请求 AS-REP 消息并离线破解;给出 GetNPUsers.py、Rubeus 命令及 LDAP 查询条件,哈希可用 hashcat -m 18200 或 john 破解。
  4. Kerberoasting:需要有效域凭据,查找注册 SPN 的服务账户,请求 TGS 票据后离线破解;给出 GetUserSPNs.py、Rubeus 命令,优先攻击高权限账户、RC4 票据、长期未改密的账户;并包含无 SPN 时设置 SPN 的 Targeted Kerberoasting 思路。
  5. 票据伪造:Golden Ticket 需 krbtgt 的 NTLM 哈希,可用 ticketer.py 或 Mimikatz 生成,默认有效期 10 年;Silver Ticket 需目标服务账户哈希,仅对特定服务有效,并列出 CIFS、HTTP、LDAP、HOST、MSSQLSvc 等 SPN 对照。
  6. 委派攻击:非约束委派可结合 Printer Bug、PetitPotam 提取 TGT;约束委派利用 S4U2Self 与 S4U2Proxy;基于资源的约束委派(RBCD)先创建或控制机器账户,再修改目标的 msDS-AllowedToActOnBehalfOfOtherIdentity,最后用 getST.py 获取票据,利用后清理配置。
  7. Pass-the-Ticket:涵盖票据获取(Mimikatz、Rubeus、LSASS、ccache 文件)、导入(export KRB5CCNAME、kerberos::ptt、Rubeus ptt)、格式转换(ticketConverter.py)以及用 psexec.py、smbclient、wmiexec.py、netexec 等 -k 方式访问服务。

三、使用方式 资料以命令与决策树形式呈现,例如时钟同步用 ntpdate 或 chronyd,枚举用户用 kerbrute userenum --dc <DC_IP> -d DOMAIN.LOCAL users.txt,请求 TGS 用 GetUserSPNs.py ... -request,生成 Golden Ticket 用 ticketer.py 或 kerberos::golden,票据导入用 export KRB5CCNAME 或 kerberos::ptt。文中还给出 Impacket 工具使用缓存票据的写法:psexec.py -k -no-pass DOMAIN.LOCAL/Administrator@dc.domain.local。

四、适用场景 适用于授权范围内的 Kerberos 环境渗透测试、CTF 或安全评估,帮助结构化地推进从发现到票据利用的流程。

五、限制与故障排查 资料列出常见错误及处理:KRB_AP_ERR_SKEW 需同步时钟;KDC_ERR_C_PRINCIPAL_UNKNOWN 检查用户名和 Realm;KDC_ERR_PREAUTH_FAILED 检查凭据;Server not found in Kerberos database 检查 /etc/hosts 和 FQDN;STATUS_NOT_SUPPORTED 表示 NTLM 被禁用,需加 -k 使用 Kerberos;KRB_ERR_RESPONSE_TOO_BIG 可在 krb5.conf 配置 udp_preference_limit = 1 使用 TCP。另提到 MS14-068(CVE-2014-6324)影响未打补丁系统,修复补丁为 KB3011780;Shodan 搜索可用 port:88 kerberos。

本技能未提供具体收费、价格、平台支持范围或效果保证等信息。