原文地址:https://www.adlice.com/infected-pdf-extract-payload/
使用受感染的PDF一直是感染用户的最佳方式,因为这种文档格式非常常见,几乎每个人都使用它。此外,存在许多利用Acrobat Reader漏洞的方法,它是发布恶意软件的非常隐秘和优雅的方式。
在本文中,我将向您展示,使用自定义shellcode制作恶意PDF并触发漏洞以执行payload是多么容易。我们还将分析恶意PDF以了解payload的存储方式以及如何提取它。
本文仅供研究之用,不要做坏事!
PDF格式
PDF是面向对象的格式,由Adobe定义。此格式描述了文档组织,并保留了文档所需的依赖关系(字体,图像……)。这些对象作为流存储在文档中,并且大部分时间被编码或压缩。以下是经典PDF文档的概述。有关更多信息,请阅读Adobe的规范。
创建恶意PDF
我们将使用metasploit创建一个伪造的PDF,其中包含一个漏洞exp,以及一个自定义的payload(要执行的代码)。该漏洞利用的目标是特定版本的Adobe Reader,因此我们需要进行一些考古并找到一个古老的Reader版本(感谢http://www.oldapps.com/)在目标机器上安装。
所以,首先,让我们制作这个PDF。我们将制作一个只在机器上打开计算器(calc.exe)的恶意PDF,仅用于演示。打开metasploit控制台(本文未涉及安装metasploit)并键入:
|
|
看起来像这样:
将刚创建的文件(此处为/home/osboxes/.msf4/local/malicious.pdf)复制到共享驱动器上。您需要把它提供给目标机器。
恶意PDF执行
在目标计算机上,下载并安装易受攻击的Adobe Reader版本(metasploit告诉我们它应该小于8.1.2)。我选择安装8.1.1版本。
安装后,执行malicious.pdf文件。您应该看到从Adobe Reader进程生成的计算器。这就是漏洞利用。
我已经完成了另一个PDF,但稍微改变了payload,只是为了好玩:
|
|
这是结果。 Adobe Reader现在有一个后门(反向shell)监听命令。
恶意PDF分析
玩够了! 让我们看看恶意PDF中的内容,让我们尝试提取恶意payload(我们仍然使用calc.exe PDF)。
首先,我们需要一个名为PDF Stream Dumper的工具,所以请下载它。使用它加载恶意PDF,并花些时间熟悉该工具。
我们可以使用该工具的“Exploit Scan”菜单来检测PDF中是否有exp。
|
|
实际上,在流6中隐藏了一个漏洞(捕获中的蓝色漏洞)。
但是让我们从头开始:在PDF中搜索漏洞时,我们大多数时候会遇到由Javascript代码创建的堆喷。该堆喷用于推动堆上的payload,一旦漏洞被触发就可以执行。
如果您打开流1,您可以看到:
|
|
我们可以在流5上转换为OpenAction。让我们转到第5流:
|
|
其中说要执行位于流6中的Javascript。此流显示简单的Javascript,是时候打开“Javascript_UI”菜单了。我们立即识别出一个十六进制编码的大字符串,并将其推入变量以进行堆喷。这是我们的payload:
幸运的是,我们有工具来操纵它,并了解它的作用。选择payload(引号之间的部分),然后打开“Shellcode_analysis”菜单。 然后选择“scDbg - LibEmu Emulation”。您将获得一个新窗口将shellcode解码为字节(您甚至可以将其保存到文件中):
LibEmu是一个能够模拟处理器的库,它提供了有关汇编代码尝试执行的操作的信息。只需点击“启动”按钮,您就会明白:
在这里,我们可以清楚地看到shellcode只会打开一个calc.exe窗口并退出。 让我们重新对其他恶意PDF(反向shell)进行相同的分析:
呃,自我解释吧? Shellcode正在加载操作套接字所需的库(ws2_32.dll),并尝试连接回C&C。
我没有告诉漏洞本身,它位于javascript代码的末尾(如Exploit搜索所述,“util.printf - 在stream:6中找到”)。它正在利用printf函数上的缓冲区溢出来执行任意代码(这里是我们的堆喷射shellcode)。
|
|
参考
- http://www.sans.org/reading-room/whitepapers/malicious/owned-malicious-pdf-analysis-33443
- http://www.oldapps.com/adobe_reader.php
- http://contagiodump.blogspot.fr/2010/08/malicious-documents-archive-for.html
- http://contagiodump.blogspot.fr/2013/03/16800-clean-and-11960-malicious-files.html
- http://eternal-todo.com/blog/cve-2011-2462-exploit-analysis-peepdf
- http://blog.9bplus.com/analyzing-cve-2011-2462/
- https://www.fireeye.com/blog/threat-research/2012/07/analysis-of-a-different-pdf-malware.html
- http://resources.infosecinstitute.com/analyzing-malicious-pdf/