基于 Windows 安全事件日志检测 Kerberos Golden Ticket 伪造Anthropic-Cybersecurity-Skills 实战指南【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本指南基于 Anthropic-Cybersecurity-Skills 仓库中的detecting-golden-ticket-forgery技能SKILL.md系统讲解如何通过分析 Windows Event ID 4768/4769 检测 Golden Ticket黄金票据伪造包括 RC40x17加密降级、孤立 TGS 请求、超长票据生命周期与 krbtgt 账户异常四类核心指标并给出可落地的 Splunk SPL、Elastic KQL 查询与离线 Python 分析工具agent.py。读完本文你将掌握一条从日志采集、检测规则编写到 JSON 告警输出的完整检测流水线。Golden Ticket 攻击原理与检测思路Golden Ticket 攻击MITRE ATTCK T1558.001的本质是攻击者窃取域内krbtgt账户的 NTLM 哈希后离线伪造一张 Ticket Granting TicketTGT。由于 krbtgt 哈希是域内所有票据签发的根凭据伪造的 TGT 可以让攻击者伪装成任意用户甚至不存在的用户、访问域内任何服务且票据生命周期可长达数十年。从检测视角看Golden Ticket 并非无法检测而是在行为与属性上存在多处可被日志捕捉的偏差。本技能围绕四条检测线索展开RC4 加密降级在强制 AES 加密策略的现代域环境中合法 TGS 请求几乎总是使用 AES2560x12或 AES1280x11。而 Mimikatz 等工具伪造的票据默认采用 RC4-HMAC0x17因为 RC4 不要求校验 krbtgt 哈希对应的 Kerberos 加密类型因此0x17在 AES 环境中的出现是强指示。孤立 TGS 请求正常 TGS 请求必然由一次成功的 AS-REQTGT 获取前置。若某用户存在 4769 事件却无对应的 4768 事件说明其持有的 TGT 并非由域控签发而是被凭空注入——这正是伪造票据的特征。异常票据生命周期域策略MaxTicketAge默认 10 小时而伪造 TGT 的生命周期常被设置为数十年。krbtgt 服务异常合法场景下几乎不会出现直接向krbtgt服务发起 TGS 请求的事件此类事件高度可疑。该技能在仓库中被映射为 MITRE ATTCK T1558.001在 attack-navigator-layer.json 中记录了技能关联元数据并关联 NIST CSFDE.CM-01、DE.AE-02、DE.AE-06、ID.RA-05与 D3FEND 响应技术可用于安全覆盖验证。前置条件与日志基础检测 Golden Ticket 需要以下环境就绪启用 Kerberos 审计日志的 Windows 域控制器DCSplunk 或 Elastic SIEM 已接入 Windows Security 事件日志Python 3.8 环境用于离线事件日志分析运行 agent.py明确当前域的 Kerberos 加密策略AES-only 还是兼容 RC4这是判定RC4 降级是否成立的前提。核心事件字段速查检测依赖两类 Windows 安全事件Event ID 4768AS-REQ请求 TGT与 Event ID 4769TGS-REQ请求服务票据。完整字段说明见 api-reference.md关键字段整理如下Event ID 4768 — TGT Requested (AS-REQ)字段说明TargetUserName请求 TGT 的账户TargetDomainName请求账户所在域IpAddress来源 IPTicketEncryptionType0x12AES256、0x11AES128、0x17RC4PreAuthType15 PA-ENC-TIMESTAMP正常预认证Event ID 4769 — TGS Requested (TGS-REQ)字段说明TargetUserName使用票据的账户ServiceName目标服务的 SPNIpAddress请求来源 IPTicketEncryptionType0x17 RC4Golden Ticket 指示TicketOptionsKerberos 票据标志LogonGuid可与 Event 4624 关联检测指标判定基准指标正常表现Golden Ticket 表现TicketEncryptionType0x12AES2560x17RC4-HMACTGT 生命周期≤ 10 小时常为 10 年以上TGS 与 TGT 对应关系总是由 4768 前置出现无 4768 的孤立 4769域字段与请求域一致可能为空或错误Splunk SPL 检测查询1. RC4 TGS 检测Golden Ticket 核心规则在 AES 强制环境中任何TicketEncryptionType0x17的 TGS 请求都值得告警。对同一用户/来源聚合统计可进一步压缩误报indexwineventlog sourcetypeWinEventLog:Security EventCode4769 TicketEncryptionType0x17 ServiceName!krbtgt | stats count by TargetUserName, IpAddress, ServiceName | where count 3 | sort -count2. 孤立 TGS无前置 TGT通过 left join 将 4769 与 4768 按用户关联找出没有对应 TGT 请求记录的 TGS 请求indexwineventlog EventCode4769 | join typeleft TargetUserName [search indexwineventlog EventCode4768 | dedup TargetUserName | fields TargetUserName] | where isnull(TargetUserName) | stats count by TargetUserName, IpAddress3. krbtgt 服务异常直接列出所有指向 krbtgt 服务的 TGS 请求供分析师快速核查indexwineventlog EventCode4769 ServiceNamekrbtgt* | table _time, TargetUserName, IpAddress, TicketEncryptionTypeElastic KQL 检测查询在 Elastic 平台Elastic SIEM上使用 KQL 语法实现 RC4 降级检测event.code: 4769 AND winlog.event_data.TicketEncryptionType: 0x17 AND NOT winlog.event_data.ServiceName: krbtgt离线事件日志分析agent.py对于未接入 SIEM 或需要批量取证分析的场景agent.py 提供了纯 Python 的离线检测能力无需依赖外部库即可解析域控导出的安全事件 XML。使用方法python agent.py --evtx-xml security_events.xml --output golden_ticket_report.json python agent.py --show-splunk python agent.py --evtx-xml events.xml --max-ticket-hours 8参数说明参数默认值说明--evtx-xml无导出的 Security 事件日志 XML 路径必需或使用--show-splunk--max-ticket-hours10域 MaxTicketAge小时用于生命周期异常判定--outputgolden_ticket_report.jsonJSON 报告输出路径--show-splunkFalse仅打印内嵌的 Splunk SPL 查询--show-splunk模式可直接输出与上文 SPL 对应的三类查询方便将离线分析结论转换为线上 SIEM 规则。源码实现与四类检测逻辑agent.py 的检测流程与 SKILL 步骤一一对应从源码结构看各检测函数职责如下事件解析parse_security_events 使用xml.etree.ElementTree解析标准 Windows 事件 XML 命名空间仅保留 4768/4769 事件并将EventData中的具名字段平铺为字典供后续检测直接读取。RC4 降级检测detect_rc4_in_aes_environment 匹配 4769 事件中TicketEncryptionType为0x17或十进制23的请求输出 severitycritical 的告警标注 MITRE 技术编号 T1558.001。孤立 TGS 检测detect_orphaned_tgs 先收集所有 4768 事件中的用户域集合再找出不在集合内的 4769 请求并按用户聚合其目标服务、来源 IP 与首见时间。异常生命周期检测detect_abnormal_ticket_lifetime 计算同一用户的两次 TGT 请求时间差若超过max_lifetime_hours的两倍默认 20 小时则判定异常——合法票据到期续期不可能出现如此长的间隔。krbtgt 服务异常检测detect_krbtgt_service_anomaly 捕获所有ServiceName以krbtgt开头的 4769 事件。输出报告main 会将四类检测结果汇总为 JSON 报告并写入--output指定文件结构包含analysis_time/total_events分析时间与解析到的 Kerberos 事件总数detections按rc4_encryption_downgrade、orphaned_tgs_requests、abnormal_ticket_lifetime、krbtgt_service_anomaly四类组织的告警列表total_alerts告警总数mitre_techniques关联的 MITRE ATTCK 技术T1558.001splunk_queries内嵌的 SPL 查询便于将结果同步到线上 SIEM。每条告警均包含detection、mitre_technique、severity、description及对应的用户、来源 IP、服务等上下文字段可直接用于 SOC 告警工单。检测流程实施步骤审计域 Kerberos 加密策略确认是否强制 AES建立 AES-only 基线将 Event ID 4768 与 4769 转发至 SIEM 平台部署 RC40x17TGS 检测规则在 AES 强制环境中生效识别无对应 TGT 请求的 TGS 请求伪造票据指示对超过域 MaxTicketAge 策略的票据生命周期进行告警监控 krbtgt 账户密码年龄与最近重置日期账户异常的重要信号结合主机与用户上下文对发现进行关联形成风险评分。结果解读与风险处置检测的最终产出是包含 Golden Ticket 指标的 JSON 报告RC4 降级、孤立 TGS 请求、异常票据生命周期以及风险评分后的告警均标注 MITRE ATTCK 技术映射。告警出现后建议按以下优先级处置确认域内是否真的强制 AES若域仍兼容 RC4需结合其他指标如孤立 TGS、异常生命周期避免误报对命中用户立即重置凭据并强制重新认证立即执行 krbtgt 密码重置流程连续两次重置并同步到所有 DC因为 Golden Ticket 的根本缓解手段是更换 krbtgt 密钥使所有已签发的伪造票据失效结合 coverage-summary.md 等映射文件检查现有检测覆盖将本技能规则纳入持续监控基线。需要注意的是本技能的检测规则以域强制 AES 加密为适用前提在仍允许 RC4 的兼容环境中RC4 指标需要与孤立 TGS、生命周期异常等指标联合判定才具备足够的告警价值。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
