介绍
欢迎来到 Metasploit 的世界!Metasploit Framework 是一个极其强大的开源工具,被网络安全专业人员用于开发、测试和执行漏洞利用(exploit)。它包含一个庞大的模块数据库,这些模块是可用于各种渗透测试任务的代码片段。这些模块包括漏洞利用(exploits)、载荷(payloads)和辅助工具(auxiliary tools)。
在这个 Lab 中,你将学习使用 Metasploit 模块的基本工作流程。你将从启动 Metasploit 控制台开始,然后学习如何搜索特定模块、选择一个模块使用,以及配置其基本选项。这是任何有抱负的渗透测试人员所需的基础技能集。
使用 search type:exploit 搜索漏洞利用
在这一步,你将学习如何使用 search 命令在 Metasploit Framework 中查找模块。search 命令是你浏览数千个可用模块的主要工具。
首先,让我们启动 Metasploit Framework 控制台。这可能需要一点时间启动。
msfconsole
你将看到一个横幅(banner)和 Metasploit 命令提示符,它看起来像 msf >。本 Lab 中后续的所有命令都将在这个控制台中运行。
为了使你的搜索更有效,你可以使用关键字来过滤结果。最常用的关键字之一是 type,它允许你指定要查找的模块类型(例如 exploit、payload、auxiliary)。
让我们搜索所有被归类为漏洞利用(exploits)的模块。在 Metasploit 控制台中输入以下命令:
search type:exploit
你将看到一个很长的可用漏洞利用列表。输出按以下列组织:
- #: 搜索结果的索引编号。
- Name: 模块的完整路径和名称。
- Disclosure Date: 漏洞公开披露的日期。
- Rank: 漏洞利用的可靠性,范围从
low到excellent。 - Check: 指示模块是否可以在不利用目标的情况下检查目标是否存在漏洞。
- Description: 模块功能的简要概述。
msf > search type:exploit
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/local/adobe_sandbox_esc 2011-04-15 excellent No Adobe Reader/Acrobat "Movie" Annotation Sandbox Escape
1 exploit/windows/fileformat/acdsee_pica 2011-01-12 good No ACDSee PicaView 2.0 EML File Parsing Buffer Overflow
... (output truncated) ...
这让你对可用的漏洞利用有了一个大致的了解,但列表太长,不便于实际操作。在下一步中,我们将缩小搜索范围。
使用 search platform:linux 按平台过滤搜索结果
在这一步,你将学习如何精炼你的搜索结果。上一次搜索返回了针对许多不同操作系统的数千个漏洞利用。要找到相关的漏洞利用,你需要添加更多的过滤器(filter)。
platform 关键字允许你根据目标操作系统来过滤模块,例如 windows、linux、osx 或 android。你可以在单个 search 命令中组合多个关键字,以创建高度精确的查询。
让我们搜索专门为 Linux 平台设计的漏洞利用。
search type:exploit platform:linux
输出现在将是一个更短、更易于管理的、与 Linux 系统相关的漏洞利用列表。
msf > search type:exploit platform:linux
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/linux/http/advantech_switch_bash_env_exec 2014-09-24 excellent Yes Advantech Switch Bash Environment Variable Code Injection (Shellshock)
1 exploit/linux/http/airties_login_cgi_bof 2012-01-17 excellent No AirTies login.cgi Buffer Overflow
... (output truncated) ...
通过组合关键字,你可以快速定位到针对特定目标所需的精确模块。
使用 Exploit 模块:use exploit/multi/handler
在这一步,你将选择一个要使用的模块。在使用 search 命令找到模块后,你需要使用 use 命令将其加载到框架的上下文中。
use 命令以模块的完整名称作为其参数。你可以直接从搜索结果中复制该名称。
对于本实验,我们将选择一个特殊且非常常见的模块:exploit/multi/handler。这个模块不是针对特定漏洞的典型漏洞利用。相反,它是一个通用的监听器(listener),用于等待已在目标机器上执行的 payload 发来的传入连接。它是捕获反向 Shell(reverse shell)的基本工具。
使用以下命令加载 handler 模块:
use exploit/multi/handler
运行该命令后,你会注意到你的命令提示符发生了变化。
msf > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf exploit(multi/handler) >
提示符 msf exploit(multi/handler) > 表明你现在处于 exploit/multi/handler 模块的上下文中。你现在发出的任何命令,例如设置选项(options),都将应用于这个特定的模块。
使用 show options 查看模块选项
在这一步,你将学习如何查看所选模块的可配置参数。每个模块都有一组选项,在运行之前你可能需要配置它们。这些选项定义了模块的行为,例如目标的 IP 地址或监听的端口。
show options 命令会显示当前加载模块的所有可用选项。
现在你已进入 exploit/multi/handler 的上下文,运行以下命令:
show options
输出将列出模块的选项,以及它们当前的设置和描述。
msf exploit(multi/handler) > show options
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (generic/shell_reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Wildcard Target
请密切关注 Required(必需)列。任何标记为 yes 的选项都必须设置,然后你才能运行该模块。对于 multi/handler,LHOST(监听主机)和 LPORT(监听端口)是必需的。LHOST 是你的机器将监听的 IP 地址,而 LPORT 是端口号。
使用 set LHOST 设置基本选项
在这一步,你将学习如何使用 set 命令配置模块的选项。此命令允许你为使用 show options 看到的参数赋值。
基本语法是 set <OPTION_NAME> <VALUE>。
对于 multi/handler 模块,最需要配置的选项是 LHOST,它代表“监听主机”(Listen Host)。这指定了 handler 将监听哪个 IP 地址以接收来自 payload 的传入连接。
让我们将 LHOST 选项设置为回环地址(loopback address)127.0.0.1,这样 handler 就会在本地机器上监听。
set LHOST 127.0.0.1
Metasploit 将确认更改:
LHOST => 127.0.0.1
你可以通过再次运行 show options 来验证该选项是否已更新。你将看到 127.0.0.1 列在 LHOST 的 Current Setting(当前设置)中。这个简单的 set 命令就是你在发起攻击前配置所有模块的方式。
要退出 Metasploit 控制台,你可以输入 exit。
exit
总结
恭喜你完成了这个实验(Lab)!你已经学习了使用 Metasploit Framework 的基本初始步骤。
你现在知道如何:
- 启动 Metasploit 控制台 (
msfconsole)。 - 使用
search命令搜索模块,并通过type(类型)和platform(平台)进行过滤。 - 使用
use命令选择一个特定的模块。 - 使用
show options查看模块的可配置参数。 - 使用
set命令配置模块的参数(例如,为监听器设置 LHOST)。
这些命令构成了你将在 Metasploit 中执行的任何任务的核心工作流程。掌握它们是有效使用这个强大的渗透测试工具的关键。



