Metasploit 辅助扫描模块

LinuxBeginner
立即练习

介绍

Metasploit Framework 是一个强大的开源工具,用于渗透测试、漏洞评估和漏洞利用开发。虽然它以其庞大的漏洞利用集合而闻名,但它也包含一套“辅助”(auxiliary)模块。这些模块执行的任务不涉及直接的漏洞利用,例如扫描、模糊测试(fuzzing)、嗅探(sniffing)和侦察(reconnaissance)。

在这个 Lab 中,你将学习如何使用 Metasploit 最基本的辅助模块之一:TCP 端口扫描器。你将学习如何选择一个模块,配置其选项,如目标主机和端口,并执行扫描以发现目标机器上开放的端口。

使用 use auxiliary/scanner/portscan/tcp 命令使用端口扫描模块

在这一步中,你将启动 Metasploit Framework 控制台并选择 TCP 端口扫描模块。

首先,你需要启动 Metasploit 控制台。这是与框架交互的主要界面。打开你的终端并运行以下命令:

msfconsole -q

-q 标志代表“quiet”(安静),它会抑制启动横幅(banner),以获得更简洁的界面。加载完成后,你将看到 Metasploit 命令提示符,它看起来像 msf >

接下来,你将使用 use 命令来选择用于 TCP 端口扫描的辅助模块。此命令会加载指定的模块并准备进行配置。

在 Metasploit 提示符中输入以下命令:

use auxiliary/scanner/portscan/tcp

执行该命令后,你会注意到提示符已更改,以反映当前加载的模块。这确认你现在正在 TCP 端口扫描的上下文环境中工作。

你的提示符现在应该如下所示:

msf auxiliary(scanner/portscan/tcp) >

使用 set RHOSTS 192.168.1.0/24 设置扫描范围

在这一步中,你将配置扫描目标。在 Metasploit 中,目标主机由 RHOSTS(远程主机,Remote Hosts)变量定义。

在运行模块之前,你必须告诉它将操作指向何处。set 命令用于配置模块选项。RHOSTS 可以是单个 IP 地址、主机名、IP 地址范围(例如 192.168.1.10-192.168.1.20)或 CIDR 表示法中的网络范围(例如 192.168.1.0/24)。

对于这个 Lab,我们将扫描本地机器以查找由设置脚本启动的服务。本地机器的 IP 地址是 127.0.0.1

使用 set 命令来定义你的目标:

set RHOSTS 127.0.0.1

Metasploit 会通过打印变量及其新值来确认设置:

RHOSTS => 127.0.0.1

要查看当前模块所有可用的选项并验证你的设置,你可以随时使用 show options 命令。

使用 set PORTS 1-1000 配置端口

在这一步中,你将指定要在目标主机上扫描哪些端口。默认情况下,扫描器可能只检查常见端口的一个小列表。要执行更彻底的扫描,你需要配置 PORTS 变量。

PORTS 选项接受逗号分隔的端口列表(例如 22,80,443)或端口范围(例如 1-1024)。本 Lab 的设置脚本在端口 9998000 上启动了服务。为确保我们的扫描能找到它们,我们将扫描一个较宽的端口范围。

让我们将端口范围设置为 1 到 10000。再次使用 set 命令:

set PORTS 1-10000

控制台将确认更改:

PORTS => 1-10000

现在,你的扫描器已配置为检查目标主机 127.0.0.1 上的所有端口,范围从 1 到 10000。

使用 run 命令执行扫描

在这一步中,你将执行端口扫描。在选择了模块并配置了所有必要的选项(RHOSTSPORTS)之后,你就可以启动扫描器了。

run 命令(或其别名 exploit)告诉 Metasploit 使用你提供的设置来执行当前加载的模块。

要开始扫描,只需输入:

run

Metasploit 将开始扫描过程。它将尝试连接到目标主机上指定范围内的每个端口。当它找到一个开放端口时,它会在控制台打印一条消息。你应该会看到指示我们之前设置的开放端口的输出。

输出将类似于以下内容:

[+] 127.0.0.1             - 127.0.0.1:22 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:3002 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:3001 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:5433 - TCP OPEN
[*] 127.0.0.1             - Scanned 1 of 1 hosts (100% complete)

此输出确认扫描器已成功识别本地机器上的开放端口。

使用 jobs -l 分析扫描结果

在这一步中,你将学习如何将 Metasploit 任务作为后台作业(background jobs)进行管理。虽然上一步中的扫描结果直接打印到了你的屏幕上,但耗时更长的任务通常在后台运行,以保持控制台可用于其他命令。

要将模块作为后台作业运行,你可以向 run 命令添加 -j 标志。让我们用端口扫描器来尝试一下。

run -j

这次,你不会等到扫描完成,而是会立即获得提示符。Metasploit 会通知你该模块正在作为后台作业运行。

[*] Auxiliary module running as background job 1.

Enter 键继续。

要查看所有正在运行的后台作业列表,你可以使用 jobs 命令。-l 标志提供了更详细的列表。

jobs -l

输出将向你显示作业的 ID、名称和状态。

Jobs
====

  Id  Name                             Payload  Payload opts
  --  ----                             -------  ------------
  1   Auxiliary: scanner/portscan/tcp

jobs 命令对于管理多个任务至关重要,例如,在配置另一个漏洞利用(exploit)的同时运行一个耗时的扫描。你可以使用作业的 ID 与其进行交互,例如查看其输出或停止它们。

总结

恭喜你完成本次实验!你已成功使用 Metasploit 辅助模块(auxiliary module)来执行网络端口扫描。

在本次实验中,你学会了如何:

  • 启动 Metasploit Framework 控制台(msfconsole)。
  • 使用 use 命令选择一个辅助模块。
  • 使用 set 命令配置模块选项,如 RHOSTSPORTS
  • 使用 run 命令执行模块。
  • 将模块作为后台任务运行,并使用 jobs 命令管理它们。

端口扫描是任何渗透测试中的关键第一步,而 Metasploit 为执行此任务提供了一种强大而灵活的方式。这只是数百个可用辅助模块中的一个。我们鼓励你去探索其他模块,以进行不同类型的扫描和侦察(reconnaissance)。