介绍
在本实验中,你将学习使用 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: 指示模块运行是否必须设置该选项(
yes或no)。 - Description: 对该选项功能的简要说明。
通过查看此输出,你可以确认必需的 RHOSTS 选项已正确设置为我们的目标。其他必需的选项 RPORT 和 THREADS 已经具有适合我们扫描的默认值。
使用 run 命令执行模块
在此步骤中,你将执行模块以执行扫描。一旦你选择了模块并配置了所有必需的选项,就可以启动它了。
执行辅助模块(auxiliary module)的命令是 run。(对于 exploit 模块,你可以使用 run 或 exploit)。
现在,执行扫描器:
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 中的数千个模块,使其成为渗透测试和安全分析的基础技术。


