黄金票据攻击原理深度解析

1 人参与

在一次模拟红队演练中,安全团队意外发现一名内部用户的票据拥有异常长的有效期,经过追踪才揭开了所谓“黄金票据”背后的完整机制。若不把握其细节,几乎每一次横向移动都可能被这枚伪造的钥匙轻易打开。

攻击链概览

攻击者先通过域内弱口令或凭证抓取获得高权限账户的哈希,随后利用 Mimikatz 的 lsadump::dcsync 模块冒充域控制器,直接导出 krbtgt 账户的密码散列。拿到 krbtgt 哈希后,便可在任意机器上伪造 Kerberos 票据——这一步就是“黄金票据”。生成后,攻击者把票据注入到本地票据缓存,随后以域管理员身份访问任何资源,甚至不需要再进行横向移动。

Kerberos 认证机制回顾

Kerberos 采用对称密钥模型,核心在于 krbtgt 账户的密钥。用户请求服务票据(TGS)时,域控制器先用 krbtgt 密钥对票据进行加密签名,客户端随后将签名的票据呈递给目标服务器进行验证。只要攻击者能掌握 krbtgt 的密钥散列,就能自行生成合法签名的票据,绕过所有真实的身份验证环节。

黄金票据的生成逻辑

生成过程看似简单,却隐藏了几个关键参数:用户 SID、域 SID、票据有效期以及 krbtgt 哈希本身。Mimikatz 的 kerberos::golden 命令会把这些信息拼装成符合 Kerberos ASN.1 结构的二进制块,再用 krbtgt 哈希进行加密。下面是一段常见的生成脚本:

# 假设已获取 krbtgt hash
mimikatz # kerberos::golden /user:Administrator /domain:contoso.com /sid:S-1-5-21-... /krbtgt:abcd1234efgh5678

常见滥用场景与检测要点

  • 利用黄金票据登录 DC,直接导出所有用户的哈希。
  • 在非交互式服务(如 SQL Server)上注入票据,实现持久化后门。
  • 票据有效期异常长(默认 10 年),可通过事件日志中 Ticket Granting TicketEnd Time 字段快速发现。
  • 检测异常的 krbtgt 哈希导出行为:lsadump::dcsync 调用频率异常时应触发告警。

“黄金票据的威力在于它把整个域当成一个巨大的信任池,一旦钥匙被复制,所有门都不再需要钥匙。”——某资深渗透测试顾问

面对如此强大的伪造手段,防御思路不再是单纯的口令强度,而是要在 krbtgt 密钥轮换、票据缓存监控以及 DC 的 DCSync 访问审计上做足文章。只要把这些环节紧密锁住,黄金票据的“金光”也会随之黯淡。

参与讨论

1 条评论
  • 布丁小可爱

    这玩意太危险了,拿个哈希就能横着走?

    回复