恶意PDF文档分析步骤
- 使用 PDFiD 扫描 PDF 文档
- 查看 PDF 对象的内容
- 用 peepdf 提取嵌入文件
- 行为分析

1. PDF 文档是一组对象,用于描述文件中页面的显示方式。在今天的文章中,我将向您展示如何扫描 PDF 中的病毒。介绍分析可疑 PDF 文档的所有步骤。
2 . 为了鼓励用户*载下**或打开 PDF 文档,此类文件通常通过电子邮件发送。打开 PDF 文档时,它通常在后台运行 JavaScript 。此脚本可以利用 Adob e PDF Reader 中的漏洞或以静默方式保存嵌入的可执行文件。
3 . 恶意 PDF 文档分析
PDF 文件有四个组成部分。这些是标题、正文( body )、链接和 endmark 。
1. 标题包含有关文档版本和其他服务信息的信息。
2. PDF 的正文包含各种对象(对象由用于存储数据的流组成)。
3. 交叉引用表指向每个对象。
4. endmark 指向一个交叉引用表。
以 Report.pdf 文件为例。
工具:
使用 PDFiD 扫描 PDF 文档
PDFiD 是 Didier Stevens Suite 的一个组件。它使用字符串列表扫描 PDF 文档,以检测 JavaScript 元素、嵌入文件、打开文档的操作以及计算 PDF *特中**定行的数量。
从扫描结果可以看出, PDFiD 在 Report.pdf 文件中发现了多个对象、流、 JS 、 JavaScript 和 OpenAction 元素。此类元素的存在意味着 PDF 文档包含 JavaScript 或 Flash 脚本。
/Embedded 文件元素指示 PDF 中存在其他文件格式。
/ OpenAction 、 AA 、 / Acroform 元素告诉我们,当打开或查看 PDF 文档时,会执行某种自动操作。流是对象内的数据。
查看 PDF 对象的内容
因此,我们发现 PDF 文件内部包含 JavaScript 。这将是分析的起点。要查找间接 JavaScript 对象,让我们运行 pdf-parser.py 工具。
根据扫描结果,每次打开 PDF 时 JavaScript 都会运行病毒文件,所以我们下一步就是提取这个文件。
使用 peepdf 提取嵌入文件
Peepdf 是一个 Python 工具,包含检查和解析 PDF 的所有必要组件。 要使用其功能, 请输入命令 peepdf -- i file_name .pdf _ - i 开关 启用脚本的 交互模式。
有关详细信息,请参阅帮助(选项帮助)
用 peepdf 解析的结果表明对象 14 有一个嵌入文件。仔细观察这个对象,我们会发现它指向对象 15 ;反过来,对象 15 指向对象 16 。最后,我们在对象 17 中发现了病毒文件的迹象。
从 PDF 的内容来看,里面只有一个流,也指向对象 17 。因此,对象 17 是一个嵌入文件的流。
流 17 包含以 MZ 开头的文件签名和以 4d 5a 开头的十六进制 (hex) 值。这些是指向 PE 可执行文件的标志。
接下来,我们将流保存为 virus*ex.e** 可执行文件。
行为分析
现在让我们在 Windows 7 32 位的虚拟机 中运行这个文件 。
Process Explorer
显示由
virus*ex.e**
创建的进程
正如您在进程资源管理器窗口中看到的, virus*ex.e** 创建了两个可疑进程( zedeogm*ex.e** 、 cmd*ex.e** ),这些进程在启动后被停止。
根据进程监视器, zedeogm*ex.e** 被保存为正在运行的进程的一部分。然后他更改了 Windows 防火墙规则。下一步是运行 WinMail*ex.e** 文件。之后,程序启动 cmd*ex.e** 执行 tmpd849fc4d.bat 文件并停止该进程。
因此,我们已经收集到足够的证据证明这个 PDF 文件是恶意的。然后可以采取进一步的预防措施,例如对提取的 IOC 进行二进制调试和内存检查以寻找其他威胁。

结论
我们介绍了分析可疑 PDF 文件的简单方法。恶意 PDF 文档通常使用 网络钓鱼攻击 进行分发。为避免成为网络钓鱼攻击的受害者,请遵循以下规则:
- · 永远不要相信电子邮件的发件人。在回复电子邮件之前,请务必验证基本身份信息。 因为黑客可以仿造邮件地址
- · 如果电子邮件的发件人不是他们声称的人,请不要点击链接或打开附件。
- · 黑客经常使用任意域名。