Kerberos协议虽比NTLM更安全,但票据生命周期管理与存储缺陷导致PTT攻击可绕过认证;黄金票据伪造任意用户身份,白银票据仅限特定服务;防御需组合启用Credential Guard、重置krbtgt密码等全链路措施。
kerberos 协议本身设计严谨,具备强加密、时间戳防重放、密钥分层等安全特性,比 ntlm 更可靠。但它不是“绝对安全”,真正的问题出在票据的生命周期管理与凭证存储方式上——攻击者不破解密码,而是复用或伪造合法票据,绕过认证逻辑本身。
票据传递(PTT)为什么能绕过传统防护
PTT 攻击不依赖明文密码或哈希,只依赖内存中已存在的 Kerberos 票据(TGT 或 ST)。只要获取到高权限用户的票据文件(.kirbi/.ccache),就能直接加载使用,无需管理员权限、无需本地提权、甚至无需接触目标主机的硬盘。
- TGT 默认有效期 10 小时,ST 通常 6–10 小时,窗口期长,易被窃取复用
- 票据明文会驻留内存(如 lsass 进程),Mimikatz、Rubeus 等工具可直接 dump
- Windows 默认未启用 Credential Guard,lsass 内存未受虚拟化保护
- 票据导出后可跨平台使用(Linux 上用 Impacket 的 ticketer.py 加载 .ccache)
黄金票据与白银票据的关键区别
两者都属于伪造类票据攻击,但触发条件和影响范围不同:
- 黄金票据(Golden Ticket):用 krbtgt 账户的 NTLM 或 AES-256 密钥生成,可伪造任意域用户身份,访问任意 Kerberos 服务,有效期最长可达 10 年(默认策略),本质是“域级后门”
- 白银票据(Silver Ticket):用特定服务账户(如 MSSQLSvc、HTTP)的密钥生成,只能访问对应服务,无法跨服务跳转,但隐蔽性强、更难被 SIEM 检测
krbtgt 是 KDC 的核心服务账户,其密码哈希一旦泄露,整个域的信任体系即被攻破;而服务账户哈希泄露仅影响该服务,但更易被忽视。
防御 PTT 攻击的实操要点
单点加固无效,需组合策略覆盖票据生成、存储、使用、监控全链路:
- 启用 Windows Defender Credential Guard(需 CPU 虚拟化支持),隔离 lsass 进程内存,阻止票据 dump
- 定期重置 krbtgt 账户密码(建议每 180 天执行两次连续重置,确保旧密钥彻底失效)
- 禁用非必要服务账户的 Kerberos 身份验证(如设置 SPN 前先评估是否必须)
- 启用并集中收集关键事件 ID:4769(TGS 请求)、4768(TGT 请求)、4624(登录类型 3/10 表示票据登录)
- 限制高权限账户登录终端服务器或交互式桌面,减少票据驻留机会
检测票据异常使用的信号
攻击者加载票据后行为往往暴露痕迹,关注以下异常模式:
- 同一 TGT 在短时间内请求大量不同服务的 ST(横向扫描特征)
- ST 请求来源 IP 与用户常规办公位置不符,且无对应 AS-REQ 记录(票据为外部导入)
- 票据中 PAC(Privilege Attribute Certificate)字段被篡改(如 SID 添加 Domain Admin 组)
- 服务端收到 ST 后未校验 PAC 签名(配置错误导致黄金票据生效)
这些信号可通过 EDR 日志、域控制器安全日志、或自定义 SIEM 规则识别,比单纯查杀工具更可持续。

















