终极伪造:黄金票据(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 实战伪造推演
注入成功后,攻击者在普通的 CMD 窗口中输入 dir \\dc.target.local\c$,将直接以域管身份列出域控的 C 盘目录。
1.3 白银票据 (Silver Ticket) 对比
- 加密对象不同:黄金票据伪造的是 TGT(用
krbtgtHash 加密),白银票据伪造的是 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 架构管理水平:
- 定期重置 krbtgt 密码(防御黄金票据):
由于 TGT 的有效期,仅仅修改一次
krbtgt密码是不够的,必须在短时间内连续修改两次,才能彻底使所有已发行的伪造 TGT 失效。 - 禁用非约束委派: 在全域范围内排查并彻底禁用“信任此计算机来委派任何服务”。使用更为安全的受限委派或 gMSA。
- 加入 Protected Users 组:
将所有高权限账号(如 Domain Admins)加入
Protected Users组。该组内的账号不可被委派,其凭证也不会被缓存在内存中。 - Tier 模型 (分层管理): 实施严格的 Tier 0 (域控区), Tier 1 (服务器区), Tier 2 (工作站区) 隔离。Tier 0 的管理员绝对不允许登录 Tier 1 或 Tier 2 的机器,从物理和逻辑上切断凭证被窃取和委派被滥用的路径。
域控的安全,是整个企业信息安全的最后一道防线。当黄金票据被锻造,当信任链条被委派所扭曲,唯有对底层协议保持绝对的敬畏,才能在红蓝对抗中守住这最后的阵地。