防御kerberos金票据攻击的核心是阻断krbtgt密钥获取路径,而非拦截票据;必须连续两次重置krbtgt密码(间隔≥4小时),严格限制dcsync权限,禁用ntlm和rc4加密,并启用id 4768/4769审计。
防御kerberos金票据攻击,核心不是拦截票据本身,而是阻断攻击者获取krbtgt账户密钥的路径。审计只是辅助手段,真正起效的是前置加固与权限收敛。
强制轮换krbtgt密码(必须连续两次)
krbtgt是Kerberos认证体系的根密钥,其NTLM或AES密钥一旦泄露,所有TGT都可被离线伪造。默认配置下,一张黄金票据有效期可达10年,且不依赖网络连通性。
- 第一次轮换:使当前生效的哈希失效,但旧票据仍可在缓存期内使用
- 第二次轮换:间隔至少4小时后执行,确保所有域控完成密钥同步,彻底废止旧密钥
- 验证命令:Get-ADUser krbtgt -Properties PasswordLastSet,确认两次修改时间差符合要求
- 轮换后需观察服务是否异常——部分老旧应用若硬编码krbtgt密钥可能中断,但这是必要阵痛
严格限制DCSync权限
99%的黄金票据攻击始于DCSync操作,即攻击者以高权限账户从域控同步krbtgt哈希。这不是功能缺陷,而是权限配置失当。
- 默认拥有DCSync权限的组仅有Domain Admins、Enterprise Admins;检查是否有其他用户或服务账户被意外加入
- 使用PowerShell审计:Get-ADReplAccount -Filter * | Where-Object {$_.ReplicationPermissions -like "*DS-Replication-Get-Changes*"}
- 将非必要账户从“Replicating Directory Changes”权限中移除,最小化授权面
启用并精调Kerberos相关审计策略
日志不能阻止攻击,但能缩短检测窗口。重点不是记录“一切”,而是捕获关键异常信号。
- 开启两项关键审计子类别:Kerberos Authentication Service(ID 4768) 和 Kerberos Service Ticket Operations(ID 4769)
- 重点关注4768事件中的异常字段:Ticket Encryption Type为0x17(RC4_HMAC_MD5)、Logon Hours为空或极宽、Client Address非常规IP(如内网段外地址)
- 对4769事件做聚合分析:单个用户在短时间内请求大量不同服务的ST(如CIFS、HTTP、MSSQLSvc),且来源IP无对应4768记录——这很可能是黄金票据已存在,正用于横向移动
禁用NTLM并淘汰RC4加密套件
白银票据虽不直接依赖krbtgt,但黄金票据常配合白银票据扩大战果;而两者都高度依赖RC4_HMAC_MD5哈希。禁用NTLM可大幅削弱该哈希的生成与驻留条件。
- 组策略路径:Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options
- 设置:Network security: LAN Manager authentication level = Send NTLMv2 response only
- 同时在域策略中禁用RC4:域控制器安全策略 → Account Policies → Kerberos Policy → Supported encryption types,取消勾选RC4_HMAC_MD5
- 注意:需提前验证客户端兼容性,Windows 7及更早系统可能受影响










