黄金票据攻击的完整复现步骤

13 人参与

攻防演练里,拿下域控往往意味着结束,但现实远比这复杂。当蓝队开始全网封堵、重置管理员密码时,如何保证自己不会白忙一场?这就需要一张无论域控密码怎么变都能畅通无阻的通行证——黄金票据(Golden Ticket)。说白了,它就是一场针对Kerberos协议底层信任机制的降维打击,伪造的不是某个用户的身份,而是整个域的签发权威。

核心物料的精准提取

伪造票据的前提是拿到KDC的签发权。这需要两个绝对核心的数据:域的SID和krbtgt账户的NTLM Hash。krbtgt是KDC的服务账户,它的Hash就是TGT(票据授予票据)的签发密钥。通常在已获得域控权限后,通过Dcsync攻击直接提取:

mimikatz # lsadump::dcsync /domain:corp.local /user:krbtgt

拿到SID(如S-1-5-21-...)和Hash后,攻击者就掌握了域的“印钞机”。值得注意的是,微软默认不强制krbtgt定期改密,甚至改一次历史Hash依然有效,这成了防守方最大的噩梦。

伪造与注入的闭环

有了印钞机,接下来就是印钱。伪造TGT时,用户名甚至可以随意捏造,比如写个FakeAdmin,因为KDC在验证TGT时只看密钥是否匹配,根本不查用户是否真实存在于Active Directory中。

mimikatz # kerberos::golden /user:FakeAdmin /domain:corp.local /sid:S-1-5-21-xxx /krbtgt:xxx /ptt

/ptt参数直接将票据注入当前内存会话。验证环节最直观的方法是尝试访问域控的CIFS共享:

dir \DC01C$

如果能列出目录,说明伪造的身份已经被系统完全接纳。原本需要熬几个通宵抓取的权限,现在一杯咖啡的时间就搞定了。

防御的阿喀琉斯之踵

黄金票据最让人脊背发凉的地方在于其持久性。就算防守方发现了入侵,重置了所有域管密码,只要没有强制重置krbtgt密码两次(清除历史Hash库),攻击者依然能用旧物料随时生成新票据夺回控制权。这也是为什么在成熟的应急响应流程中,重置krbtgt是必须且要执行两遍的死命令。不过,现实里有多少蓝队能在慌乱中记得这条铁律呢?

参与讨论

13 条评论
  • 豆粒软弹

    krbtgt改两次这个坑我踩过,当时差点没救回来。

    回复
  • 精神分裂的猫

    Mimikatz这命令敲完直接进域控,太丝滑了😂

    回复
  • 星尘之语

    蓝队重置密码不管用?这逻辑有点吓人啊。

    回复
  • 秘银术士

    所以只要不重置krbtgt,就能一直拿权限?

    回复
  • 东陵侯

    以前搞渗透真没想到还有这种后门,涨姿势了。

    回复
  • 剑锋所指

    这操作在真实环境里能跑通吗?还是纯理论?

    回复
  • 深夜独语

    防守方要是忘了改两次,那真是白忙活一场。

    回复
  • 焰心裁决

    咖啡一杯搞定域控,这效率也是没谁了。

    回复
  • 长安旅人

    有没有更隐蔽的注入方式?ptt会不会被杀软查?

    回复
  • 梦魇引

    这文章把黄金票据讲透了,比那些水文强太多。

    回复
  • 天际旅者

    之前遇到个案子就是krbtgt没清干净,烦死了。

    回复
  • Neo风

    求问下,如果域控已经换了新系统还能这么玩吗?

    回复
  • 晨曦物联

    作者文笔不错,把复杂协议讲得跟讲故事一样。

    回复