在上一章中,我们学习了 Metasploit 框架的基础知识,并研究了 Metasploit 中可以使用的一些功能。在本章中,我们将重点讨论 Metasploit 框架的 web 界面。该界面确实帮助了对命令行界面(CLI的使用经验较少的用户。从侦察到报告,该接口使我们能够使用单个接口处理渗透测试的所有阶段。在本章中,我们将学习如何安装和使用 Metasploit web 界面。稍后,我们将学习如何使用 web 界面执行侦察和访问 MeterMeter 有效负载。
本章将介绍以下主题:
- Metasploit web 界面简介
- 安装和设置 web 界面
- Metasploit web 界面入门
以下是本章所需的技术要求:
- Metasploit社区版(CE),提供 Metasploit web 界面
- 基于*nix 的系统或基于 Microsoft Windows 的系统
Metasploit web 界面是一个基于浏览器的界面,可轻松访问导航菜单,并允许您更改任务的配置页面。您可以在 Metasploit web 界面的Metasploit Framework(MSF)中执行每一项任务,从使用辅助工具执行发现扫描到弹出流量计。
对于那些喜欢使用图形用户界面(GUI工具进行渗透测试的人,您可以使用 Metasploit web 界面。该 web 界面是 Metasploit CE(免费)、Metasploit Pro(付费)、Metasploit Express(付费)和 Nexpose Ultimate(付费)的一部分。与 Metasploit 付费版本中提供的更高级功能不同,免费 CE 是所有功能中最基本的。
Metasploit web 界面的安装过程相当简单。
You can download the Community Edition at https://www.rapid7.com/products/metasploit/download/community/.
要开始安装过程,您需要填写下载 Metasploit CE 所需的信息。之后,您将被重定向到下载页面,如以下屏幕截图所示:
注意:如果您不想填写表格,可以在打开直接链接下载 Metasploit web 界面 https://www.rapid7.com/products/metasploit/download/community/thank-you 您也可以从 GitHub 上的 Rapid7 存储库下载 https://github.com/rapid7/metasploit-framework/wiki/Downloads-by-Version ,但您将无法获得激活密钥。
要在 Windows 上成功安装,请执行以下步骤:
- 首先,请确保您已禁用系统上的防病毒(AV)和防火墙。AV 通常在 Metasploit CE 中检测并标记某些文件为恶意:
- 此外,如果运行 Windows,请确保将 Metasploit 安装文件夹放入 AV 和防火墙例外列表中。这样,生成的有效载荷将从 AV 中排除:
- 由于 Metasploit CE 也可以通过 web 界面(通过 SSL)访问,请确保为 SSL 证书生成过程提供正确的服务器名称(主机名):
- 安装完成后,您可以检查
C:\metasploit
目录中的所有文件:
- 在开始使用 web 界面之前,需要初始化用户帐户。如果尝试使用主机名而不是本地主机访问 web 服务器,将收到警告消息。要继续,只需按照给出的说明进行操作:
- 要初始化用户帐户,您需要执行
C:\metasploit
目录中可用的createuser
批处理脚本:
- 现在只剩下最后一步了。创建用户后,您将被重定向到激活页面。要激活 CE 实例,您需要获取产品密钥,该密钥可以从注册时使用的注册电子邮件 ID 中检索(这就是注册非常重要的原因,因此您可以通过电子邮件接收激活码):
- 使用电子邮件中的产品密钥并激活 Metasploit CE:
成功激活后,您将被重定向到项目列表页面:
在开始使用 Metasploit web 界面之前,您需要了解界面本身。
Note: The trial key can't be reused and will expire in 14 days.
要在 Linux/Debian 上成功安装,请执行以下步骤:
- 下载 Metasploit CE Linux 安装程序。您需要将安装程序的权限更改为
execute
,这可以通过chmod
命令完成:
- 运行 Linux 安装程序并按照屏幕上显示的说明进行操作。安装完成后,将显示 web 界面的 URI:
- 您需要访问 URI 才能访问 web 界面。默认情况下,URI 为
https://localhost:3790/
:
- 初始化过程和设置完成后(通常需要几分钟),屏幕上将显示一条警告消息。按照屏幕上的说明通过诊断外壳创建用户:
- 在执行诊断 shell 时,将为您的 shell 设置 Metasploit 环境,您可以执行
createuser
脚本。您还可以看到 web 界面,在那里您将找到一个新的用户设置页面。填写用户详细信息以创建帐户:
- 从您的电子邮件 ID 获取产品密钥并激活 CE 以继续:
Note: 32-bit Linux (including Kali) and macOS are not supported.
接下来,让我们开始使用 Metasploit web 界面。
Metasploit web 界面有一个非常易于使用的界面,可以帮助使用 CLI 经验较少的测试人员。在开始测试之前,让我们先了解一下接口。
Metasploit web 界面可分为以下菜单:
- 主菜单
- 项目选项卡栏
- 导航面包屑
- 任务栏
让我们看看这些菜单。
主菜单可以在页面顶部看到。在主菜单中,可以从项目菜单访问项目设置,从帐户菜单访问帐户设置,从管理菜单访问管理任务。
可以从通知中心查看任何警报:
让我们详细了解一下:
- 项目菜单:用于从项目菜单创建、编辑、打开和管理项目。 *** 账户菜单:用于管理您的账户信息,如更改密码、设置时区、联系方式等。* 管理菜单:用于进行任何管理更改,例如更新系统、许可证密钥、编辑用户帐户和配置全局设置。* 通知中心:在通知中心,您会发现所有表示任务已完成或软件更新可用的警报。单击警报将显示一个下拉菜单,其中包含所有项目的最新警报。**
****接下来,我们将查看项目选项卡栏。
项目选项卡栏是位于主菜单正下方的选项卡菜单。可以通过此选项卡菜单管理运行项目、漏洞分析、任何已打开的 MeterMeter/shell 会话、网络钓鱼活动、web 应用测试、模块、凭据、报告、导出和任务的概述:
让我们详细了解一下:
- 概述:显示高级图形信息,如发现的主机和服务数量以及获得的会话和凭据数量。在运行扫描或导入主机之前,这不会显示数据。 *** 分析:此选项卡允许我们将大型网络/主机划分为多个组,这使我们更容易管理和利用它们。* 会话:在会话选项卡中,我们可以看到目标上的活动会话。********* 活动:此选项卡允许我们在一组目标上创建、管理和运行社会工程活动,包括电子邮件、网页、便携文件等。* Web 应用:这是一个专业版功能,允许我们扫描 Web 应用并识别漏洞。*** 模块:此选项卡允许我们搜索可用模块,查看其信息,并在目标上执行它们。* 凭据:此选项卡允许我们添加/编辑或删除通过攻击收集的凭据。* 报告:这也是专业版功能。此选项卡允许我们查看和创建调查结果报告。*** 导出:此选项卡允许我们将凭证等数据导出为多种格式,如 XML 和 ZIP*** 任务:此选项卡允许我们管理工具当前正在运行的任务的状态。************
**接下来我们来看导航面包仓。
您可以使用导航面包屑识别您在项目中的当前位置:
这可以帮助我们更有效地工作。
您可以使用任务栏快速执行列出的任务,如下图所示:
接下来,我们将研究项目创建。
正如 Metasploit 使用工作区来组织收集的数据一样,CE 使用项目来分离数据集。默认情况下,CE 内部有一个默认项目。如果不创建自定义项目,则所做的一切都将保存在此项目下。
每当我们使用 web 界面时,第一个使用的项目就是default
项目。此项目将向我们显示扫描的主机数量、维护的会话以及在default
项目处于活动状态时分配给主机的任务数量。以下屏幕截图显示了标题为default
的所列项目:
接下来,让我们学习如何创建自己的自定义项目。
Metasploit CE 还允许我们创建自己的自定义项目:
- 这可以通过单击“项目”菜单并选择“新建项目”来完成。这将带我们进入如下屏幕截图所示的页面。在此,我们将指定项目详细信息,如项目名称、描述和网络范围:
- 单击“创建项目”按钮后,将转到“项目仪表板”页面。在这里,您将看到不同的部分,显示您迄今为止执行的任务及其结果的摘要:
- 通过回家,你应该能够看到两个项目。一个叫做
default
,另一个叫做Web Exploitation Project
,我们刚刚创建:
接下来,让我们从枚举开始。
现在我们已经创建了项目,让我们从第一步开始——枚举。执行枚举有两种方法:使用 Metasploit 的内置扫描模块,或导入由 Nmap 或 MSF 支持的其他工具完成的扫描。
Metasploit web 界面为我们提供了一些内置选项/模块,我们可以使用这些选项/模块在目标系统上执行枚举。按照以下步骤使用内置选项执行枚举:
- 要使用内置选项,请单击项目仪表板上的扫描按钮,如以下屏幕截图所示:
- 在下一页中,我们输入要扫描的 IP 地址。我们还为扫描定义了高级选项,例如要排除的端口和自定义范围:
- 通过单击“显示高级选项”按钮,可以设置扫描的一些扩展功能:
- 设置好所有内容后,您可以单击启动扫描按钮。该工具将使用指定的选项在后台启动 Nmap 扫描,如以下屏幕截图所示:
- 您可以通过单击项目菜单->[工作区]->主机来查看主机:
如以下屏幕截图所示,已将扫描的主机添加到主机列表中:
- 要查看扫描主机上运行的服务,您可以单击上一步中显示的主机,也可以打开项目菜单->[WORKSPACE]->services:
在这两种情况下,您都可以看到在扫描的主机上运行的服务。但是,不建议您通过 web 界面执行扫描,因为它使用非常旧的 Nmap 版本 4
或者,我们也可以使用第三方工具执行枚举。然后,可以将工具的结果导入 MSF。按照以下步骤导入扫描结果:
- 在通过 Metasploit 执行攻击之前,最好先执行端口扫描和服务枚举。您可以单独使用 Nmap,并使用
-oX
开关以 XML 格式保存扫描结果,而不是使用 Metasploit 的内置端口扫描仪:
- 就像在
msfconsole
中使用的db_import
命令一样,您可以通过单击导入按钮在 Metasploit web 界面中使用相同的功能:
- 单击“导入”按钮,您将被重定向到“导入数据”页面,在该页面中,您可以选择导入数据。
- 您可以从 Nexpose、Sonar(Project Sonar 是 Rapid7 的一个安全研究项目,该项目跨不同的服务和协议进行互联网范围的调查,以深入了解常见漏洞的全球暴露情况)导入数据,并从第三方扫描工具(如 Acunetix、Nessus、Nmap 等)导入受支持的文件。在本例中,我们执行了完整端口扫描,并将 Nmap 结果保存为 XML 格式:
- 作为可选功能,您可以启用自动标记,根据主机的操作系统将主机标记为
os_windows
、os_linux
和os_unknown
。单击“导入数据”时,将导入扫描:
- 您可以返回到“项目概述”菜单以查看更新的项目空间:
- 如前面的屏幕截图所示,添加了一个新主机,其中有 15 个服务正在运行。单击“检测到 15 项服务”超链接,您将看到“服务”页面显示出来。
- 通过单击项目菜单->[工作区]->服务,您可以查看同一页面:
在下一节中,将向您介绍 Metasploit 模块,这些模块将用于进一步枚举和利用目标主机。
注意:以下是可导入的所有受支持的第三方扫描报告:Foundstone Network Inventory XML、Microsoft MBSA SecScan XML、nCircle IP360 XMLv3 和 ASPL、NetSparker XML、Nessus NBE、Nessus XMLV1 和 v2、Qualys Asset XML、Qualys scan XML、Burp Sessions XML、Burp Issues XML、Acuntix XML、AppScan XML、Nmap XML、,视网膜 XML、Amap 日志、Critical Watch VM XML、IP 地址列表、Libpcap 网络捕获、Spiceworks 库存汇总 CSV、和核心影响 XML。
Metasploit 的 CE 中使用的模块与 MSF 中使用的模块相同。根据情况,我们可以使用辅助模块、利用模块或利用后模块。让我们先看一下辅助模块。
在这种情况下,我们有一个 IP 为192.168.2.17
的目标主机。您可以在以下屏幕截图中看到此主机上运行的服务:
从网络渗透测试的角度来看,攻击者肯定会查看端口445/tcp
(SMB)进行攻击,因此让我们使用 SMB 模块:
- 点击项目选项卡栏中的模块选项卡,显示模块页面:
- 对于 SMB,您可以使用 SMB 版本检测辅助模块,可以使用搜索栏搜索该模块:
- 选择模块后,将显示模块选项页面。您可以设置目标地址以及一些其他选项(如果需要):
- 单击 Run Module(如前一屏幕截图所示)将执行该模块,并显示该模块的输出:
- 您可以通过进入项目选项卡栏->分析->备注,确认模块找到的结果:
枚举目标后,可以使用漏洞利用模块。
要使用漏洞利用模块,请执行以下步骤:
- 点击项目选项卡栏上的模块选项卡,搜索
EternalBlue
漏洞。这是一个非常可靠的漏洞,可用于以下情况:
- 从这里,您可以设置目标地址和有效负载选项。一旦执行了利用漏洞攻击,有效负载(比如 MeterMeter)将被注入内存,MeterMeter 外壳将打开:
- 单击 Run Module(运行模块)将启动漏洞利用模块。结果将显示在屏幕上,任务 ID 将分配给任务:
成功利用此漏洞后,您将收到一个关于新打开会话的通知。
成功利用后,将打开一个会话,您将在项目选项卡栏上收到通知:
- 要查看打开的会话,需要点击项目选项卡栏中的会话选项卡:
- 要与任何打开的会话进行交互,只需单击会话[ID],,如上图所示。MSF web 界面支持的会话交互功能可以在以下屏幕截图中看到:
以下是可用于会话交互的选项:
- 收集系统数据:此选项将允许您收集系统证据和敏感数据,如密码、系统信息、屏幕截图等。此功能仅在 Metasploit Pro 版本中可用。
- 虚拟桌面:此选项将注入虚拟网络计算(VNC)DLL,并在给定端口上启动 VNC 服务:
您可以通过以下端口与目标系统上运行的桌面进行交互:
Note: The user will be notified of incoming VNC connections.
- 访问文件系统:使用此选项,您可以浏览文件系统。您甚至可以上载、下载和删除文件:
- 搜索文件系统:如果要搜索特定文件或执行通配符搜索,可以使用此选项:
- 命令 Shell:如果您想访问 MeterMeter 命令 Shell,可以点击此按钮打开命令 Shell:
您可以在给定的输入框中执行命令。结果将显示如下:
此窗口仅支持 MeterMeter 命令。可以使用shell
命令运行系统命令:
- 创建代理透视:创建代理透视与添加透视路由相同:
如果要连接到内部网络进行进一步利用,可以使用此选项:
- 创建 VPN Pivot:此选项将允许您在受损机器中创建加密的第 2 层隧道,然后通过该目标机器路由任何网络流量。这将授予您完全的网络访问权限,就像您在本地网络上一样,而无需外围防火墙来阻止您的流量。
- 更改传输:要更改会话的传输机制,可以使用此选项,如下图所示:
首先,您需要为特定的传输启动一个处理程序;否则,该过程将失败。
- 终止会话:一旦使用此选项,会话将被终止。要与会话交互,您必须再次开始利用过程。
接下来,让我们看一下 web 界面中可用的利用后模块。
对于后期开发,您可以使用界面中可用的后期开发模块,如以下屏幕截图所示:
- 对于前面屏幕截图中显示的目标,让我们使用
hashdump
后期开发模块。要使用此模块,您只需检查需要为哪个会话执行该模块:
- 点击运行模块执行
hashdump
模块。此模块将从 SAM 数据库转储 NTLM 哈希。新任务 ID 将分配给此模块。您可以在任务栏中检查任务:
- 可在项目选项卡栏的凭证菜单中查看提取的哈希:
根据具体情况,您可以使用不同的利用后模块
在本章中,我们讨论了 MSF 的 web 界面。我们首先安装 Metasploit 并设置其配置。然后,我们继续讨论模块,例如创建项目和从其他工具导入扫描结果。之后,在了解 Metasploit web 界面中可用的开发后模块之前,我们查看了辅助工具和漏洞。
在下一章中,我们将学习如何使用 Metasploit 对不同类型的目标、协议和端口执行侦察。
-
Metasploit web 界面具有哪些功能?
-
在我的组织中,我必须在使用的任何 web 服务器上使用我公司的 SSL 证书。我可以为 Metasploit web 界面提供自定义 SSL 证书吗?
-
哪些 web 浏览器与 Metasploit web 界面兼容?
-
Metasploit 支持 RESTful API 吗?
-
Metasploit web 界面是否支持自定义报告?
有关 web 界面的更多信息,请访问官方文档页面https://metasploit.help.rapid7.com/docs/metasploit-web-interface-overview 。************