L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

detecting-golden-ticket-attacks-in-kerberos-logs

detecting-golden-ticket-attacks-in-kerberos-logs

通过分析 Kerberos TGT 异常(包括加密类型不匹配、不可能的票据生命周期、不存在的账户以及域控制器事件日志中的伪造 PAC 签名),检测 Active Directory 中的黄金票据攻击。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: detecting-golden-ticket-attacks-in-kerberos-logs description: 通过分析 Kerberos TGT 异常(包括加密类型不匹配、不可能的票据生命周期、不存在的账户以及域控制器事件日志中的伪造 PAC 签名),检测 Active Directory 中的黄金票据攻击。 domain: cybersecurity subdomain: threat-hunting tags: [threat-hunting, golden-ticket, kerberos, active-directory, mitre-t1558-001, credential-abuse] version: "1.0" author: mahipal license: Apache-2.0

检测 Kerberos 日志中的黄金票据攻击

适用场景

  • KRBTGT 账户哈希可能通过 DCSync 或 NTDS.dit 提取而遭到入侵时
  • 狩猎用于持久域访问的伪造 Kerberos 票据时
  • 事件响应揭示域级别的凭据盗取后
  • 调查不可能的登录模式(用户同时从多地登录)时
  • 泄露后评估以确定是否正在使用黄金票据时

前置条件

  • 域控制器上的 Windows 安全事件 ID 4768、4769、4771
  • Kerberos 策略配置知识(最大票据生命周期、加密类型)
  • 启用 Kerberos 服务票据操作的域控制器审计策略
  • SIEM 能够跨多个域控制器关联 Kerberos 事件

工作流程

  1. 监控 TGT 请求(事件 4768):跟踪 Kerberos 认证服务请求。黄金票据(Golden Ticket)完全绕过 AS-REQ/AS-REP 交换,因此在 4769 之前缺少 4768 是可疑的。
  2. 检测加密类型异常:黄金票据通常使用 RC4(0x17)加密。若您的域强制使用 AES(0x12),任何 RC4 TGT 都是危险信号。监控事件 4769 中的 TicketEncryptionType。
  3. 检查票据生命周期异常:默认 Kerberos TGT 生命周期为 10 小时,可续期 7 天。黄金票据可伪造为 10 年的生命周期。检测超过策略的票据持续时间。
  4. 狩猎不存在的 SID:黄金票据可包含任意 SID(包括不存在的账户或组)。将 TGS 请求与已知 AD SID 清单进行关联。
  5. 检测无先前 TGT 的 TGS:当来自相同 IP/账户的服务票据(4769)出现而没有先前的 TGT 请求(4768)时,这可能表明存在预先创建的黄金票据。
  6. 监控 KRBTGT 密码年龄:跟踪 KRBTGT 上次重置时间。若 KRBTGT 哈希自已知入侵后未更改,来自该时期的黄金票据仍然有效。
  7. 验证 PAC 签名:通过 KB5008380+ 和 PAC 验证执行,域控制器会拒绝伪造的 PAC。监控指示 PAC 验证错误的 Kerberos 失败。

检测查询

Splunk——Kerberos TGS 中的 RC4 加密

index=wineventlog EventCode=4769
| where TicketEncryptionType="0x17"
| where ServiceName!="krbtgt"
| stats count by TargetUserName ServiceName IpAddress TicketEncryptionType Computer
| where count > 5
| sort -count

Splunk——无先前 TGT 的 TGS

index=wineventlog (EventCode=4768 OR EventCode=4769)
| stats earliest(_time) as first_tgt by TargetUserName IpAddress EventCode
| eventstats earliest(eval(if(EventCode=4768, first_tgt, null()))) as tgt_time by TargetUserName IpAddress
| where EventCode=4769 AND (isnull(tgt_time) OR first_tgt < tgt_time)
| table TargetUserName IpAddress first_tgt tgt_time

KQL——黄金票据指标

SecurityEvent
| where EventID == 4769
| where TicketEncryptionType == "0x17"
| where ServiceName != "krbtgt"
| summarize Count=count() by TargetUserName, IpAddress, ServiceName
| where Count > 5

常见场景

  1. DCSync 后黄金票据:提取 KRBTGT 哈希后,攻击者伪造包含域管理员 SID 的 TGT,在 KRBTGT 被轮换两次前有效期可达数月。
  2. RC4 降级:仅 AES 环境中伪造的 RC4 加密黄金票据,可通过加密类型不匹配检测。
  3. 跨域黄金票据:伪造的跨域 TGT 用于在 AD 域/林之间横向移动。
  4. 修复后持久化:因 KRBTGT 仅被轮换一次(当前和之前的哈希均有效),黄金票据在密码重置后依然存活。

输出格式

Hunt ID: TH-GOLDEN-[DATE]-[SEQ]
Suspected Account: [使用伪造票据的账户]
Source IP: [客户端 IP]
Target Service: [访问的 SPN]
Encryption Type: [RC4/AES128/AES256]
Anomaly: [无先前 TGT/AES 环境中使用 RC4/超出生命周期]
KRBTGT Last Reset: [日期]
Risk Level: [Critical]
Skills enregistrées