kerberos票据安全核心在于全生命周期可信管控:强制aes加密禁用rc4、票据有效期设为8小时且禁止转发、阻断ntlm降级并锁定kdc端口、通过事件日志与siem监控异常票据行为。
要在ad环境下保障kerberos票据安全,核心是控制票据的生成、传输、使用和销毁全过程。重点不在“能不能用”,而在于“谁在用、用多久、怎么传、是否可篡改”。以下四方面配置直接决定票据是否真正可信。
强制启用强加密算法
默认情况下,旧版Windows客户端可能仍尝试使用已知存在漏洞的RC4-HMAC(如黄金票据攻击所利用的),必须彻底禁用。
- 通过组策略【计算机配置 → 策略 → Windows设置 → 安全设置 → 账户策略 → Kerberos策略】设置“要求使用AES加密”并勾选“不使用RC4加密”
- 确保域功能级别≥Windows Server 2012 R2,否则AES256无法作为默认加密类型生效
- 对关键服务账户(如SQL Server、Web应用池账户)单独配置SPN,并显式指定支持的加密类型:setspn -S HTTP/web01.contoso.com contoso\svc-web;ktpass /out web.keytab /princ HTTP/web01.contoso.com@CONTOSO.COM /mapuser CONTOSO\svc-web /crypto AES256-SHA1
收紧票据生命周期与重用策略
过长的有效期等于给攻击者留出充足时间离线破解或重放票据。需在安全与可用之间取得平衡。
- 将“票证有效期”设为8小时,“最大服务票证寿命”设为10小时,“最大可更新寿命”不超过7天
- 启用“禁止票据转发”(Forwardable = false),防止用户获取TGT后跨设备冒用
- 对高权限账户(如Domain Admins、Enterprise Admins)单独设置更短的票据策略,例如通过Fine-Grained Password Policy(FGPP)限定其TGT最长4小时
阻断非必要协议,锁定认证通道
Kerberos票据安全的前提是它不被降级到NTLM等弱协议,也不被中间人截获明文凭证。
- 组策略中禁用NTLMv1:【计算机配置 → 策略 → Windows设置 → 安全设置 → 本地策略 → 安全选项】→ “网络安全:LAN Manager身份验证级别”设为“仅发送NTLMv2响应”
- 防火墙严格限制Kerberos端口:只允许UDP/TCP 88(KDC)、464(密码更改)、389(LDAP)、636(LDAPS)入站,其他全部拒绝
- 在DNS中正确配置SRV记录(_kerberos._tcp、_kpasswd._tcp),避免客户端因解析失败回退至不安全的发现机制
监控异常票据行为并快速响应
再严格的配置也无法替代持续观测。票据本身不可见,但其使用痕迹会体现在域控制器日志中。
- 启用Windows事件日志中的Kerberos审计:【高级审核策略配置 → 系统审核策略 → 登录/注销】→ 启用“Kerberos身份验证服务”和“Kerberos服务票证操作”
- 关注ID 4769(服务票证请求)中出现大量重复SPN请求、异常时间(如凌晨)、非常规IP地址等特征
- 部署SIEM工具(如Azure Sentinel或Splunk)对“Ticket Encryption Type: 0x17”(RC4)或“Ticket Options: 0x40000000”(可转发标志)进行实时告警
这些配置不是一次性任务,而是需要随业务变化定期复核的运行基线。比如新增关键应用时,必须同步检查其SPN注册方式与加密支持;域控制器升级后,要验证新数据库页面模式是否影响KDC响应性能。安全不是加锁,而是让每一次票据流转都可验证、可追溯、不可绕过。










