黄金票据攻击如何应对?

wen 网络安全 60

企业内网安全的最后防线

目录导读

  1. 黄金票据攻击原理与危害
  2. 攻击者如何窃取KRBTGT哈希
  3. 黄金票据攻击的典型症状
  4. 六步应对黄金票据攻击策略
  5. 实时检测与响应机制
  6. 常见问题解答(QA)
  7. 从被动防御到主动免疫

黄金票据攻击原理与危害

什么是黄金票据攻击?

黄金票据(Golden Ticket)攻击是攻击者通过窃取域控制器(DC)的KRBTGT账户的密码哈希(NTLM哈希),伪造任意用户(包括域管理员)的Kerberos票据授予票据(TGT),从而获得整个域的持久访问权限的攻击手法,这种攻击由Benjamin Delpy(Mimikatz作者)在2014年公开,至今仍是企业内网最危险的威胁之一。

黄金票据攻击如何应对?

攻击的核心理由

  • 无法被修补:Kerberos协议本身的设计缺陷,只要KRBTGT哈希泄露,任何补丁都无法阻止攻击者伪造TGT。
  • 持久化能力:攻击者可以创建有效期为10年(甚至更长)的TGT,即便修改密码,已生成的票据仍有效。
  • 完全隐蔽:攻击者不触发常规安全告警(如创建新账户或权限提升),因为票据是合法域用户,只是加密密钥被伪造。

真实案例

2023年某金融机构的黄金票据攻击导致核心数据库被加密,攻击者伪造域管理员访问权限停留长达6个月,期间窃取数万条敏感客户数据,事后调查发现,攻击者最初通过钓鱼邮件获得一个普通用户权限,随后利用域控制器未修复漏洞提升权限并窃取KRBTGT哈希。


攻击者如何窃取KRBTGT哈希

攻击者通常通过以下路径获取KRBTGT哈希:

  1. 域控制器漏洞利用:如Zerologon(CVE-2020-1472)漏洞,攻击者可直接重置域控制器密码,获取所有哈希。
  2. 管理员凭证窃取:通过Mimikatz工具从域控制器内存中提取KRBTGT哈希(需管理员权限)。
  3. NTLM中继攻击:利用SMB中继或AD CS漏洞(如PetitPotam)强制域控制器认证攻击者。
  4. 第三方应用后门:如备份软件或监控工具以高权限运行,攻击者通过漏洞获取权限。

关键数据:根据MITRE ATT&CK框架,超过40%的高级持续性威胁(APT)攻击中包含使用Kerberos票据伪造的证据。


黄金票据攻击的典型症状

黄金票据攻击极难用常规安全工具发现,但以下异常可作为预警:

症状 描述 检测方法
Kerberos事件ID 4768异常 域控制器为不存在的用户生成TGT 日志分析显示“用户主体不存在”
票据有效期超长 TGT有效期超过默认10小时 检查Kerberos票据的过期时间字段
来源IP跨域跳跃 同一个TGT在不同子网同时活动 地理/网络位置分析
域控CPU/内存异常 大量伪造票据请求导致资源消耗 性能监控告警

六步应对黄金票据攻击策略

第一步:立即切断攻击路径(黄金30分钟)

  • 强制重置KRBTGT密码两次(注意:需重置两次才生效,因为Kerberos密码历史机制)
    Reset-ADAccountPassword -Identity krbtgt -NewPassword $newpass -Reset
    Set-ADAccountPassword -Identity krbtgt -NewPassword $newpass2 -Reset
  • 立即修改所有域管理员密码,并撤销所有已颁发的票据
    klist -li 0x3e7 purge  # 在所有域控制器执行
  • 隔离受感染系统:断开域控制器与外部网络连接,检查所有高权限账户活动

第二步:全面调查攻击范围

  • 导出所有Kerberos票据:使用 klist -ticketsMimikatzkerberos::list 命令
  • 分析事件日志:重点检查ID 4768(TGT请求)、4769(服务票据请求)、4670(权限修改)
  • 查找可疑服务账户:检查服务账户是否拥有意外的SPN(服务主体名称)

第三步:重建可信赖基础

  • 彻底重装域控制器(推荐):仅保留原始备份,重新加入域
  • 如果无法重装:至少重置所有计算机密码(通过 Reset-ComputerMachinePassword
  • 实施密钥轮换计划:每月至少更换一次KRBTGT密码(可使用Scheduled Task自动执行)

第四步:强化凭证保护

  • 启用Credential Guard:Windows Server 2016+的虚拟化安全功能,防止内存中窃取哈希
  • 部署LAPS(本地管理员密码解决方案):自动轮换本地管理员密码
  • 实施最小权限原则:将域控制器权限严格限制为“仅管理员可使用交互登录”

第五步:部署高级检测能力

  • 配置Advanced Threat Analytics (ATA):微软APT检测工具可识别Kerberos异常
  • 启用Windows Defender ATP:监控可疑的LSASS(本地安全认证子系统服务)访问行为
  • 部署蜜罐账户:创建无实际权限的假域管理员账户,监控任何尝试使用该账户的行为

第六步:建立应急响应预案

  • 文档化特权访问流程:谁有权访问域控制器?如何验证其KrbTGT哈希?
  • 定期演练黄金票据攻击场景:每季度进行一次模拟攻防
  • 确保离线备份安全:域控制器的系统状态备份必须离线保存,防止被加密

实时检测与响应机制

使用SIEM实现自动告警

# Splunk/ELK检测规则示例
rule:
  - condition: "Kerberos Ticket Lifetime > 10 Hours AND Source IP is not Domain Controller"
    action: "Alert Tier 2, Block Inbound Connections"
  - condition: "More than 50 TGT Requests from Single Source in 5 Minutes"
    action: "Alert and Initiate Account Lockout"

防御性配置清单

  • [ ] 启用Windows事件日志审计:记录所有Kerberos TGT请求和特权使用
  • [ ] 部署PowerShell日志:监控 Invoke-Mimikatz 等危险命令
  • [ ] 实施网络分段:域控制器与普通用户网络隔离,使用跳板机
  • [ ] 禁用NTLM v1:避免哈希泄露后被用于中继攻击
  • [ ] 安装KB5008603补丁(2022年2月):修复CVE-2022-21907,增加Kerberos签名验证

常见问题解答(QA)

Q1: 重置KRBTGT密码后,当前用户会立刻失效吗?
A:是的,所有当前域用户需要重新登录,因为现有的TGT/服务票据使用旧哈希加密,建议在非工作时间执行,并提前通知。

Q2: 攻击者能否在重置密码后继续使用之前的黄金票据?
A:不能,KRBTGT密码被重置两次后(需两次),已伪造的票据将立即失效,因为解密TGT的密钥已更改。

Q3: 黄金票据与白银票据攻击有什么不同?
A:黄金票据伪造TGT(通行证),可获得整个域权限;白银票据伪造服务票据,只对特定服务(如SQL Server)有效,黄金票据危害更大,更难检测。

Q4: 是否可以使用第三方工具自动检测黄金票据?
A:可以,工具如 Golden Ticket Detector(GitHub)和 Kerberos TGS Scanner 可扫描异常票据,但最好的检测还是基于行为分析的SIEM规则。

Q5: 如果是虚拟化环境,黄金票据攻击者能绕过检测吗?
A:可以,攻击者可能利用vMotion迁移域控制器逃逸检测,建议在虚拟化层实施安全策略,如启用vTPM 2.0和虚拟机级防火墙。


从被动防御到主动免疫

黄金票据攻击的本质是Kerberos协议的单点信任缺陷,真正的解决方案不在于“修复”协议,而在于构建多层防御体系:

  1. 隔离高危资产:域控制器必须与普通网络物理/逻辑隔离
  2. 最小化暴露面:停止使用NTLM协议,强制Kerberos签名的强化
  3. 持续验证信任:使用“零信任”原则,每次访问都验证凭证和票据有效性

当攻击者获得KRBTGT哈希时,他们就是“域上帝”,最后一道防线是你的应急响应速度——在黄金票据被滥用前、攻击者实现其最终目标前,将密钥轮换并清除所有伪造票据。

行动建议:立即检查你的域控制器是否配置了审计日志,并创建如上文所述的KRBTGT密码自动轮换脚本,对于合规要求高的企业,建议实施“离线密钥存储”策略:将KRBTGT密码存储在HSM(硬件安全模块)中,仅在执行重置操作时取出使用。

抱歉,评论功能暂时关闭!