终极伪造:黄金票据(Golden Ticket)与委派攻击(Delegation)底层逻辑

终极伪造:黄金票据(Golden Ticket)与委派攻击(Delegation)底层逻辑

在内网渗透的终局之战中,当攻击者终于拿下了域控(Domain Controller, DC)的最高权限,这并不意味着渗透的结束,而是**权限维持(Persistence)**的开始。

攻击者深知,管理员迟早会发现异常并修改密码、重启服务器甚至重装系统。为了在这个网络中留下永远无法被轻易抹除的“幽灵后门”,攻击者会将目光投向 Active Directory 中最核心、最底层的信任机制:krbtgt 账号委派(Delegation)机制


1. 黄金票据 (Golden Ticket):域内的“上帝之手”

回顾 Kerberos 认证的 AS 阶段:当用户通过身份验证后,KDC 会返回一张 TGT(Ticket Granting Ticket,票据授予票据)这张 TGT 的底层加密密钥,是域内一个特殊账号 krbtgt 的 NTLM Hash。

1.1 黄金票据的底层逻辑

如果攻击者已经拿下了域控,并且导出了 krbtgt 账号的 Hash。那么,攻击者就可以在自己的电脑上,离线伪造出任意身份、任意权限、任意有效期的 TGT。这就是“黄金票据”。

  • 无需域控在线验证:伪造 TGT 的过程完全在本地发生。
  • 无视密码修改:即使管理员修改了 Administrator 的密码,只要 krbtgt 的密码没改,伪造的 Administrator 票据依然有效。
  • 终极权限维持:攻击者可以把票据的有效期设置为 10 年,只要拿着这张票,域内所有机器(包括域控)都必须无条件信任。

1.2 实战伪造推演

# 1. 在域控上导出 krbtgt 的 NTLM Hash 和域的 SID
mimikatz # lsadump::dcsync /domain:target.local /user:krbtgt

# 2. 在任意一台机器上,使用 Mimikatz 伪造黄金票据并注入内存
mimikatz # kerberos::golden /admin:Administrator /domain:target.local /sid:S-1-5-21-xxxxxxxxx /krbtgt:8846f7eaee8fb117ad06bdd830b7586c /ticket:golden.kirbi /ptt

注入成功后,攻击者在普通的 CMD 窗口中输入 dir \\dc.target.local\c$,将直接以域管身份列出域控的 C 盘目录。

1.3 白银票据 (Silver Ticket) 对比

  • 加密对象不同:黄金票据伪造的是 TGT(用 krbtgt Hash 加密),白银票据伪造的是 ST 服务票据(用特定服务账号的 Hash 加密)。
  • 权限范围不同:黄金可以访问域内所有服务;白银只能访问特定的服务(如仅能访问某台机器的 CIFS 共享)。
  • 隐蔽性:白银票据的认证过程(AP阶段)不与 KDC 通信,直接发给目标服务器,因此在域控上完全没有日志,极其隐蔽。

2. 委派攻击 (Delegation):信任的链式崩塌

在现代企业架构中,往往有前端 Web 服务器需要代替用户去访问后端的数据库服务器。这就要求 Web 服务器能“借用”用户的身份。这种机制在 AD 域中被称为委派(Delegation)

委派本质上是一种“信任关系的转移”,而一旦这种信任被滥用,普通服务器就能瞬间篡权。

2.1 非约束委派 (Unconstrained Delegation)

这是最古老、最危险的委派方式。

  • 机制:如果 Web 服务器配置了非约束委派,当域管通过 Kerberos 访问 Web 服务器时,域管的 TGT 会被直接缓存在 Web 服务器的内存中,以便 Web 服务器随时拿着这张 TGT 去访问其他服务。
  • 致命打击:攻击者只需攻陷这台 Web 服务器,然后“守株待兔”或者使用“钓鱼”手段(如打印机 Spooler Bug 强迫域控来连接自己),一旦域管或域控的机器账户连接了这台 Web,攻击者就能从内存中把域管的 TGT 偷走,瞬间拿下全域。

2.2 约束委派 (Constrained Delegation)

为了修补非约束委派的漏洞,微软推出了约束委派。

  • 机制:Web 服务器不再缓存用户的 TGT。当用户访问 Web 时,Web 服务器利用特殊的协议扩展(S4U2Proxy),向 KDC 申请一张仅限访问后端数据库的 ST
  • 漏洞推演:如果攻击者拿下了配置了约束委派的 Web 服务器账号 Hash,他虽然拿不到域管的 TGT,但他可以利用 S4U2Self 扩展,伪造任何用户(包括域管)的身份,向自己申请票据;然后再利用 S4U2Proxy,把这张伪造的票据转化为访问后端特定服务的 ST。从而实现了对后端服务的提权。

2.3 基于资源的约束委派 (RBCD)

这是最新的委派机制,控制权交给了“资源拥有者”(即后端服务)。

  • 攻击面:如果攻击者能够修改某台机器的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性(例如通过中继 NTLM 认证,或者利用某些低权限账号的默认添加机器权限),攻击者就可以将一台自己控制的机器设置为受信任的委派源。从而绕过域管的审批,直接实现对目标机器的横向控制。

3. 终极防御:阻断信任的蔓延

防御黄金票据和委派攻击,要求企业具备极高的 Active Directory 架构管理水平:

  1. 定期重置 krbtgt 密码(防御黄金票据): 由于 TGT 的有效期,仅仅修改一次 krbtgt 密码是不够的,必须在短时间内连续修改两次,才能彻底使所有已发行的伪造 TGT 失效。
  2. 禁用非约束委派: 在全域范围内排查并彻底禁用“信任此计算机来委派任何服务”。使用更为安全的受限委派或 gMSA。
  3. 加入 Protected Users 组: 将所有高权限账号(如 Domain Admins)加入 Protected Users 组。该组内的账号不可被委派,其凭证也不会被缓存在内存中。
  4. Tier 模型 (分层管理): 实施严格的 Tier 0 (域控区), Tier 1 (服务器区), Tier 2 (工作站区) 隔离。Tier 0 的管理员绝对不允许登录 Tier 1 或 Tier 2 的机器,从物理和逻辑上切断凭证被窃取和委派被滥用的路径。

域控的安全,是整个企业信息安全的最后一道防线。当黄金票据被锻造,当信任链条被委派所扭曲,唯有对底层协议保持绝对的敬畏,才能在红蓝对抗中守住这最后的阵地。