用途
本技能面向恶意 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 分析
工作流程:
- 使用 pdfid 进行研判:扫描 PDF 中的可疑关键字(/JS、/JavaScript、/OpenAction、/Launch、/EmbeddedFile)。
- 交互式分析:以 peepdf 交互模式打开 PDF,探查对象结构。
- 识别可疑对象:定位包含 JavaScript、流或编码数据的对象。
- 提取内容:转储可疑流并解码过滤器(FlateDecode、ASCIIHexDecode)。
- 反混淆 JavaScript:分析提取出的 JS,查找 shellcode、堆喷射或漏洞利用代码。
- 检查 VirusTotal:使用 peepdf 的 vtcheck 将文件哈希与杀毒检测结果交叉比对。
- 生成 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 引擎]
- 风险等级:[严重/高/中/低]
限制
资料未提供关于该技能的具体限制说明。分析应在隔离环境中进行,以避免潜在风险。