SuperAPI AI 工具集

kerberos-advanced-attack

安全与审计

查看项目

更新于 10-16 05:58

技能介绍

高级 Kerberos 攻击是一套面向域渗透场景的高级技术集合,适用于基础 Kerberoasting、AS-REP Roasting 和委派攻击不够用的情况。技能以触发条件、前置要求、技术选择决策树和逐项技术说明的方式组织内容。

触发条件 需要使用高级 Kerberos 技术(noPac / KrbRelayUp / Timeroasting / RODC);基础 Kerberoasting 和委派攻击不够用;发现 RODC(只读域控制器);需要更高隐蔽性的票据伪造(Sapphire ticket)。

前置要求 技能以表格形式列出各技术所需的凭证与关键工具:Timeroasting 无需凭证,使用 timeroast、netexec;ASREQroast 无需凭证但需 MITM,使用 PCredz;noPac 需低权限域用户,使用 noPac.py、Impacket;KrbRelayUp 需本地 SYSTEM,使用 KrbRelayUp、krbrelayx;SPN-jacking 需域用户加 WriteSPN,使用 Impacket、tgssub;UnPAC-the-hash 需用户证书,使用 PKINITtools、Rubeus;Bronze Bit 需受限委派服务账号,使用 Impacket getST;Sapphire ticket 需 krbtgt hash,使用 Impacket ticketer;RODC 攻击链视阶段而定,使用 Rubeus、bloodyAD、keylistattack。

技术选择决策树 技能提供按当前条件分支的决策树:无凭证/无认证时,可达 DC NTP 走 Timeroasting,有 MITM 位置走 ASREQroast;低权限域用户时,MAQ > 0 走 sAMAccountName spoofing(noPac),有 WriteSPN 权限走 SPN-jacking;本地 SYSTEM(无域凭证)且 LDAP signing 未强制时走 KrbRelayUp;持有证书走 UnPAC-the-hash;有受限委派且目标受保护走 Bronze Bit(CVE-2020-17049);已有 krbtgt hash 且需高隐蔽走 Sapphire ticket;发现 RODC 走 RODC 攻击链。

主要技术

  1. Timeroasting:DC 的 NTP 服务使用计算机账户 NTLM hash 计算 NTP 响应 MAC,攻击者无需认证即可通过指定不同 RID 获取计算机账户 SNTP hash 用于离线破解。前置条件为网络可达 DC 的 NTP 端口(UDP 123)。核心命令包括 timeroast.py、netexec 的 timeroast 模块、Windows 的 Invoke-AuthenticatedTimeRoast,以及 hashcat -m 31300 破解。
  2. ASREQroast:在 MITM 位置(ARP 欺骗、ICMP 重定向、DHCPv6 投毒)捕获域用户 Kerberos 预认证中的 AS-REQ 加密时间戳,离线破解,不需要目标禁用预认证。核心命令为 Pcredz 抓取与 hashcat -m 7500 破解。
  3. sAMAccountName Spoofing(noPac,CVE-2021-42278 + CVE-2021-42287):组合利用修改计算机账户 sAMAccountName 与 KDC 自动追加 $ 搜索的行为,创建机器账户、改名为 DC 名、请求 TGT、改回原名、S4U2self 获取 DC 高权限 TGS。前置条件为低权限域用户、MAQ > 0、未安装 KB5008102 + KB5008380。技能给出 noPac.py 一键利用及 Impacket 与 Windows 手动链的完整命令。
  4. KrbRelayUp:在本地 SYSTEM 场景下将机器账户 Kerberos 认证 relay 到 LDAP,配置 RBCD,再通过 S4U 链获取本地管理员票据。前置条件为本地 SYSTEM、LDAP signing 未强制、MAQ > 0 或已控制机器账户。包含基础利用、DNS 投毒 relay 变体(krbrelayx + mitm6)、Coerced auth relay 变体。
  5. SPN-jacking:在拥有 WriteSPN 权限且环境已配置 KCD 时,将目标 SPN 移动到可控账户,利用 S4U 链请求票据,再用 tgssub 编辑票据 SPN 字段指向真正目标。给出 UNIX 与 Windows 流程。
  6. UnPAC-the-hash:通过 PKINIT 获取的 TGT 的 PAC 包含用户 NT hash,利用 U2U 请求机制提取 NT hash,常用于 ADCS 或 Shadow Credentials 攻击后的凭据提取。给出 PKINITtools 与 Rubeus 命令。
  7. Bronze Bit(CVE-2020-17049):直接修改 S4U2self 票据中的 forwardable 位,绕过 Protected Users 组或 sensitive 标记限制,将票据用于 S4U2proxy。核心命令为 getST.py -force-forwardable。
  8. Sapphire Ticket:Diamond Ticket 的进阶变体,通过 S4U2self + U2U 获取目标用户真实 PAC 替换到伪造票据中,PAC 来自 KDC 真实签名,检测难度极高。前置条件为已获取 krbtgt hash(AES + NT hash)。技能提示 KB5008380 补丁后 KDC 检查 PAC_REQUESTOR 和 PAC_ATTRIBUTES_INFO 结构,缺少可能导致 KDC_ERR_TGT_REVOKED。
  9. RODC 攻击链:RODC 拥有独立 krbtgt 密钥(krbtgt_XXXXX),通过密码复制策略(PRP)控制可缓存账户。技能涵盖 RODC 枚举(LDAP 查询、netexec rodc 模块)、PRP 策略查询(msDS-RevealOnDemandGroup、msDS-NeverRevealGroup)、Key List 攻击(keylistattack.py 完整/正常/指定用户模式,Rubeus 命令)、RODC Golden Ticket、RODC DACL 利用(bloodyAD、powerview.py 修改 PRP)、Pre-Windows 2000 计算机账户默认密码利用。

适用场景与限制 该技能面向已获得相应前置条件(如低权限域用户、本地 SYSTEM、证书、krbtgt hash 或 RODC 访问)的授权渗透测试与安全评估场景。各技术均依赖特定环境条件与补丁状态,技能中已逐项列出前置条件与成功标志。深入参考文档包括 references/kerberos-escalation.md(noPac / KrbRelayUp / Bronze Bit / SPN-jacking / Timeroasting / ASREQroast / UnPAC / Sapphire 完整命令参考)与 references/rodc-attack.md(RODC 概念、Key List 攻击、RODC Golden Ticket、DACL 利用、Pre-Windows 2000)。