news 2026/9/13 15:48:57

Anthropic Cybersecurity Skills 实战指南:基于 Windows 事件 4768/4769/4771 检测 Kerberos Pass-the-Ticket 攻击

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Anthropic Cybersecurity Skills 实战指南:基于 Windows 事件 4768/4769/4771 检测 Kerberos Pass-the-Ticket 攻击

Anthropic Cybersecurity Skills 实战指南:基于 Windows 事件 4768/4769/4771 检测 Kerberos Pass-the-Ticket 攻击

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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-pass-the-ticket-attacks 技能文档的完整技术展开。文章以该技能文档为骨架,结合其 API 参考 与 检测脚本 agent.py 的源码实现,系统讲解如何通过 Windows Security Event ID 4768(TGT 请求)、4769(TGS 请求)与 4771(预认证失败)的异常模式识别 Kerberos 票据窃取与重放行为。读完本文,你将掌握 PtT 攻击的原理与杀伤链、域控审计日志的开启方法、Splunk 与 Elastic SIEM 的完整检测查询、基于标准差的异常基线建模,以及用 Python 对离线事件日志做批量研判的实操方案,从而直接落地为 SOC 可运行的检测规则与威胁狩猎流程。

背景:为什么 Pass-the-Ticket 难以被传统手段发现

Pass-the-Ticket(PtT)是 MITRE ATT&CK 中编号T1550.003(Use Alternate Authentication Material: Pass the Ticket)的横向移动技术。攻击者从一台已失陷主机的内存(LSASS)中窃取 Kerberos 票据(TGT 或 TGS),然后在另一台主机上重放该票据完成认证——整个过程不需要也不依赖用户密码,因此传统的密码破解检测、失败登录告警完全失效。

其杀伤链通常如下(可参考同仓库的对抗侧技能 conducting-pass-the-ticket-attack 得到印证):

  1. 窃取票据:在失陷主机上用 Mimikatzsekurlsa::tickets /export或 Rubeusdump导出票据;
  2. 转移票据:以.kirbi(Mimikatz)或 base64(Rubeus)格式带到目标主机;
  3. 注入重放:在目标会话中执行kerberos::ptt注入票据,随后访问远程资源完成横向移动。

由于 Windows 域环境默认信任 Kerberos 票据本身,被重放的票据在认证层面"合法有效",这就迫使检测方必须依赖行为与协议层面的异常信号。本技能给出的核心思路是:将 4768 / 4769 / 4771 三类事件作为主数据源,围绕以下三类异常做关联分析:

  • RC4 加密降级:现代 Windows 环境默认使用 AES(0x12),出现 RC4-HMAC(0x17)的票据异常值往往意味着降级攻击;
  • 跨主机票据重用:同一用户在同一时间窗口内从多个来源 IP 请求服务票据;
  • TGS 请求量异常:单用户/单主机的服务票据请求量显著偏离自身基线。

前置条件:让"检测"有据可依

要复现本文全部检测能力,环境需满足:

  • Windows 域控制器:开启高级审核策略,至少启用 "Audit Kerberos Authentication Service"(审计 Kerberos 认证服务)与 "Audit Kerberos Service Ticket Operations"(审计 Kerberos 服务票证操作)两类子类别,否则不会产生 4768/4769 事件;
  • SIEM 平台:Splunk 或 Elastic SIEM 正在采集 Windows Security 事件日志;
  • 端点补充遥测:终端部署 Sysmon,为进程链、网络连接提供佐证(例如识别发起票据重放的进程与工具特征);
  • Python 环境:Python 3.8+ 且安装requests库(用于离线日志研判脚本运行)。

事件源剖析:三个核心 Event ID 的关键字段

对 PtT 检测而言,日志字段比事件本身更重要。本技能 API 参考文档对三个事件的核心字段做了完整定义,这是所有检测规则的地基。

Event ID 4768 —— TGT 请求

字段含义
TargetUserName请求 TGT 的账户
TargetDomainName账户所属域
IpAddress请求来源 IP
TicketEncryptionType0x12(AES256)、0x17(RC4-HMAC)
PreAuthType15(PA-ENC-TIMESTAMP)

该事件的异常信号包括:TGT 请求来源 IP 与票据使用者后续登录 IP 不一致、使用旧式加密类型、非工作时间的高频请求。

Event ID 4769 —— TGS 请求

字段含义
TargetUserName使用票据的账户
ServiceName所请求服务的 SPN
IpAddress来源 IP
TicketEncryptionType0x17表示 RC4 降级
TicketOptionsKerberos 票据标志

这是PtT 检测最重要的数据源:服务票据的每一次使用都会产生该事件,跨主机重用、Kerberoasting 的 SPN 枚举、加密降级都能在此体现。

Event ID 4771 —— Kerberos 预认证失败

字段含义
TargetUserName认证失败的账户
IpAddress失败来源
Status0x18(密码错误)、0x12(账户过期)

该事件服务于**密码喷洒(T1110.003)**类前置攻击的关联检测——攻击者往往先用喷洒拿到初始凭据,再通过 PtT 横向扩散,因此 4771 的失败高峰是完整攻击链的前兆。

从源码实现看,agent.py 的 parse_evtx_xml 精确提取了上述全部字段(TargetUserNameTargetDomainNameIpAddressServiceNameTicketEncryptionTypeStatusPreAuthType),并只保留 4768/4769/4771 三个事件——这与检测规则的数据面完全一致,可作为字段提取的权威参照。

加密类型速查:判断"降级"的依据

结合同仓库 conducting-pass-the-ticket-attack 的 API 参考 与本文档,Kerberos 加密类型常量对照如下:

算法安全含义
0x17RC4-HMAC降级攻击指示器,也是 Kerberoasting / 黄金票据的常见特征
0x12AES-256现代环境的预期值
0x11AES-128可接受的加密

值得注意的细节:在脚本 detect_rc4_downgrade 中,同时匹配了"0x17""23"两种写法——因为不同导出工具对加密类型字段的序列化格式可能不同(十六进制字符串或十进制整数),实战中构建规则时应兼容两种表示。

七步检测实施流程

本技能文档给出的检测落地流程分为七个步骤,逐层递进:

  1. 通过组策略在域控制器上启用 Kerberos 审计日志(对应上文前置条件中的两类审核子类别);
  2. 将 Event ID 4768、4769、4771 转发至 SIEM 平台(Windows 事件转发或通用日志采集器);
  3. 部署 RC4 加密降级检测规则TicketEncryptionType 0x17);
  4. 创建票据跨多来源 IP 重用的关联规则
  5. 建立每用户/每主机的 TGS 请求量正常基线
  6. 对票据请求模式的标准差偏离进行告警
  7. 结合 Active Directory 上下文对标记事件开展调查与富化(账户角色、所属组、近期登录、是否属于敏感账户等)。

其中第 5、6 步的"基线 + 标准差"设计,直接对应下方 Splunk 查询中的eventstats avg / stdev统计逻辑,体现了"按用户个性化基线"而非"全局阈值"的检测思路,可显著降低误报。

Splunk SPL 检测查询实战

API 参考文档提供了四类可直接投放的 SPL 查询,generate_splunk_queries 中亦有对应的程序化版本(其中preauth_failures查询还额外按IpAddress聚合,便于定位喷洒来源)。

1. RC4 加密降级检测

index=wineventlog sourcetype="WinEventLog:Security" EventCode=4769 TicketEncryptionType=0x17 | stats count by TargetUserName, IpAddress, ServiceName | where count > 3

单个 RC4 请求可能是历史遗留应用所致,因此先用stats count按三元组聚合,再以count > 3过滤出高频降级——脚本默认逻辑与之对应:detect_rc4_downgrade对每个命中事件单独标记,而 SIEM 规则通过聚合抑制低频噪声。

2. 跨主机票据重用检测

index=wineventlog EventCode=4769 | stats dc(IpAddress) as ip_count, values(IpAddress) as ips by TargetUserName | where ip_count > 1 | sort -ip_count

dc()计算每个用户出现过的不同 IP 数量ip_count > 1即命中"同一用户从多个来源使用票据"。脚本侧 detect_cross_host_ticket_reuse 采用同一逻辑(同一用户出现 ≥2 个来源 IP 即标记为critical严重度),并会附带请求数与时间戳样本,便于快速时间线还原。

3. TGS 请求量异常(基于标准差)

index=wineventlog EventCode=4769 | bin _time span=1h | stats count by TargetUserName, _time | eventstats avg(count) as avg_count, stdev(count) as sd by TargetUserName | where count > avg_count + (3 * sd)

先按小时分桶计算每用户请求数,再用eventstats计算该用户的历史均值与标准差,最后用3σ 准则(超过均值加三倍标准差)判定异常。这一查询体现的是"个体化基线"思想:对常年高频请求的服务账户与低频普通用户采用不同标尺。

脚本的 detect_anomalous_tgs_volume 提供了无历史数据时的简化替代——按绝对阈值(默认 50,可由--tgs-threshold调整)统计全量 TGS 请求数,适合无长窗口历史基线的小环境。

Elastic / KQL 检测查询实战

RC4 降级(KQL 一行式)

event.code: "4769" AND winlog.event_data.TicketEncryptionType: "0x17"

适用于 Elastic Security 的 KQL 搜索栏或规则查询语言,字段路径遵循 Winlogbeat 默认映射。

跨主机重用(Elasticsearch 聚合)

POST security-*/_search { "size": 0, "query": { "term": { "event.code": "4769" } }, "aggs": { "by_user": { "terms": { "field": "winlog.event_data.TargetUserName" }, "aggs": { "unique_ips": { "cardinality": { "field": "source.ip" } } } } } }

利用cardinality基数聚合近似统计每用户的去重 IP 数,效果等价于 Splunk 的dc(IpAddress)size: 0只返回聚合结果,不返回明细文档,查询开销更小。若需精确值,可改用terms嵌套或开启precision_threshold调优基数估计精度。

离线研判:用 agent.py 自动化 PtT 检测

当需要批量分析导出的安全日志(例如无 SIEM 的小环境、取证场景或规则验证)时,仓库提供了完整的 Python 实现 scripts/agent.py,其输入为 Windows 导出的 Security 事件日志 XML(wevtutil eplwevtutil export-log产物)。

命令行用法

# 解析导出的安全事件日志 XML 并检测 PtT 指标 python agent.py --evtx-xml security_events.xml --output report.json # 直接打印内置的 Splunk 检测查询 python agent.py --show-splunk # 自定义阈值 python agent.py --evtx-xml events.xml --tgs-threshold 30 --preauth-threshold 5

参数说明

参数默认值作用
--evtx-xml导出的安全事件日志 XML 路径(必需,除非使用--show-splunk
--tgs-threshold50TGS 请求量告警阈值
--preauth-threshold10预认证失败告警阈值
--outputptt_detection_report.json输出报告路径
--show-splunkFalse仅打印内置 SPL 查询,不执行分析

四大检测器与输出结构

脚本内聚了四类检测逻辑,与上文 SIEM 查询一一对应:

  • RC4 加密降级detect_rc4_downgrade):逐事件匹配0x17/23,严重度high,对应 SPL 查询一;
  • 跨主机票据重用detect_cross_host_ticket_reuse):同用户 ≥2 个来源 IP 即告警,严重度critical,对应 SPL 查询二;
  • 异常 TGS 请求量detect_anomalous_tgs_volume):按阈值统计,严重度high,对应 SPL 查询三;
  • 过度预认证失败detect_preauth_failures):关联 T1110.003 密码喷洒,严重度medium,补充 SPL 中的preauth_failures查询。

运行后输出 JSON 报告,包含:

{ "analysis_time": "...Z", "total_kerberos_events": 1234, "detections": { "rc4_downgrade": [...], "cross_host_ticket_reuse": [...], "anomalous_tgs_volume": [...], "preauth_failures": [...] }, "total_alerts": 5, "mitre_techniques": ["T1550.003", "T1558.003", "T1110.003"], "splunk_queries": {...} }

每条告警包含mitre_techniqueseveritydescription及原始字段快照,可直接作为事件工单或取证报告的证据附件。值得强调的是,报告顶层会带上splunk_queries——即使在没有 SIEM 的环境中完成初步研判,也能同时输出可供生产环境复用的查询规则,实现"离线验证 → 线上部署"的无缝衔接。

MITRE ATT&CK 技术映射

本技能文档将检测能力显式映射到 ATT&CK,便于在红蓝对抗、覆盖度审计中直接引用:

技术ID检测信号
Use Alternate Authentication Material: Pass the TicketT1550.003RC4 降级、跨主机票据重用
Steal or Forge Kerberos Tickets: KerberoastingT1558.003面向 SPN 的高 TGS 请求量
Brute Force: Password SprayingT1110.003预认证失败尖峰

在 ATTACK_COVERAGE.md 的仓库级覆盖统计中,T1558.003(Kerberoasting)是全仓被引用最多的技术之一(14 个技能引用),且 T1550.003 的兄弟技术 T1550.002(Pass the Hash)在 detecting-pass-the-hash-attacks 中有平行实现——两者结合可覆盖"票据偷窃"与"哈希重用"两条主流的凭据横向移动路径。同时,本技能在仓库元数据中还关联了NIST CSF 2.0DE.CM-01DE.AE-02DE.AE-06ID.RA-05(覆盖持续监控、异常事件分析、攻击相关性)以及D3FEND的 Token Binding、Application Protocol Command Analysis 等对抗技术,可作为多框架合规映射的输入。

误报抑制与调查收尾建议

将上述规则投入生产前,建议按以下思路做调优(属于技能文档第 5、6 步的落地延伸):

  • RC4 降级:先与资产清单交叉比对,排除遗留应用、旧式服务账户的合法 RC4 使用;将规则限定到非白名单主机,或要求同用户同时满足"多 IP"条件再升级告警;
  • 跨主机重用:虚拟桌面/会话主机环境下,同一用户从多个跳板 IP 访问服务是常态,应结合ServiceName白名单(如仅对敏感服务如域控、管理接口告警)及会话时长做上下文判断;
  • TGS 异常:3σ 规则要求足够的基线窗口(建议 ≥14 天),新账户与系统账户($结尾)建议单独建模或排除;
  • 终局确认:对命中用户执行 AD 富化(所属敏感组、最近密码修改时间、登录历史),配合 Sysmon 进程链确认是否存在 Mimikatz/Rubeus 类工具的注入特征,最终以 SKILL.md 定义的 JSON 报告格式输出结论,并附 MITRE 技术编号供工单与汇报引用。

总结

Pass-the-Ticket 攻击的检测核心在于对 Kerberos 事件语义的深刻理解与多维度关联:以 4768/4769/4771 三类事件为数据源,用 RC4 加密降级、跨主机票据重用、TGS 请求量异常三个信号做交叉印证,配合按用户的个性化基线与标准差阈值,即可在票据本身"合法"的前提下捕获攻击者的行为痕迹。本技能文档及其配套的 API 参考与 agent.py 源码,提供了一条从日志字段、SIEM 查询到离线批量研判的完整检测落地链路,可直接复制进 Splunk/Elastic 规则库或用于 SOC 覆盖度验证与紫队演练。

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 15:48:05

Win11搭建IIS运行ASP药店管理系统:配置步骤与答辩要点

简介:一份面向ASP课程设计或毕业设计的药店管理系统完整项目包,适合计算机相关专业学生参考并二次开发。系统采用ASP数据库的B/S架构,覆盖商品管理、库存控制、销售记录、客户管理与管理员权限等核心业务,能帮助理解动态网页与数据…

作者头像 李华
网站建设 2026/9/13 15:46:10

YOLOv8-v12农业AI落地:SpringBoot模型热插拔与端侧千问+DeepSeek实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 15:45:01

国产高端蓝牙音箱如何打破价格桎梏,以声学实力挺进国际市场

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 15:44:46

基于Django的旅游信息管理系统:从源码到部署的完整实战

简介:基于Django的旅游信息管理系统源码是一份面向毕业设计及Python Web初学者的完整项目。系统覆盖用户注册登录与权限管理、景点信息维护、线路规划、预订服务、评论评分及后台管理等典型模块,贯穿Django的MVT架构、ORM数据库操作、表单处理与安全防护…

作者头像 李华
网站建设 2026/9/13 15:44:36

高职大数据与财务管理专业的数据分析教学实践

1. 为什么这个专业必须直面数据分析1.1 先看清行业变化:财务管理正在被数据重构这几年我跟不少高职院校的老师交流,大家普遍反映一个问题:大数据与财务管理专业每年招进来几百号学生,但很多学校实际教学还是老会计那套——基础会计…

作者头像 李华