处理kerberos黄金票据攻击需切断伪造票据生成能力、识别异常使用痕迹并重建信任链;因krbtgt哈希已被窃取,必须两次间隔≥10小时重置其密码,并同步隔离主机、保全证据、清理残留凭证及加固kerberos防护。
处理kerberos黄金票据攻击导致的系统提权,核心不是“清除一张票”,而是切断伪造票据的生成能力、识别异常使用痕迹,并重建信任链。黄金票据一旦被滥用,说明攻击者已长期掌握krbtgt账户哈希——这代表域控已被深度渗透,单纯删账号或重置普通用户密码毫无意义。
立即隔离与证据保全
发现疑似黄金票据活动(如离职账号频繁访问高权限服务、TGT生命周期异常长、非工作时间大量TGS请求)时,首要动作是冻结横向移动路径:
- 断开所有可疑主机的网络连接,尤其是已确认运行mimikatz、Rubeus或执行过
lsadump::dcsync的机器 - 在域控制器上导出当前所有TGT缓存(用
klist tickets或PowerShell的Get-KrbtgtTicket模块),标记时间戳和发起IP - 完整备份域控制器的NTDS.dit、SYSTEM注册表项、安全日志(特别是事件ID 4769,即TGT发放记录)
- 暂停所有非紧急的域策略更新和组策略应用,防止攻击者借GPO注入恶意启动脚本
重置krbtgt账户并强制票据轮换
黄金票据有效性的根源在于krbtgt账户的NTLM哈希未变。必须执行两次连续重置,间隔至少10小时(大于默认TGT最大有效期):
- 第一次重置krbtgt密码:在域控制器上用
net user krbtgt NewPass123! /domain,立即触发AD同步 - 等待10–12小时,确保所有旧TGT自然过期、且无残留缓存
- 第二次重置krbtgt密码:再次执行
net user krbtgt NewPass456! /domain - 重置后,所有此前签发的黄金票据彻底失效;客户端会自动向KDC申请新TGT,旧票据无法续订
注意:单次重置无效,因为攻击者可能已导出第一次重置前的哈希,而TGT默认可续订7天。
排查与清理残留凭证
krbtgt重置只是起点,还需清除攻击者留下的持久化入口:
- 检查域内所有计算机的LSASS内存,用
procdump -ma lsass.exe配合mimikatz离线分析,确认是否仍有明文密码或NTLM哈希驻留 - 审查域控制器上的计划任务、服务、WMI永久事件订阅,查找以SYSTEM或Domain Admin身份运行的异常项
- 导出所有域用户的
LastLogonTimestamp,比对登录时间与业务规律,定位长期静默但拥有高权限的僵尸账号 - 禁用或删除所有非必要服务账户(尤其是启用了“密码永不过期”的SQL、IIS等服务账号)
加固Kerberos基础防护
防御黄金票据的关键,在于让krbtgt哈希更难获取、让票据更难滥用:
- 启用Kerberos Armoring(FAST):在域功能级别≥Windows Server 2012 R2时,配置
msDS-SupportedEncryptionTypes策略,强制要求预认证加密 - 限制DCSync权限:将“Replicating Directory Changes All”权限从默认的“Authenticated Users”组中移除,仅授予域控制器和必要管理员
- 部署基于证书的登录(PKI+Smart Card):绕过密码哈希依赖,从根本上消除NTLM认证路径
- 开启Kerberos审计:组策略中启用“审核Kerberos身份验证服务”,重点关注事件ID 4769中
Ticket Options字段是否含0x40000000(代表可转发票据)











