检查 PDF 是否存在漏洞

检查 PDF 是否存在漏洞

有什么方法可以检查 PDF 是否存在漏洞?我大部分时间都在使用 Linux,但有时我也需要在 Windows 上阅读 PDF,因此我必须格外确保 PDF 是干净的。我在 Windows 上使用 Acrobat Reader,在 Linux 上使用 Evince。

答案1

以下是版主的帖子(鲁冰花) 的远程攻击论坛我发现这非常有帮助。

以下是我分析恶意 PDF 的方法:

我使用工具pdfidpdf-parser这里过去我也曾使用过pdftk,但最近我发现它不太有用。

流程:

  1. 用于pdfid分析 pdf 文档。pdfid可以告诉您 pdf 是否包含 Javascript 以及自动运行功能以及有多少页。包含 Javascript 和自动运行功能的单页文档是可疑的。
  2. 如果存在 Javascript,请从文档中提取它以确定其用途。有时 Javascript 包含在纯文本中,在这种情况下,您只需使用字符串实用程序即可提取它。否则,您可以使用 pdf-parser 提取某些类型的编码 Javascript。
  3. 恶意 Javascript 经常会使用混淆来掩盖其真实目的。为了消除这种混淆,我稍微修改了脚本以便于调试(例如,将 eval 语句中的代码分配给变量),并使用 Rhino Javascript 调试器向我展示代码在运行时是如何转换的。
  4. 许多基于 Javascript 的 PDF 漏洞通常涉及缓冲区溢出,并且 shellcode 通常采用 unicode 格式。我有一个perl 脚本我编写了将这种类型的 shellcode 转换为 C 程序(实际上只是带有一些包装代码的 C 风格的 shellcode)的工具,然后可以对其进行编译,以便使用标准二进制分析技术进行进一步分析。

我要指出的是,PDF 漏洞利用无需 Javascript 即可实现,但实际上大多数漏洞利用似乎都使用了 Javascript。我见过的漏洞利用肯定都使用了 Javascript。

答案2

您可以安装并使用ClamAV

相关内容