在 Metasploit 中使用辅助扫描器进行 FTP 枚举

Kali LinuxBeginner
立即练习

介绍

在本实验中,你将学习使用 Metasploit Framework 进行信息收集的基础知识。具体来说,你将专注于使用辅助扫描器模块进行 FTP(文件传输协议)枚举。

Metasploit 是一个强大的渗透测试框架,它使黑客行为更加简单。它包含大量的工具、exploit 和模块。辅助模块是其关键组成部分,用于扫描、模糊测试和侦察等任务,这些任务不涉及直接的 exploit。

FTP 枚举是收集有关 FTP 服务信息的过程,例如其版本、配置以及是否允许匿名访问。这些信息对于识别潜在漏洞至关重要。我们将使用 ftp_version 辅助模块扫描目标并识别正在运行的 FTP 服务器软件。

在本实验结束时,你将熟悉查找、配置和运行 Metasploit 模块的基本工作流程。

搜索 ftp_version 辅助模块

在此步骤中,你将启动 Metasploit Framework 控制台并搜索适合 FTP 版本扫描的模块。Metasploit 控制台是与框架交互的主要界面。

首先,打开一个终端并启动 Metasploit 控制台。我们使用 -q 标志进行“安静”启动,它会抑制 banner 以获得更简洁的界面。

msfconsole -q

进入 msfconsole 提示符后,你可以使用 search 命令查找模块。我们正在寻找一个可以识别 FTP 服务器版本的模块。一个好的搜索关键词是 ftp_version

msfconsole 提示符中输入以下命令:

search ftp_version

你将看到匹配模块的列表。我们感兴趣的是一个辅助扫描器。

msf6 > search ftp_version

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/ftp/ftp_version                     normal  No     FTP Version Scanner
   1  exploit/windows/ftp/ftpshell_version_bof  2010-05-12       good    No     FTPShell 6.70 (Windows 7) Version Stack Buffer Overflow

输出显示了 auxiliary/scanner/ftp/ftp_version 模块,这正是我们任务所需的。

选择 ftp_version 模块

在此步骤中,你将选择在上一步中找到的模块。在通过 search 命令识别出合适的模块后,你需要将其加载到框架的上下文中进行配置和运行。

选择模块的命令是 use,后面跟着搜索结果中的模块全名。

根据上一步的输出,使用以下命令选择 FTP 版本扫描器:

use auxiliary/scanner/ftp/ftp_version

执行此命令后,你会注意到 msfconsole 提示符发生了变化。它现在包含了所选模块的名称,表明你正在其上下文中进行操作。

msf6 > use auxiliary/scanner/ftp/ftp_version
msf6 auxiliary(scanner/ftp/ftp_version) >

这个新的提示符确认 ftp_version 模块现在已激活,并准备好进行配置。

将 RHOSTS 选项设置为目标 IP

在此步骤中,你将配置所选模块。大多数 Metasploit 模块在运行前都需要你设置特定的选项。对于扫描器模块,最常见的选项是 RHOSTS,它代表“远程主机”(Remote Hosts)。此选项告诉模块要扫描哪个目标。

我们的实验环境在同一台机器(localhost)上运行了一个 FTP 服务器。localhost 的 IP 地址是 127.0.0.1

要在 Metasploit 中设置选项,你使用 set 命令,后面跟着选项名称及其值。

RHOSTS 选项设置为我们的目标 IP 地址:

set RHOSTS 127.0.0.1

Metasploit 会将新的设置回显给你,以确认更改。

msf6 auxiliary(scanner/ftp/ftp_version) > set RHOSTS 127.0.0.1
RHOSTS => 127.0.0.1

现在模块知道要扫描哪个目标了。

使用 show options 查看和理解模块选项

在此步骤中,你将学习如何查看和验证模块的配置。在执行模块之前,检查其所有选项以确保一切设置正确,这始终是一个好习惯。

show options 命令会显示当前活动模块的所有可配置参数。

运行以下命令查看 ftp_version 扫描器的选项:

show options

这将显示一个包含每个选项详细信息的表格。

msf6 auxiliary(scanner/ftp/ftp_version) > show options

Module options (auxiliary/scanner/ftp/ftp_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS   127.0.0.1        yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    21               yes       The target port (TCP)
   THREADS  1                yes       The number of concurrent threads (max one per host)

让我们来解析一下这些列:

  • Name: 选项的名称(例如 RHOSTS)。
  • Current Setting: 当前分配给该选项的值。你可以看到 RHOSTS 设置为 127.0.0.1
  • Required: 指示模块运行是否必须设置该选项(yesno)。
  • Description: 对该选项功能的简要说明。

通过查看此输出,你可以确认必需的 RHOSTS 选项已正确设置为我们的目标。其他必需的选项 RPORTTHREADS 已经具有适合我们扫描的默认值。

使用 run 命令执行模块

在此步骤中,你将执行模块以执行扫描。一旦你选择了模块并配置了所有必需的选项,就可以启动它了。

执行辅助模块(auxiliary module)的命令是 run。(对于 exploit 模块,你可以使用 runexploit)。

现在,执行扫描器:

run

模块将连接到目标 FTP 服务器的指定端口,并尝试获取其版本 Banner。输出将显示扫描结果。

msf6 auxiliary(scanner/ftp/ftp_version) > run

[+] 127.0.0.1:21      - FTP Banner: 220 (vsFTPd 3.0.5)
[*] 127.0.0.1:21      - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

输出 [+] 127.0.0.1:21 - FTP Banner: 220 (vsFTPd 3.0.5) 是关键信息。它确认目标上正在运行一个 FTP 服务器,并告诉我们其软件和版本:vsFTPd 3.0.5。这是一次成功的枚举。

总结

在本实验中,你已成功使用 Metasploit Framework 执行了基本的 FTP 枚举。你学习了使用辅助模块(auxiliary module)的基本工作流程,这是任何 Metasploit 用户的一项核心技能。

你已练习了以下关键命令和概念:

  • 使用 msfconsole 启动 Metasploit 控制台。
  • 使用 search 命令查找模块。
  • 使用 use 命令选择要使用的模块。
  • 使用 set 命令配置模块选项,例如 RHOSTS
  • 使用 show options 验证模块配置。
  • 使用 run 命令执行模块以完成其任务。

这种搜索、选择、配置和运行的过程适用于 Metasploit 中的数千个模块,使其成为渗透测试和安全分析的基础技术。