介绍
欢迎来到 Metasploit 的世界!Metasploit Framework 是安全专业人员用于渗透测试和漏洞评估的强大工具。其核心是 Metasploit Console,即 msfconsole,它是一个交互式的命令行界面,为你提供了访问框架中大量模块(modules)、漏洞利用(exploits)和载荷(payloads)的途径。
在这个 Lab 中,你将学习用于导航 msfconsole 的基本命令。掌握这些基础知识是有效使用 Metasploit 的第一步。我们将介绍如何获取帮助、使用工作区(workspaces)管理项目、搜索模块、查看模块的详细信息以及正确退出控制台。
让我们通过启动控制台开始吧。
使用 help 命令探索核心命令
在这一步,你将启动 Metasploit Console 并使用 help 命令来探索可用的命令。当你不确定某个命令的作用或有哪些可用命令时,help 命令是你最有价值的资源。
首先,让我们启动 Metasploit Console。我们将使用 -q (quiet,安静) 标志来跳过启动横幅(banner),以获得更简洁的界面。
在你的终端中执行以下命令:
msfconsole -q
你会注意到命令提示符(prompt)变为了 msf >,这表明你现在已进入 Metasploit Console 内部。
现在,让我们使用 help 命令来查看所有可用命令的列表。
help
你将看到一个很长的命令列表,它们被分类以便于导航。
Core Commands
=============
Command Description
------- -----------
? Help menu
banner Display an awesome metasploit banner
cd Change the current working directory
color Toggle color output
connect Communicate with a host
...
Module Commands
===============
Command Description
------- -----------
advanced Displays advanced options for a module
back Move back from the current context
info Displays information about a module
...
你也可以获取特定命令的详细帮助。例如,要了解更多关于 search 命令的信息,你可以输入 help search。
help search
这将显示 search 命令的语法和选项。
Usage: search [options] <keywords>
Search for modules, plugins, and other framework objects.
OPTIONS:
-h, --help Help banner.
-o <file>, --output <file> Send output to a file in csv format.
-S <string>, --search <string> Search string for row filtering.
-t <type>, --type <type> The type of module to search for (exploit, payload, auxiliary, etc)
...
在进入下一步之前,请随意使用 help 探索其他命令。
使用 workspace 命令查看工作区管理
在这一步,你将学习关于工作区(workspaces)的知识。工作区是你在 Metasploit 中组织工作的一种方式。每个工作区都是一个自包含的环境,用于存储特定渗透任务中关于主机(hosts)、服务(services)、漏洞(vulnerabilities)和战利品(loot)的信息。这对于将不同的渗透测试项目分开管理非常有用。
默认情况下,你处于 default 工作区中。你可以使用 workspace 命令来查看当前和可用的工作区。
workspace
输出将向你展示可用的工作区,星号 * 表示你当前所在的那个。
* default
让我们为我们的项目创建一个新的工作区。我们将其命名为 myproject。-a 标志用于添加一个新的工作区。
workspace -a myproject
Metasploit 将确认创建,并自动切换到新的工作区。
[*] Added workspace: myproject
[*] Workspace: myproject
现在,如果你再次列出工作区,你将看到 default 和 myproject,其中 myproject 是活动的。
workspace
default
* myproject
所有后续操作,例如扫描主机或收集数据,现在都将保存在 myproject 工作区内。
使用 search 命令列出可用模块
在这一步,你将学习如何使用 search 命令来查找模块(modules)。Metasploit Framework 包含数千个模块,它们是你将用于执行操作的核心组件。这些包括漏洞利用(exploits)、辅助扫描器(auxiliary scanners)、载荷(payloads)等等。search 命令对于找到完成任务所需的正确工具至关重要。
你可以根据关键词搜索模块。例如,让我们搜索与 smb (Server Message Block) 相关的模块,这是一个常见的网络协议。
search smb
输出将是一个很长的匹配模块列表。结果以表格形式显示,包含几列:
- #: 结果的索引编号。
- Name: 模块的完整路径和名称。
- Disclosure Date: 漏洞公开披露的日期。
- Rank: 漏洞利用的可靠性,范围从
low到excellent。 - Check: 表示该模块是否具有
check方法来安全地测试漏洞。 - Description: 模块功能的简要概述。
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/admin/smb/impacket/secretsdump 2021-11-09 normal No SMB Secrets Dump
1 auxiliary/admin/smb/psexec_ntdsgrab 2021-11-09 normal No PsExec NTDSGRAB
...
58 exploit/windows/smb/ms17_010_eternalblue 2017-03-14 average Yes MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
...
你可以使用 type、platform、name 等关键词来精炼你的搜索。例如,要仅查找与 smb 相关的 windows 平台的 exploit 模块,你可以使用以下命令:
search type:exploit platform:windows smb
这将为你提供一个更集中的结果列表,使你更容易找到所需的特定漏洞利用。
使用 info 命令显示模块信息
在这一步,你将学习如何使用 use 和 info 命令来获取关于特定模块的详细信息。在使用 search 找到一个有希望的模块后,你需要了解它的作用、它需要的选项(options)以及它影响的目标(targets)。
首先,你需要选择一个要使用的模块。这是通过 use 命令完成的,后面跟上搜索结果中模块的完整名称。让我们选择著名的 eternalblue 漏洞利用。
use exploit/windows/smb/ms17_010_eternalblue
注意你的提示符(prompt)发生了变化。它现在包含了活动模块的名称,表明你处于该模块的上下文中。
msf exploit(windows/smb/ms17_010_eternalblue) >
模块被选中后,你可以使用 info 命令获取其详细信息。
info
该命令会显示模块的全面概述,包括:
- Name(名称)、Module(模块)、Platform(平台)、Arch(架构)
- Privileged: 是否需要特殊权限。
- License(许可证)和 Rank(等级)
- Provided by: 模块的作者。
- Available targets: 它可以针对的特定操作系统或应用程序。
- Basic options: 你需要配置的参数,例如目标 IP 地址(
RHOSTS)。 - Payload information: 它可以传递的载荷类型。
- Description: 对漏洞的详细解释。
- References: 指向公告和文章的链接(CVE、BID 等)。
Name: MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
Module: exploit/windows/smb/ms17_010_eternalblue
Platform: Windows
Arch: x86, x64
Privileged: Yes
License: Metasploit Framework License (BSD)
Rank: Average
...
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 445 yes The target port (TCP)
SMBDomain . no (Optional) The Windows domain to use for authentication
...
在尝试运行任何漏洞利用之前,审查这些信息是至关重要的一步。
使用 exit 命令退出控制台
在最后一步,你将学习如何正确退出 Metasploit 控制台。虽然你可以关闭终端窗口或使用 Ctrl+C,但推荐的离开 msfconsole 的方法是使用 exit 命令。
这可以确保框架能够平稳关闭,停止任何正在运行的作业(jobs),并保存当前状态。
在退出之前,你可以使用 back 命令从模块的上下文中返回到主 msfconsole 提示符。
back
你的提示符将返回到标准的 msf >。
现在,要完全退出控制台,只需输入 exit。
exit
你将看到一个关闭消息,然后你将返回到常规的系统 shell 提示符。
labex:project$
这结束了我们对 Metasploit 控制台导航的基础介绍。
总结
恭喜你!你已成功完成关于 Metasploit 控制台导航基础知识的这个实验(Lab)。
在这个实验中,你学习了如何在 msfconsole 中执行最基本的操作:
- 启动控制台并使用
help命令来发现和了解其他命令。 - 使用
workspace命令来创建和管理独立的环境,从而组织你的项目。 - 使用强大的
search命令及其过滤器来查找任何任务所需的模块。 - 使用
info命令检查模块的详细信息、选项和目标。 - 使用
exit命令正确关闭框架。
这些命令是你未来所有 Metasploit 工作的基础。掌握了这些知识后,你现在就可以探索更高级的主题,例如配置和运行模块。



