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

1 人参与

在域环境渗透测试中,黄金票据(Golden Ticket)堪称一把“万能钥匙”。一旦攻击者获取了域控制器上krbtgt账户的NTLM哈希,就能伪造任意用户的TGT,从而实现对域内任何资源的持久访问。这种攻击之所以被称为“黄金”,正是因为其权限极高、影响范围极广,且难以被常规检测手段发现。

Kerberos认证机制的核心

理解黄金票据攻击,需要先弄清楚Kerberos认证的基本流程。客户端想要访问某个服务资源时,首先需要向域控制器申请一张TGT(票据授予票据)。这张TGT由krbtgt账户的密码哈希加密生成,包含用户身份信息和会话密钥。客户端凭借TGT再去申请访问具体服务的TGS(票据授予服务)。问题恰恰出在这里:只要攻击者手里握有krbtgt的密码哈希,就能自己“打印”一张TGT,根本不需要域控制器配合验证。

攻击原理深度解析

攻击者通过Mimikatz的DCSync功能或直接读取lsass进程内存,可以获取krbtgt账户的NTLM哈希和该域的SID值。这些信息到手后,使用如下命令即可生成黄金票据:

mimikatz # kerberos::golden /user:Administrator /domain:target.com /sid:S-1-5-21-xxx /krbtgt:ntlm_hash /ticket:golden.kiribi

生成的票据本质是一个经过krbtgt密码哈希加密的TGT。域控制器在验证票据时,只会检查签名是否有效(用krbtgt哈希能成功解密),而不会查询这个票据是不是自己签发的。这就造成了认证逻辑上的致命缺陷——系统“只认签名不认人”。

黄金票据的隐蔽性

更棘手的是,黄金票据攻击几乎不会在日志中留下明显痕迹。域控制器只负责验证票据有效性,不会记录TGT的颁发过程。攻击者用伪造票据访问文件服务器、数据库或其他域资源时,目标服务器只会看到“有效的Kerberos票据”,从而放行访问请求。这也是为什么很多企业在遭受黄金票据攻击后,事后溯源时才发现攻击者早已潜伏数月甚至数年。

防御思路

针对黄金票据攻击,最有效的策略是定期轮换krbtgt账户密码(微软建议每30天更换一次),因为密码更换后,旧票据将全部失效。同时,监控krbtgt账户的密码哈希被导出或DCSync请求也是关键检测点。此外,限制域管理员权限范围、启用 Protected Users 安全组,都能有效降低黄金票据攻击的成功率和影响面。

参与讨论

1 条评论
  • NightmarePilgrim

    那个krbtgt的哈希怎么拿?得有域管权限才行吧?

    回复