Anthropic-Cybersecurity-Skills 实战指南:Outlook PST 邮件取证的完整证据提取工作流 Anthropic-Cybersecurity-Skills 实战指南Outlook PST 邮件取证的完整证据提取工作流【免费下载链接】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导读本文围绕analyzing-outlook-pst-for-email-forensics技能中的Email Evidence Extraction邮件证据提取工作流系统讲解从证据获取、哈希固定、pffexport 导出、邮件头路由解析、附件提取与哈希到关键词搜索、通信时间线重建与证据链文档化的完整流程。结合本仓库中的 SKILL.md、api-reference.md、standards.md 与 scripts/agent.py 源码实现读完本文你将掌握一套可直接复制的 PST/OST 取证操作手册可用于邮件安全事件调查、电子发现e-discovery与应急响应中重构通信模式、追溯邮件路由。工作流总览Email Evidence Extractionworkflows.md定义了邮件取证的标准流程骨架八个环节环环相扣前一个环节的输出是后一个环节的输入Acquire PST/OST files from evidence | Hash original files (SHA-256) | Export with pffexport (items recovered) | Parse email headers for routing | Extract and hash attachments | Search for keywords across messages | Build communication timeline | Document findings with chain of custody该技能在仓库中被映射到 MITRE ATTCKT1114Email Collection见 mappings/mitre-attack/coverage-summary.md同时在 NIST CSF 2.0 中对应 RS.AN-03事件分析与 DE.AE-02异常与事件分析在 MITRE AI RMF 中对应 MANAGE-2.4、MEASURE-3.1说明这一流程既服务于攻击溯源取证也服务于防御侧的分析验证。第 1 步从证据中获取 PST/OST 文件PST/OST 是什么Microsoft Outlook 的 PSTPersonal Storage Table与 OSTOffline Storage Table文件是数字取证中的关键证据来源。PST 以基于 MAPIMessaging Application Programming Interface属性系统的专有二进制格式存储邮件、日历事件、联系人、任务与便笺。取证分析 PST 能够实现从Recoverable Items可恢复项目文件夹恢复已删除邮件提取邮件头以追溯消息路由分析附件中的恶意软件或外泄数据重建通信模式与时间线。格式层面需注意现代 PST 采用Unicode 格式以 4KB 页面存储最大可达 50GB而旧版 ANSI 格式上限为 2GB。这直接影响后续导出工具的参数选择与存储规划。常见取证路径取证人员应优先从以下标准位置获取 PST/OST来源路径Outlook 2016 默认%USERPROFILE%\Documents\Outlook Files\*.pstOutlook 旧版%LOCALAPPDATA%\Microsoft\Outlook\*.pstOST 缓存%LOCALAPPDATA%\Microsoft\Outlook\*.ost归档%USERPROFILE%\Documents\Outlook Files\archive.pst注意OST 是 Exchange 账户的离线缓存其内部结构与 PST 一致可用同一套 libpff 工具链解析。前置工具与环境libpff/pffexport开源 PST 解析器首选Python 3.8安装pypff或libratom库商业工具可选MailXaminer、Forensic Email Collector、SysTools PST ForensicsMicrosoft Outlook可选用于原生访问充足的磁盘空间存放导出内容第 2 步对原始文件进行 SHA-256 哈希固定证据固定是取证流程中不可跳过的第一步。在开始任何解析之前必须对原始 PST/OST 文件计算 SHA-256 哈希以证明后续分析所基于的数据与原始证据一致。仓库中的 scripts/agent.py 给出了可复用的分块哈希实现def compute_hash(filepath): sha256 hashlib.sha256() with open(filepath, rb) as f: for chunk in iter(lambda: f.read(65536), b): sha256.update(chunk) return sha256.hexdigest()该实现采用 64KB 分块读取避免一次性将大文件载入内存——对于动辄数 GB 的 PST 文件尤为重要。取证建议在证据获取现场、写入只读介质之后立即计算哈希同时记录文件大小、获取时间、获取人、介质序列号等元数据分析全程在**写保护write-blocker**的副本上进行原始镜像只读将哈希值记入后续证据链文档与最终报告中的结果相互印证。第 3 步使用 pffexport 导出邮件与已恢复项目pffexport 核心命令libpff 套件中的pffexport是命令行导出主力其常用参数如下# 导出 PST 中的所有项目 pffexport -m all evidence.pst -t exported_pst # 仅导出邮件消息 pffexport -m items evidence.pst -t exported_emails # 导出已恢复/已删除项目Recoverable Items pffexport -m recovered evidence.pst -t recovered_items # 获取 PST 文件信息结构、格式、统计 pffinfo evidence.pst-m参数控制导出的消息类型all全部、items仅消息、recovered仅已恢复项目-t指定导出目标目录。其中-m recovered是恢复已删除邮件的关键——Outlook 的 Recoverable Items垃圾站文件夹需要专门提取常规导出不会覆盖。配合pffinfo可以先验证文件是否损坏、确认是 Unicode 还是 ANSI 格式、查看各文件夹的统计信息再决定导出策略。pffexport 其他常用形态api-reference.md 补充了更多 CLI 用法pffexport mailbox.pst # 导出全部到当前目录 pffexport -m all mailbox.pst # 导出所有消息类型 pffexport -t target_dir mailbox.pst # 导出到指定目录 pffexport -f text mailbox.pst # 以文本格式导出导出后的典型目录结构为按文件夹层级组织的消息与附件Export/ Inbox/ Message001/ Message.txt Attachment001.pdf Sent Items/ Deleted Items/备选工具readpstlibpst除 libpff 外readpstlibpst 套件也是常用开源方案适合并行与递归场景readpst -o output_dir mailbox.pst # 提取到指定目录 readpst -e mailbox.pst # 仅提取附件 readpst -r mailbox.pst # 递归提取 readpst -j 4 mailbox.pst # 4 线程并行 readpst -S mailbox.pst # 每条消息单独文件PST 文件内部结构理解导出工具的工作对象有助于判断解析结果。PST 由三个逻辑层组成见 api-reference.md层名称说明NDB 层Node Database原始数据存储负责页面与节点管理LTP 层Lists/Tables/Properties消息属性、列表与表的组织层Messaging 层Folders, messages, attachments用户可见的文件夹、消息、附件结构第 4 步解析邮件头以追溯路由邮件头是路由分析的核心证据。pffexport 导出后每条消息的Message.txt中保留完整的 SMTP 传输头在 Python 侧pypff 通过message.transport_headers属性暴露原始头。仓库 SKILL.md 中的分析器使用标准库email.message_from_string解析头部字段parsed email.message_from_string(headers) msg_data[from_header] parsed.get(From, ) msg_data[to_header] parsed.get(To, ) msg_data[date_header] parsed.get(Date, ) msg_data[message_id] parsed.get(Message-ID, ) msg_data[x_originating_ip] parsed.get(X-Originating-IP, ) msg_data[received_headers] parsed.get_all(Received, [])关键邮件头的取证价值头取证价值Received消息路由链自下而上阅读X-Originating-IP发送者的真实 IP 地址Message-ID用于关联的唯一标识符Date发送时间戳Return-Path退信地址可能与 From 不同DKIM-Signature域身份认证签名Authentication-ResultsSPF、DKIM、DMARC 验证结果X-Mailer所使用的邮件客户端实际案例中见 SKILL.md 的 Example Output一封钓鱼邮件it-supportc0rporate-help.com的X-Originating-IP指向203.0.113.55SPF FAIL、DKIM NONE、DMARC FAIL这些字段组合直接暴露了伪造发件人与真实来源是判定初始入侵向量的关键证据。第 5 步提取并哈希附件附件可能携带恶意载荷或外泄数据是取证分析的另一重点。pypff 的附件 API 为for i in range(msg.number_of_attachments): att msg.get_attachment(i) print(fName: {att.name}, Size: {att.size}) data att.read_buffer(att.size)仓库 SKILL.md 中的save_attachments方法给出了带大小限制与文件名清洗的完整导出实现def save_attachments(self, max_size_mb: int 100): Export attachments to disk for analysis. att_dir os.path.join(self.output_dir, attachments) os.makedirs(att_dir, exist_okTrue) root self.pst.get_root_folder() self._save_attachments_recursive(root, att_dir, max_size_mb)递归逻辑中对每个附件做了三层防护att.size max_size_mb * 1024 * 1024限制超大文件、safe_name清洗非法文件名字符、try/except跳过无法完整读取的损坏附件保证海量邮件场景下导出过程不中断。附件提取后应立即计算 SHA-256复用第 2 步的compute_hash并与 VirusTotal 等威胁情报平台比对。SKILL.md 的示例输出中Password_Reset_Form.xlsm的哈希被用于后续关联加密的archive_part1.7z等附件则成为数据外泄exfiltration的关键指标。可疑附件启发式检测仓库 scripts/agent.py 提供了自动化可疑附件检测的参考实现对.exe .scr .bat .cmd .ps1 .vbs .js .hta .lnk .iso .img等高风险扩展名标记HIGH严重度并对urgent、password expired、verify your account等紧急性措辞标记MEDIUM严重度的钓鱼指标——这套逻辑可以直接用于大规模邮件批量研判。第 6 步跨消息关键词搜索关键词搜索是定位目标邮件的快速通道。在 pffexport 导出的文本文件上可执行 grep 类工具在 Python 分析器中则对subject与body字段进行匹配。SKILL.md 的示例报告展示了关键词命中统计的价值--- Keyword Hits --- confidential: 45 emails password: 23 emails transfer: 12 emails resign: 3 emails delete evidence: 1 email (Email #9200, 2024-01-17 22:30:00 UTC)搜索建议结合案件背景设定词典如confidential、password、transfer、客户名单、离职相关词汇对命中结果按文件夹、时间、收发双方聚合形成可疑邮件候选集注意区分大小写与编码问题Unicode PST 中的非 ASCII 内容需按原编码检索把关键词搜索与第 4 步的路由分析、第 5 步的附件哈希关联互相印证。第 7 步构建通信时间线将解析出的creation_time、delivery_time、modification_time等时间戳汇总排序即可重建通信时间线。仓库分析器在extract_message中采集了三种时间属性creation_time: str(message.creation_time) if message.creation_time else None, delivery_time: str(message.delivery_time) if message.delivery_time else None, modification_time: str(message.modification_time) if message.modification_time else None,时间线分析要点按时间排序所有消息事件发送、接收、修改标注发件人、收件人、主题、附件关注深夜/非工作时间的异常外发示例报告中2024-01-16 03:15 UTC的加密附件外发即是典型将日历事件、联系人变更、Journal 日志条目一并纳入时间线见 standards.md 的关键工件列表时间线同时服务于攻击路径还原与电子发现的时间范围界定。第 8 步记录发现并维护证据链最后一步是产出可呈堂admissible的取证文档。仓库PSTForensicAnalyzer.generate_report将全部结果落盘为结构化 JSONreport { analysis_timestamp: datetime.now().isoformat(), pst_file: self.pst_path, pst_size_bytes: os.path.getsize(self.pst_path), statistics: dict(self.stats), messages: self.messages[:500], attachments: self.attachments[:200], }报告至少应包含分析时间戳、证据文件路径与大小统计信息总消息数、总附件数、解析错误数邮件明细文件夹、主题、发件人、时间、附件可疑发现钓鱼邮件、外泄指标、关键词命中从获取哈希到最终报告的完整证据链chain of custody记录包括每一步的操作者、时间、工具版本与哈希值。agent.py的generate_report还额外输出sha256、unique_addresses、top_addresses与suspicious_findings便于快速形成摘要并导出 JSON 供后续 SIEM 或威胁情报平台消费。完整的可运行 Python 分析器将上述环节落地的完整实现位于 SKILL.md 的PSTForensicAnalyzer类其关键方法包括process_folder递归遍历文件夹树逐条提取消息并统计total_messages与parse_errorsextract_message提取主题、发件人、三种时间戳、附件计数、正文本/HTML 正文大小并解析传输头save_attachments带大小上限与文件名清洗的附件落盘generate_report输出 JSON 报告并打印统计摘要。使用方式pip install libpff-python # 安装 pypff 绑定见 api-reference.md python process.py pst_file output_dirpypff 的核心 API 速查来自 api-reference.mdimport pypff pst pypff.file() pst.open(mailbox.pst) root pst.get_root_folder() for i in range(root.number_of_sub_folders): folder root.get_sub_folder(i) print(f{folder.name}: {folder.number_of_sub_messages} messages) msg folder.get_sub_message(0) print(msg.subject) print(msg.sender_name) print(msg.delivery_time) print(msg.transport_headers) print(msg.plain_text_body) print(msg.html_body)关键 MAPI 属性对照解析器读取的字段对应 PST 底层的 MAPI 属性标签属性MAPI 标签说明SubjectPR_SUBJECT (0x0037)邮件主题SenderPR_SENDER_NAME (0x0C1A)发件人显示名FromPR_SENT_REPRESENTING_EMAIL (0x0065)发件人邮箱Delivery TimePR_MESSAGE_DELIVERY_TIME (0x0E06)投递时间HeadersPR_TRANSPORT_MESSAGE_HEADERS (0x007D)完整 SMTP 头命令行一键式 Agent仓库 scripts/agent.py 提供了一个开箱即用的命令行版本集成了文件夹遍历、消息提取、邮箱地址抽取、可疑邮件启发式检测与报告生成python agent.py mailbox.pst输出包括文件夹结构、总消息数、唯一邮箱地址数以及带严重度分级的可疑发现列表非常适合在应急响应中快速跑出初步研判结果。取证注意事项与标准依据取证要点Forensic ConsiderationsDeleted Items 文件夹可能包含关键证据**Recoverable Items垃圾站**需要专门提取常规导出不覆盖日历、联系人中可能包含与案件相关的时间与人员线索Journal 日志条目可提供时间线证据。相关标准标准作用MS-PSTOutlook Personal Folders (.pst) 文件格式规范MS-OXMSGOutlook 邮件项目文件格式规范NIST SP 800-86取证技术集成指南工作流设计依据工具生态方面开源首选 libpff/pffexport 与 pypffPython 绑定商业可评估 MailXaminer、PST Walker 与 Kernel Outlook PST Viewer见 standards.md。实战输出示例以下是 SKILL.md 给出的完整运行示例节选可作为流程正确性的验收基准$ pffexport /evidence/jsmith_archive.pst -t /analysis/pst_output pffexport 20231205 - libpff PST/OST Export Tool Input: /evidence/jsmith_archive.pst (2.3 GB) Exporting PST contents... Folders: 45 Messages: 12,456 Attachments: 3,234 Contacts: 567 Calendar: 234 Tasks: 89 Export completed in 3m 42s.--- Phishing / Suspicious Emails --- Email #8923 Date: 2024-01-15 14:30:22 UTC From: IT Support it-supportc0rporate-help.com To: john.smithcorporate.com Subject: Urgent: Password Reset Required Headers: Return-Path: bouncemail-relay.c0rporate-help.com X-Originating-IP: 203.0.113.55 Received: from mail-relay.c0rporate-help.com (203.0.113.55) SPF: FAIL (domain c0rporate-help.com) DKIM: NONE DMARC: FAIL Attachments: - Password_Reset_Form.xlsm (245 KB) SHA-256: 7a3b8c9d...e1f2a3b4--- Data Exfiltration Indicators --- Email #9102 Date: 2024-01-16 03:15:45 UTC From: john.smithcorporate.com To: j.smith.personal8842protonmail.com Subject: (no subject) Attachments: - archive_part1.7z (24.5 MB) - encrypted - archive_part2.7z (24.5 MB) - encrypted最终报告汇总Summary示例检测到 1 封钓鱼邮件初始入侵向量、5 封可疑外发邮件发往个人账户且带附件、3 个加密附件共 67.2MB疑似外泄报告落盘于pst_forensic_report.json。这一示例完整展示了八个步骤的产出如何汇集成可行动的调查结论。小结Outlook PST 邮件取证是一条「获取 → 固定 → 导出 → 解析 → 关联 → 重建 → 归档」的完整证据流水线。本文基于 workflows.md 的八步工作流骨架结合 SKILL.md、api-reference.md 与 scripts/agent.py 的源码实现给出了从pffexport命令行到pypffPython 分析器、再到可自动研判可疑邮件的完整方案。对于安全分析师、取证调查员与 SOC 团队直接复用本文的命令与代码即可对任意 PST/OST 归档开展结构化、可复现、可呈堂的邮件取证分析。【免费下载链接】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),仅供参考