
Anthropic-Cybersecurity-Skillspeepdf / pdfid / pdf-parser 恶意 PDF 静态分析完全参考【免费下载链接】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 仓库中 malware-analysis 子域的 peepdf 技能 展开完整覆盖 peepdf、pdfid.py、pdf-parser.py 三大工具的安装、命令行参数、交互式命令、可疑关键字分级、历史 CVE 与 shellcode 检测模式等 API 级参考内容并结合仓库自带的自动化分析脚本 agent.py 的源码讲清风险评分算法与报告生成链路。读完后你既能手工完成一次武器化 PDF 的取证分析也能直接用该技能的脚本对样本批量产出结构化风险报告。该技能位于仓库的 817 个结构化安全技能之一遵循 agentskills.io 开放标准以SKILL.md的 frontmatter 声明了适用场景与框架映射MITRE ATTCK 的 T1204.002恶意文件恶意文档、T1059.007命令和脚本解释器JavaScript、T1027混淆文件或信息、T1106原生 API以及 NIST CSF 2.0 的 DE.AE-02、RS.AN-03、ID.RA-01、DE.CM-01 子类目声明见 SKILL.md frontmatter。本文的 API 参考主体即同目录下的 references/api-reference.md。适用场景与前置条件按 SKILL.md 的 When to Use 定义本技能适用于分诊triage来自钓鱼邮件的可疑 PDF 附件对 PDF 型漏洞利用文档exploit document做恶意软件分析从 PDF 中提取内嵌 JavaScript、shellcode 或可执行文件对武器化文档工件做取证审查为 PDF 型威胁构建检测签名YARA、Sigma 等。前置条件SKILL.md Prerequisites 一节Python 3.8已安装peepdf-3Didier Stevens 工具套件中的pdfid.py与pdf-parser.py隔离分析环境虚拟机或沙箱——PDF 是恶意文档的主要投递载体切勿在宿主机直接打开样本可选PyV8用于 peepdf 内嵌 JavaScript 仿真emulation可选Pylibemu用于 shellcode 行为分析。peepdf 安装peepdf最初为 Python 2 编写Python 3 环境应使用社区维护的 Python 3 版本peepdf-3对应关系见 references/api-reference.md 的 peepdf Installation 一节# Python 3 版本 pip install peepdf-3 # 从源码安装从 peepdf 官方仓库获取源码后 cd peepdf pip install -r requirements.txt从 agent.py 的实现可以看到仓库的自动化流程对两种调用方式都做了兼容优先尝试直接执行peepdf -f -l file若返回非零状态则回退到python3 -m peepdf -f -l file。这种命令优先、模块回退的策略在run_pdfidpdfid.pyvspython3 -m pdfidL36-L42中同样存在适配不同安装方式下的 PATH 差异。peepdf 命令行用法参考文档给出的四种基本调用方式覆盖批量分诊、交互式取证、脚本化批量执行与机器可读输出# 基本分析宽松解析模式 -l强制解析 -f peepdf -f -l malicious.pdf # 交互模式 peepdf -i malicious.pdf # 批量执行脚本中的命令 peepdf -s commands.txt malicious.pdf # JSON 输出 peepdf -j malicious.pdf其中-fforce parsing与-lloose mode组合是恶意样本分析的标准姿势武器化 PDF 经常故意构造畸形对象树或损坏的对象引用正常模式会直接解析失败宽松强制模式则能在最大程度上把对象都拉出来。agent.py 的run_peepdf_analysis正是固定使用peepdf -f -l获取文本输出再用正则从中提取结构化信息对象总数匹配同时含Version与Objects的行取最后一个数字JS 对象对含/JS或/JavaScript的行用(\d)提取对象 ID 列表CVE 引用CVE-\d{4}-\d{4,}模式提取用于关联已知漏洞URLhttps?://[^\s]提取外联地址进入 IOC 集合。peepdf 交互命令速查进入交互模式peepdf -i后参考文档列出的核心命令如下表。这套命令构成了从对象树定位到字节偏移的完整取证路径命令说明info显示文档摘要与可疑元素tree展示对象树结构object id显示对象的原始内容stream id解码并显示流内容自动应用 /Filter 解码rawstream id显示原始未解码流js_analyse id分析对象中的 JavaScriptjs_eval id仿真执行 JavaScript需要 PyV8vtcheck在 VirusTotal 上查询文件哈希extract uri提取文档中所有 URIsearch string跨对象搜索字符串offsets id显示对象在文件中的字节偏移metadata显示文档元数据实操路径通常是tree找到疑似对象 →object id看结构 →stream id与rawstream id对比解码前/解码后以识别 FlateDecode、ASCIIHexDecode 等隐藏层 →js_analyse id静态检查 JS → 需要动态行为时再用js_eval id注意仿真执行应在沙箱内进行。offsets id给出的字节偏移还可以与 agent.py 中compute_hashes计算的文件哈希一起写入报告作为证据位置锚点。pdfid.py关键字快速分诊pdfid.py是恶意 PDF 分诊的第一道关卡只做纯文本级关键字计数不解析、不触发任何 PDF 行为# 基本扫描 pdfid.py malicious.pdf # 附加解除武装指标-e扩展关键字集 pdfid.py -e malicious.pdf # 递归扫描目录 pdfid.py -r /samples/参考文档给出的可疑关键字分级表关键字风险含义/JSHighJavaScript 对象引用/JavaScriptHighJavaScript 动作/OpenActionHigh打开文档时自动执行/AAHigh附加动作触发器Additional Actions/LaunchCritical启动外部应用程序/EmbeddedFileHigh内嵌文件常见 dropper 载体/XFAHighXML Forms Architecture漏洞利用面/JBIG2DecodeMediumJBIG2 图像解码器CVE-2009-0658/AcroFormMedium交互表单潜在利用点/ObjStmLow对象流可用于隐藏对象/URILow外部 URL 引用这些关键字与 PDF 恶意利用的经典机制一一对应/OpenAction//AA提供打开即触发的执行入口/JS/JavaScript提供脚本层/Launch直接跳出 PDF 沙箱/EmbeddedFile携带落盘载荷/ObjStm则常被用来把对象藏进压缩流里规避简单扫描。agent.py 在 pdfid 基础表之外扩展了一个 16 项关键字清单额外纳入了/RichMedia、/SubmitForm、/ImportData、/Names四个指标——它们对应富媒体嵌入、表单外发、XFA 数据导入和名称树常用于隐藏自定义对象等利用路径。其中 6 个被标记为高风险HIGH_RISK_KEYWORDS/JS、/JavaScript、/OpenAction、/Launch、/EmbeddedFile、/XFA。run_pdfid函数通过line.rsplit(None, 1)解析 pdfid 输出每行的关键字 计数对汇总成{keyword: count}字典供后续评分使用。pdf-parser.py对象级深度解析pdf-parser.py用于绕过交互式界面、直接按对象 ID 取数适合脚本化取证# 文档统计 pdf-parser.py --stats malicious.pdf # 提取指定对象 pdf-parser.py -o 10 malicious.pdf # 提取并解码过滤器 pdf-parser.py -o 10 -f malicious.pdf # 将解码后的流转储到文件 pdf-parser.py -o 10 -f -d extracted.bin malicious.pdf # 关键字搜索 pdf-parser.py --search /JavaScript malicious.pdf # 按类型搜索 pdf-parser.py --type /Action malicious.pdf-fdecode filters会对流应用 /Filter 声明的解码-d file把解码结果落盘供后续分析丢进反汇编器、YARA 扫描或 CyberChef 二次解码。SKILL.md 的工具对照表还列出了 VirusTotal哈希交叉核验与 CyberChef解码变换作为配套工具。一个实用的组合拳是--type /Action列出全部动作对象确认哪些动作挂在/OpenAction上再用-o id -f -d payload.bin导出流内容最后对导出文件跑 YARA 或哈希核验。PDF 漏洞利用中的常见 CVE参考文档维护了一份 PDF 利用史的高频 CVE 对照表用于在看到对应组件时快速判断利用年代与攻击面CVE组件描述CVE-2009-0658JBIG2JBIG2 解码器缓冲区溢出CVE-2009-4324Doc.media通过 newplayer 的释放后使用UAFCVE-2010-0188LibTIFFTIFF 图像处理溢出CVE-2013-0640XFAXFA 内存破坏CVE-2017-11882Equation Editor公式编辑器栈溢出从 agent.py 的实现看脚本会把 peepdf 输出中匹配到的CVE-YYYY-NNNN形式编号自动收集进vulns列表既写入报告的cve_references也直接计入 IOC 的cves字段——当样本对象结构与上述某类组件吻合如存在/JBIG2Decode过滤器时CVE 关联可显著缩短研判时间。Shellcode 与混淆 JavaScript 检测模式参考文档给出的模式速查表模式指示意义%u9090%u9090NOP sledUnicode 形式\x90\x90\x90NOP sledhex 形式unescape()shellcode 解码unescape 链String.fromCharCode字符码拼装eval()动态代码执行new ActiveXObjectCOM 对象实例化spray变量名堆喷射heap spray技术仓库的 agent.py 中detect_shellcode_patterns将上述启发式落实为 7 组精确正则并给出了比速查表更严格的匹配阈值检测项正则说明heap_spray(%u[0-9a-fA-F]{4}){4,}连续 4 个及以上 Unicode 转义堆喷射特征nop_sled(\\x90){8,}\|(%u9090){4,}连续 8 个以上\x90或 4 组以上%u9090unescape_chainunescape\s*\(unescape 解码链shellcode_varshellcode\|payload\|sc\s*\s*[]shellcode/payload 变量赋值fromcharcodeString\.fromCharCode字符码拼装eval_calleval\s*\(eval 调用activexnew\sActiveXObjectCOM 实例化从源码结构看脚本对 NOP sled 采用长度阈值8 个 hex 字节或 4 组 Unicode而非参考表中的裸字符串匹配可有效降低正常 PDF 中零星0x90字节的误报。检测对象是extract_javascript函数L105-L117导出的 JS 内容——它依据 peepdf 定位到的 JS 对象 ID逐个执行pdf-parser.py -o id -f -w file拉取解码后的流取前 1000 字符作为内容预览参与模式匹配。VirusTotal 交叉核验peepdf 内置的vtcheck命令可用文件哈希在 VirusTotal 上交叉核验参考文档示例输出PPDF vtcheck MD5: abc123... Detections: 45/72vtcheck属于外部情报而非本地证据高检出率如示例中的 45/72可快速确认恶意属性并指导后续分析优先级低检出则提示可能是新样本应把分析重心转向行为层JS 仿真、流解码。结合 SKILL.md 输出格式 的报告模板VirusTotal Detections: [X/Y engines]是标准报告字段。自动化流水线agent.py 风险评分与报告skills/analyzing-malicious-pdf-with-peepdf/scripts/agent.py 是把上述全部 API 串成一条无人值守流水线的主脚本入口mainL182-L215的执行顺序为计算 MD5/SHA-25664KB 分块流式读取见 L25-L33运行 pdfid 分诊得到关键字计数运行peepdf -f -l深度分析得到对象数、JS 对象、CVE 引用、URL若发现 JS 对象或显式指定--extract-js导出 JS 内容并做 shellcode 模式检测汇总风险评分生成 JSON 报告并落盘默认pdf_analysis_report.json。风险评分算法calculate_risk_scoreL139-L152采用加权求和、封顶 100 分因子权重高风险关键字命中每个计数 × 20其他可疑关键字命中每个计数 × 5peepdf 输出的 CVE 引用每条 × 30识别出的 JS 对象每个 × 15shellcode/混淆模式命中每次 × 10风险等级阈值score 80为 critical 50为 high 20为 medium其余为 low。例如一个含/Launch计 1/OpenAction计 1 2 个 JS 对象 1 处unescape链的样本得分为 40 30 10 80直接判为 critical——这与参考文档将/Launch定为 Critical、/OpenAction定为 High 的分级语义一致。报告结构generate_reportL155-L179输出的 JSON 包含hashesmd5/sha256、risk_assessment分数与等级、pdfid_keywords完整计数表、peepdf_analysis对象数、JS 对象 ID、CVE 引用、去重后的 URL、javascript_content最多 5 个对象的预览、shellcode_indicators各模式命中次数、iocssha256、URL、CVE 三元组。这与 SKILL.md 定义的文本报告骨架文件名、SHA-256、可疑关键字、JS 对象、URL、shellcode 判定、内嵌文件、VT 检出、风险等级在字段上一一对应可直接转换为 IR 通报格式。使用方式# 基本分析自动哈希 pdfid peepdf 风险评分 python3 skills/analyzing-malicious-pdf-with-peepdf/scripts/agent.py malicious.pdf # 显式提取 JS 对象内容并输出到指定文件 python3 skills/analyzing-malicious-pdf-with-peepdf/scripts/agent.py malicious.pdf \ --extract-js --output report.json端到端工作流与输出模板综合 SKILL.md 的七步工作流一次完整的恶意 PDF 静态分析应按以下顺序执行pdfid 分诊扫描/JS、/JavaScript、/OpenAction、/Launch、/EmbeddedFile等关键字快速定性peepdf 交互分析peepdf -i探索对象结构treeobject定位可疑对象识别可疑对象锁定含 JavaScript、流或编码数据的对象 ID提取内容pdf-parser.py -o id -f -d导出并解码流FlateDecode、ASCIIHexDecode 等JavaScript 去混淆对提取的 JS 检查 shellcode、堆喷射与利用代码对照前文模式表与 agent.py 正则VirusTotal 核验vtcheck交叉比对哈希生成 IOC汇总 URL、域名、哈希与 shellcode 签名。分析完成后按 SKILL.md 的 Output Format 模板产出报告Analysis Report: PDF-MAL-[DATE]-[SEQ] File: [filename.pdf] SHA-256: [hash] Suspicious Keywords: [/JS, /OpenAction, etc.] Objects with JavaScript: [Object IDs] Extracted URLs: [List] Shellcode Detected: [Yes/No] Embedded Files: [Count and types] VirusTotal Detections: [X/Y engines] Risk Level: [Critical/High/Medium/Low]关键概念与合规边界SKILL.md 的 Key Concepts 表给出了理解上述 API 输出所需的最小概念集/OpenAction打开时自动执行的动作、/JavaScript//JS内嵌脚本对象、/Launch启动外部程序、/EmbeddedFilePDF 内嵌文件、FlateDecodezlib 压缩过滤器用于隐藏内容、Object Streams压缩流中存储的对象。最后强调安全边界仓库 README 明确要求本库中的分析技术仅用于授权测试、防御与研究场景PDF 样本的每一步交互分析尤其是js_eval仿真、-d导出执行都应在隔离虚拟机或沙箱中完成分析产物IOC、报告按 SKILL.md 模板归档后即可进入威胁狩猎与检测规则建设环节对应 MITRE ATTCK T1204.002/T1059.007 的检测覆盖。【免费下载链接】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),仅供参考