Kerberos 票据事件是什么
4768 记录 Kerberos 的 TGT(票据授予票据)请求,成功与失败都记,并且带一个失败码;4771 记录预认证失败,通常对应密码错误或时间偏差过大。域内使用 Kerberos 认证的登录都会产生这两类事件,成功登录伴随 4624,失败则只留下 4768/4771。与之相对,域外设备或走 NTLM 的认证不产生这些事件,要看 4625。
基本信息
| 适用平台 | Windows 域环境,事件记录在域控的 Security 通道 |
|---|---|
| 事件号 | 4768 TGT 请求(含失败码)、4771 预认证失败 |
| 常见失败码 | 0x6 客户端不存在、0x12 密码错误、0x17 密码过期、0x18 密码错误、0x25 时钟偏差过大 |
| 读取权限 | 域控安全日志,需相应权限 |
典型使用场景
- 用户报“无法登录域”:按失败码区分是密码问题、账户问题还是时间问题
- 时钟偏差排查:0x25 明确指向时间不同步,先校时再谈别的
- 服务账户故障:服务启动失败但密码看起来正确,多半是密码过期或缓存旧凭据
- 安全分析:同一账户在多个来源大量失败,可能是口令喷洒攻击
- 应用集成排障:SPN 配置错误会在票据申请阶段就暴露问题
常用示例
常用示例
# 近 12 小时的 TGT 请求与预认证失败
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4768,4771; StartTime=(Get-Date).AddHours(-12)} |
Select-Object TimeCreated, Id, @{n='User';e={$_.Properties[0].Value}}, @{n='Code';e={$_.Properties[6].Value}} -First 20 |
Format-Table -AutoSize
# 按失败码聚合,快速看是哪一类问题占主导
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4768,4771; StartTime=(Get-Date).AddHours(-12)} |
Group-Object {$_.Properties[6].Value} | Sort-Object Count -Descending | Select-Object Count, Name
# 检查时间同步状态
w32tm /query /status失败码对照
| 失败码 | 含义 | 处理方向 |
|---|---|---|
| 0x6 | 客户端账户不存在 | 账户被删或名称写错 |
| 0x12 | 密码错误 | 确认密码或旧凭据残留 |
| 0x17 | 密码已过期 | 需改密或延长有效期 |
| 0x18 | 密码错误(凭据无效) | 常见于服务账户密码过期 |
| 0x25 | 时钟偏差过大 | 先解决时间同步(默认容差 5 分钟) |
| 0x7 | 服务器主体名称错误 | SPN 配置或 DNS 记录问题 |
看到 0x25 就不要在密码上花时间:Kerberos 对时钟偏差非常敏感,客户端与域控时间差超过默认容差(约 5 分钟)就会直接失败。先修时间和时区,再复测登录。
判断是“个别用户问题”还是“集体异常”,最快的办法是按失败码与账户分组统计:单一账户高频失败指向本地配置或缓存凭据;多个账户同时失败则要考虑域控、时间源或网络层面的变化。
4771 在大量不同账户上集中出现,是口令喷洒的典型特征。这种情况不要只当作登录故障处理,应同步走安全响应流程,确认来源地址与是否已有成功登录。