导读:本期聚焦于深圳程序员创作的《什么是Golden Ticket黄金票据攻击?原理分析与防御方案详解》,敬请观看详情。攻击者拿到域控的KRBTGT账户哈希后,就能伪造出一张看似合法的TGT票据,随意冒充域管理员访问域内任意资源,这就是黄金票据攻击。本文从Kerberos认证流程讲起,拆解黄金票据的伪造原理,分析 Mimikatz 的利用方式以及票据的特征识别方法,并给出重置KRBTGT密码、启用PAKAC、部署深度防御等切实可行的防护措施,帮助运维人员理解这类攻击并加固自己的Active Directory环境。

黄金票据(Golden Ticket)是内网渗透和域安全领域里最经典的攻击手法之一。它利用的是Kerberos协议中一个天然的信任缺陷:KDC只认KRBTGT账户的密钥,而不验证票据本身的来源。一旦攻击者拿到了KRBTGT的NTLM哈希,就可以离线伪造出任意用户的TGT票据,即使该用户根本不存在,域控也会照单全收。理解黄金票据的原理,是做好Active Directory防御的基础。

什么是Golden Ticket黄金票据攻击?原理分析与防御方案详解

一、先弄懂Kerberos认证流程中的关键环节

要理解黄金票据,必须先搞清楚Kerberos的三方交互模型。客户端登录域时,第一步是向KDC的AS服务发送AS-REQ请求,用自己的NTLM哈希加密时间戳来证明身份。AS验证通过后,会返回一个由KRBTGT账户哈希加密的TGT票据,这就是整个体系的信任根基。

之后客户端拿着TGT去访问文件服务器、数据库等服务时,向TGS发起TGS-REQ请求,TGS用自己的KRBTGT密钥解密TGT,确认合法后下发服务票据ST,客户端再用ST访问目标服务。注意一个细节:TGT的整个生命周期内,域控不会每次都重新校验用户账户状态。

问题就出在这里。KDC对TGT的校验方式只有一个——用KRBTGT哈希解密。它默认能解开的票据就是自己签发的票据,因为理论上只有KDC自己知道KRBTGT的密钥。可一旦这个密钥泄露,攻击者就拥有了和KDC同等的话语权。

二、黄金票据的伪造原理与技术特征

黄金票据的本质是攻击者绕过AS验证环节,直接自己构造TGT。伪造时需要几个关键参数:域名、域SID、KRBTGT的NTLM哈希,以及想要冒充的用户名。攻击者通常在拿到域控权限或通过DCSync导出KRBTGT哈希后,用Mimikatz完成伪造:

# 提取KRBTGT哈希(需要域管或DCSync权限)
mimikatz # lsadump::dcsync /domain:corp.local /user:krbtgt

# 伪造黄金票据
mimikatz # kerberos::golden /user:Administrator /domain:corp.local /sid:S-1-5-21-1004336710-2011219185-2311893561 /krbtgt:<krbtgt的NTLM哈希> /ptt

伪造出来的票据有几个显著特征:用户名可以随意编造,甚至可以是域内不存在的账户;用户ID通常设置为500(默认管理员的RID),从而获得域管权限;票据的生存周期可以任意指定,理论上能设置为十年;并且可以伪造给任意服务使用,突破了一般票据只针对特定SPN的限制。这些特征也反过来给检测提供了线索。

还需要区分黄金票据和白银票据(Silver Ticket)。黄金票据伪造的是TGT,由KRBTGT密钥签名,能通吃域内所有服务;白银票据伪造的是ST,用的是具体服务账户的密钥,只能访问特定服务,但连KDC都不经过,更隐蔽。两者的防御重点不同,前者必须重置KRBTGT密码才能失效,后者重置对应服务账户密码即可。

三、检测手段:从流量和日志中找异常

黄金票据在流量层面有一些可识别的指纹。例如伪造票据的加密类型可能与域策略不一致,Kerberos报文中出现了RC4-HMAC(0x17)而域内已经全面启用AES;或者票据中出现了异常的PAC字段。用工具从pcap流量中提取Kerberos信息是常见的排查方式:

# 使用krb2pcap或Wireshark过滤Kerberos流量
# Wireshark过滤表达式:显示所有AS-REP和TGS-REP交互
kerberos || krb5

# 检查事件日志中的4769事件(服务票据请求)
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4769} |
  Where-Object { $_.Properties[5].Value -eq '0x17' } |
  Select-Object -First 20 TimeCreated, Message

日志层面重点关注Windows事件ID 4624和4768、4769。如果发现某个从未登录过的账户突然以管理员身份访问域控,或者票据加密降级、票据生存周期异常长、账户RID显示为500但用户名不是真实的内置Administrator,都应高度怀疑票据伪造。此外微软的ATA(Advanced Threat Analytics)和一些EDR产品内置了异常TGT检测规则,建议在关键环境部署。

四、防御方案:从根上斩断伪造链条

黄金票据一旦签发,唯一能使其失效的办法是重置KRBTGT密码。建议至少重置两次,因为KRBTGT账户会保留当前密钥和上一个历史密钥,只重置一次旧的黄金票据仍然有效。重置操作要分批执行并规划好回滚方案,避免影响正在进行的Kerberos会话。

日常加固可以从以下几个层面入手:

  • 保护KRBTGT哈希:严格限制DCSync权限,默认只有Domain Admins和Domain Controllers组的成员可以执行目录复制,定期用BloodHound或AdFind检查是否存在异常的复制权限委派。
  • 启用组策略中的“计算机配置\Windows设置\安全设置\安全选项\网络安全:配置Kerberos允许的加密类型”,只保留AES256,禁用RC4,从加密层面增加伪造难度。
  • 部署微软2014年11月的补丁(KB3011780)并开启Kerberos PAC校验,让KDC对PAC签名做完整验证。
  • 启用账户防护:对特权账户开启“此账户敏感且不能被委派”属性,配合认证策略(Authentication Policies)限制TGT生命周期。
  • 纵深防御:域控上部署EDR、限制域管登录范围、定期轮转特权凭证,即使单点失陷也能及时止损。

最后要强调,黄金票据攻击的前提是攻击者已经拿到KRBTGT哈希,这通常意味着域控已经沦陷或存在严重的权限配置问题。所以防御的本质不只是对抗票据伪造本身,而是要把域控隔离好、把权限管好、把凭证保护好。定期做域内权限审计和红蓝对抗演练,才能真正把这类域持久化攻击的风险降下来。

Golden Ticket域控安全Kerberos认证修改时间:2026-09-12 08:36:33

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260912/55218.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。