引言
Metasploit Framework 是一个强大的开源工具,安全专业人员使用它进行渗透测试、漏洞利用开发和漏洞研究。它的主要接口是 Metasploit Console,或称 msfconsole,这是一个命令行接口,可以高效地访问框架的所有功能。
在本实验中,你将学习启动和导航 msfconsole 的基本但至关重要的技能。我们将涵盖启动必要的后台服务、启动控制台、探索其界面、使用帮助系统以及优雅地退出。掌握这些基础知识是有效使用 Metasploit 进行安全评估的第一步。
启动所需的 PostgreSQL 服务
在启动 Metasploit 之前,最好先启动 PostgreSQL 数据库服务。Metasploit 使用此数据库来存储有关你的项目、主机、已发现的漏洞以及收集到的证据(loot)的信息。虽然 msfconsole 可以在没有数据库的情况下运行,但将其连接到数据库可以启用其许多强大的数据管理功能。
在此步骤中,你将启动 PostgreSQL 服务并验证其是否正常运行。我们将使用 service 命令,因为此环境不支持 systemctl。
首先,打开一个终端并使用以下命令启动 PostgreSQL 服务。你需要使用 sudo,因为管理系统服务需要管理员权限。
sudo service postgresql start
你应该会看到指示服务正在启动的输出:
* Starting PostgreSQL 14 database server [ OK ]
接下来,为了确认服务已成功启动,你可以检查其状态:
sudo service postgresql status
成功启动将显示服务已在线:
14/main (port 5432): online
现在数据库正在运行,你已准备好启动 Metasploit 控制台。
使用 msfconsole 命令启动 Metasploit 控制台
在数据库服务运行后,你现在可以启动 Metasploit 的主接口 msfconsole。此命令会初始化框架,加载所有模块(exploits、payloads、auxiliary 等),并连接到数据库。
在此步骤中,你将在终端中执行 msfconsole 命令。首次启动可能需要一些时间,因为它会设置环境。
在终端中输入以下命令并按 Enter:
msfconsole
短暂的加载过程后,你将看到一个随机选择的欢迎横幅(ASCII 艺术)和 msfconsole 命令提示符。提示符通常显示为 msf6 >,其中 6 表示 Metasploit Framework 的版本。
`s`
`h`
`o`
`y`
`s`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o` `o` `o` `o`
`y` `y` `y` `y` `y` `y` `y`
`s` `s` `s` `s` `s` `s`
`o` `o` `o` `o` `o`
`y` `y` `y` `y`
`s` `s` `s`
`o` `o`
`y`
=[ metasploit v6.x.x-dev-xxxxxxxx ]
+ -- --=[ 23xx exploits - 12xx auxiliary - 4xx post ]
+ -- --=[ 14xx payloads - 4x encoders - 1x nops ]
+ -- --=[ 9 evasion ]
Metasploit tip: View advanced options for a module by using
advanced
msf6 >
你现在已进入 Metasploit 控制台,可以开始使用其命令了。
探索 msfconsole 欢迎横幅和版本信息
现在你已进入 msfconsole,让我们花点时间看看展示的信息。欢迎横幅除了展示一些富有创意的 ASCII 艺术外,还提供了框架功能的高度概括。它会告诉你可用的 exploits、auxiliary 模块、payloads 等的数量。
横幅还会显示 Metasploit 的版本。但是,如果你在控制台中工作时需要随时检查版本,可以使用 version 命令。
在 msf6 > 提示符下,输入 version 命令并按 Enter:
version
输出将显示你当前运行的 Metasploit Framework 和 Console 库的具体版本。
msf6 > version
Framework: 6.x.x-dev-xxxxxxxx
Console : 6.x.x-dev-xxxxxxxx
此命令对于验证你的安装并确保你运行的是特定任务或教程所需的版本非常有用。
使用 help 命令列出可用命令
msfconsole 拥有大量的命令,不可能全部记住。内置的 help 命令是你导航控制台最有价值的工具。它提供了所有可用命令的全面列表,并按功能分组。
在此步骤中,你将使用 help 命令来探索可用的选项。
在 msf6 > 提示符下,输入 help 并按 Enter:
help
控制台将显示一个长长的命令列表。下面是你将看到的输出的截断示例:
msf6 > help
Core Commands
=============
Command Description
------- -----------
? Help menu
banner Display an awesome metasploit banner
cd Change the current working directory
color Toggle color
connect Communicate with a host
exit Exit the console
...
Module Commands
===============
Command Description
------- -----------
advanced Displays advanced options for a module
back Move back from the current context
info Displays information about a module
load Load a framework plugin
...
花点时间滚动浏览列表,感受一下不同类型的可用命令。你也可以通过输入 help 后跟命令名来获取特定命令的帮助。例如,help search 将为你提供有关如何使用 search 命令的详细信息。
使用 exit 命令退出 msfconsole
一旦你在 Metasploit Framework 中完成了工作,正确退出控制台非常重要。这可以确保任何正在运行的作业被干净地终止,并将你返回到标准的命令行 shell。
离开 msfconsole 的命令简单直观。
在 msf6 > 提示符下,输入 exit 并按 Enter:
exit
控制台将执行一个简短的关闭序列,然后将你返回到 ~/project 目录中的常规终端提示符。
msf6 > exit
labex@instance:~/project$
你现在已经成功启动、导航并退出了 Metasploit 控制台。
总结
恭喜!在本实验中,你已经学习了使用 Metasploit Framework 的基本第一步。
你成功地:
- 启动了 PostgreSQL 数据库服务,这对于 Metasploit 中的数据管理至关重要。
- 启动了
msfconsole界面。 - 查看了欢迎横幅并使用了
version命令。 - 使用
help命令来发现可用的功能。 - 使用
exit命令干净地退出了控制台。
这些基本技能是你未来在 Metasploit 中进行所有工作的基础。你现在已经准备好学习更高级的主题,例如搜索模块、配置 exploit 和发起攻击。


