金票据是伪造的TGT,利用krbtgt哈希生成,具备全域管理员权限和10年有效期;银票据是伪造的ST,仅限指定服务,依赖服务账户哈希且受5分钟时钟偏移限制。
Kerberos金票据(Golden Ticket)的原理与风险金票据是攻击者伪造的tgt(ticket granting ticket),它直接绕过域控的身份验证环节,具备长期有效性(默认10年)和全域管理员权限。攻击者需先获取域控制器中krbtgt账户的ntlm哈希(即krbtgt密码的哈希值),再用该哈希加密生成任意用户(包括不存在的用户)的tgt。一旦注入内存,该票据可被用于请求任意服务的st(service ticket),无需再与kdc交互。
关键点在于:
- 依赖krbtgt账户的长期密钥(NTLM hash),该密钥仅在krbtgt密码重置时更新;
- 票据时间戳可自定义,能绕过常规时效检查;
- 域内所有KDC均信任该TGT,无法从协议层面识别真伪。
Kerberos银票据(Silver Ticket)的原理与局限银票据是伪造的ST(Service Ticket),不经过KDC签发,而是攻击者直接使用目标服务账户(如cifs、http、MSSQLSvc等)的NTLM哈希加密生成。它只能访问指定服务,且不触发域控日志(因未调用TGS-REQ流程),但必须提前知道服务账户密码哈希,并且依赖本地机器时间与域时间偏差不超过5分钟(Kerberos时钟偏移限制)。
典型使用场景:
- 针对特定服务器(如文件服务器、Web应用、数据库)的横向渗透;
- 绕过部分基于域控日志的检测机制;
- 无法提权为域管理员,权限受限于服务账户本身权限(如普通域用户运行的服务,银票也仅具该用户权限)。
有效防范金/银票据攻击的关键措施防御核心是“切断哈希获取路径”+“缩短密钥生命周期”+“增强检测能力”:定期重置krbtgt账户密码两次:首次重置后等待至少10小时(确保所有DC完成复制),再执行第二次重置,使旧哈希彻底失效;
禁用或严格管控高权限账户的明文密码缓存:通过组策略关闭WDigest凭据存储(设置注册表项HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential = 0);
启用Kerberos armoring(FAST)和AES加密强制策略:禁用RC4_HMAC,要求所有票据使用AES加密,增加离线破解难度;
监控异常Kerberos事件ID:重点关注域控日志中的4769(TGS请求)、4771(预身份验证失败)、4624(登录类型3/8/9)等,结合源IP、用户代理、票据生命周期异常组合告警;
最小权限原则+服务账户专用化:避免使用域管理员账户运行服务,为每个服务分配独立低权限账户,降低银票危害面。
检测与响应建议金票据难以通过协议字段直接识别,但可通过行为分析发现:- 同一TGT被频繁用于请求多个不同服务的ST;
- TGT生命周期远超正常范围(如超过7天);
- 用户登录时间早于其密码上次修改时间(暗示TGT基于旧密钥生成)。
银票据更易暴露:
- ST请求未伴随前置TGT请求(即无对应4768事件);
- 服务日志中出现来源IP非本机、但SPN匹配的服务访问;
- 使用Microsoft ATA或Azure AD Identity Protection等工具可自动标记可疑票据使用行为。
