SuperAPI AI 工具集

analyzing-malicious-pdf-with-peepdf

安全与审计

查看项目

更新于 10-15 16:29

技能介绍

用途

本技能面向恶意 PDF 文档的静态分析,使用 peepdf、pdfid 和 pdf-parser 提取 PDF 中内嵌的 JavaScript、shellcode 和可疑对象。典型使用场景包括:

  • 对来自钓鱼邮件的可疑 PDF 附件进行研判
  • 对基于 PDF 的漏洞利用文档进行恶意软件分析
  • 从 PDF 中提取内嵌的 JavaScript、shellcode 或可执行文件
  • 对武器化文档工件进行取证检查
  • 构建针对 PDF 类威胁的检测特征

主要能力

  • 使用 pdfid 快速扫描 PDF 中的可疑关键字,如 /JS、/JavaScript、/OpenAction、/Launch、/EmbeddedFile
  • 以 peepdf 交互模式打开 PDF,探查对象结构
  • 定位包含 JavaScript、流或编码数据的可疑对象
  • 转储可疑流并解码过滤器(FlateDecode、ASCIIHexDecode)
  • 对提取出的 JavaScript 进行反混淆,分析其中的 shellcode、堆喷射或漏洞利用代码
  • 使用 peepdf 的 vtcheck 将文件哈希与 VirusTotal 的杀毒检测结果交叉比对
  • 提取 URL、域名、哈希和 shellcode 特征等 IOC

使用方式

前置条件:

  • Python 3.8+,并安装 peepdf-3(pip install peepdf-3)
  • Didier Stevens 套件中的 pdfid.py 和 pdf-parser.py
  • 隔离的分析环境(虚拟机或沙箱)
  • 可选:PyV8,用于在 peepdf 内进行 JavaScript 模拟
  • 可选:Pylibemu,用于 shellcode 分析

工作流程:

  1. 使用 pdfid 进行研判:扫描 PDF 中的可疑关键字(/JS、/JavaScript、/OpenAction、/Launch、/EmbeddedFile)。
  2. 交互式分析:以 peepdf 交互模式打开 PDF,探查对象结构。
  3. 识别可疑对象:定位包含 JavaScript、流或编码数据的对象。
  4. 提取内容:转储可疑流并解码过滤器(FlateDecode、ASCIIHexDecode)。
  5. 反混淆 JavaScript:分析提取出的 JS,查找 shellcode、堆喷射或漏洞利用代码。
  6. 检查 VirusTotal:使用 peepdf 的 vtcheck 将文件哈希与杀毒检测结果交叉比对。
  7. 生成 IOC:提取 URL、域名、哈希和 shellcode 特征。

关键概念

  • /OpenAction:PDF 打开时自动执行的动作
  • /JavaScript、/JS:PDF 对象中内嵌的 JavaScript 代码
  • /Launch:启动外部应用程序的动作
  • /EmbeddedFile:嵌入在 PDF 结构中的文件
  • FlateDecode:用于隐藏内容的 zlib 压缩过滤器
  • Object Streams:存储在压缩流中的 PDF 对象

工具与系统

  • peepdf / peepdf-3:带 JavaScript 模拟的交互式 PDF 分析
  • pdfid.py:快速研判扫描可疑关键字
  • pdf-parser.py:对象级深度 PDF 解析
  • VirusTotal:哈希查询与杀毒检测交叉比对
  • CyberChef:解码和转换提取出的载荷

输出格式

分析报告示例结构:

  • 报告编号:PDF-MAL-[DATE]-[SEQ]
  • 文件:[filename.pdf]
  • SHA-256:[hash]
  • 可疑关键字:[/JS, /OpenAction 等]
  • 含 JavaScript 的对象:[对象 ID]
  • 提取的 URL:[列表]
  • 是否检测到 Shellcode:[是/否]
  • 内嵌文件:[数量与类型]
  • VirusTotal 检测:[X/Y 引擎]
  • 风险等级:[严重/高/中/低]

限制

资料未提供关于该技能的具体限制说明。分析应在隔离环境中进行,以避免潜在风险。