Metasploit 控制台导航基础

LinuxBeginner
立即练习

介绍

欢迎来到 Metasploit 的世界!Metasploit Framework 是安全专业人员用于渗透测试和漏洞评估的强大工具。其核心是 Metasploit Console,即 msfconsole,它是一个交互式的命令行界面,为你提供了访问框架中大量模块(modules)、漏洞利用(exploits)和载荷(payloads)的途径。

在这个 Lab 中,你将学习用于导航 msfconsole 的基本命令。掌握这些基础知识是有效使用 Metasploit 的第一步。我们将介绍如何获取帮助、使用工作区(workspaces)管理项目、搜索模块、查看模块的详细信息以及正确退出控制台。

让我们通过启动控制台开始吧。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 95%。获得了学习者 100% 的好评率。

使用 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

现在,如果你再次列出工作区,你将看到 defaultmyproject,其中 myproject 是活动的。

workspace
  default
* myproject

所有后续操作,例如扫描主机或收集数据,现在都将保存在 myproject 工作区内。

在这一步,你将学习如何使用 search 命令来查找模块(modules)。Metasploit Framework 包含数千个模块,它们是你将用于执行操作的核心组件。这些包括漏洞利用(exploits)、辅助扫描器(auxiliary scanners)、载荷(payloads)等等。search 命令对于找到完成任务所需的正确工具至关重要。

你可以根据关键词搜索模块。例如,让我们搜索与 smb (Server Message Block) 相关的模块,这是一个常见的网络协议。

search smb

输出将是一个很长的匹配模块列表。结果以表格形式显示,包含几列:

  • #: 结果的索引编号。
  • Name: 模块的完整路径和名称。
  • Disclosure Date: 漏洞公开披露的日期。
  • Rank: 漏洞利用的可靠性,范围从 lowexcellent
  • 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
   ...

你可以使用 typeplatformname 等关键词来精炼你的搜索。例如,要仅查找与 smb 相关的 windows 平台的 exploit 模块,你可以使用以下命令:

search type:exploit platform:windows smb

这将为你提供一个更集中的结果列表,使你更容易找到所需的特定漏洞利用。

使用 info 命令显示模块信息

在这一步,你将学习如何使用 useinfo 命令来获取关于特定模块的详细信息。在使用 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 工作的基础。掌握了这些知识后,你现在就可以探索更高级的主题,例如配置和运行模块。