Metasploit
约 2151 字大约 7 分钟
2025-06-19
什么是 Metasploit?
Metasploit不仅仅是一个工具,而是一个完整的框架。它是一个基于 Ruby 的模块化渗透测试平台,支持编写、测试和执行漏洞利用代码。它灵活且极其强大,拥有大量工具来执行各种简单和复杂的任务。
Metasploit 有三个版本可用。
- Metasploit 专业版
- Metasploit 社区
- Metasploit框架
对于本文,我们将使用 Metasploit Framework 版本。
Metasploit 的各个组件
1.辅助设备
Metasploit 的辅助模块让其使用起来更加便捷。Metasploit 辅助模块实际上是一段为执行特定任务而编写的代码。例如,它可以用于检查我们是否可以匿名访问 FTP 服务器,或者检查 Web 服务器是否容易受到心脏出血攻击 (heart bleed attack)。事实上,Metasploit 拥有超过 1,000 个辅助模块,可以执行各种任务,例如扫描、模糊测试、嗅探等等。这些辅助模块分为 19 个类别。以下是 Metasploit 中可用的辅助模块类别:
2. 有效载荷
您在上文中已经了解到,漏洞利用代码是一段用于攻击易受攻击组件的代码。漏洞利用代码可能成功运行,但一旦利用代码成功通过有效载荷定义,您需要做什么呢?简单来说,有效载荷可以定义为漏洞利用完全执行后需要执行的操作。Metasploit 大约有 42 种有效载荷,可分为以下几类:
3. 漏洞利用
漏洞利用是 Metasploit 极其重要的组成部分。该框架的核心目标是提供各种漏洞利用代码。漏洞利用代码是指利用软件漏洞或安全缺陷的代码,您可以在目标系统上使用此代码来利用目标系统中存在的漏洞。Metasploit 拥有超过 1,800 个漏洞利用代码,可分为 17 类。以下是 Metasploit 中可用的漏洞利用类别:
4.编码器
Metasploit 可帮助您生成各种各样的有效载荷,您可以通过多种方式将其发送到目标,以执行任何任务。在此过程中,您的有效载荷很可能会被目标系统上的任何安全软件或防病毒软件检测到。这时,编码器就派上用场了。编码器使用各种算法和技术来掩盖有效载荷,使其无法被防病毒软件检测到。Metasploit 拥有大约 40 个编码器,可分为十大类,如下所示:
5. 开发后活动(Post)
一旦您使用任何可用的漏洞(这里我们讨论的是基本访问权限)获得目标系统的访问权限,您就可以利用后期模块进一步渗透目标系统。这些操作通常在 Cyber Events 中以完整权限完成,并且必须以合乎道德的方式进行。借助这些模块,您可以执行以下后期渗透活动:
- 将用户权限提升为管理员或根用户。
- 检索系统凭证
- 窃取cookie和保存的凭证
- 捕获目标系统上的击键
- 执行自定义 Power Shell 脚本
附加任务: 使访问持久化
Metasploit 拥有大约 300 个后利用模块,可分为以下 11 个类别:
6. 规避: 此模块允许用户生成可规避 Microsoft Windows Defender 的 Windows EXE 文件。该模块使用了多种技术,例如 Shellcode 加密、源代码混淆、Metsam 和反模拟。为了获得最佳效果,用户应始终尝试使用采用更安全通道(例如 HTTPS 或 RC4)的有效载荷,以更好地避免有效载荷网络流量被杀毒软件捕获。
特征:
Metasploit 框架最初只是一套漏洞利用工具。后来,它逐渐演变成一个用于创建有效载荷、漏洞利用和渗透测试的工具。该框架的一些特点如下:
- 它使安全研究人员能够创建有效载荷和漏洞。
- 它提供了超过 592 个有效载荷和 2074 组漏洞利用。
- 它是开源的。
- 使用简单
- 用户友好的 GUI 设置。
- 额外的附加组件。
- 提供绑定 Shell 和反向 Shell。
- 自动删除受感染的系统。
- 研究人员可以轻松地在有效载荷之间进行切换。
- 提供一系列用于对受影响系统进行法医检查的仪器。
- 它提供 MSFconsole、MSF 命令行界面和 Armitage 作为其三个主要界面。
Metasploit框架的安装:
作为一名道德黑客或渗透测试人员,如果您正在运行 Windows 或像Ubuntu这样的普通 Linux 发行版,建议您切换到Kali-Linux 或 Parrot Security OS这样的渗透测试发行版。因为这些工具已经预装在发行版中。我们也可以在虚拟化环境中运行它。但是,如果我们想将 Metasploit 作为单独的工具安装,我们可以在运行Linux、Windows 或 Mac OS X 的系统上轻松完成。
分步安装(基于 Debian 的 Ubuntu Linux 22.04LTS):
步骤1:获取Root权限
在 Ubuntu 上,root 是一个特殊的用户帐户,可以访问所有命令、文件和服务。它是最高权限的帐户,拥有对所有内容的完全访问权限。在任何 Linux 上,我们使用sudo su命令成为 root 或超级用户。运行该命令时,它会要求输入当前帐户密码进行确认。
步骤2:更新和升级系统
我们使用apt-get update命令通过互联网从 Linux 上的源重新同步软件包索引文件。现在,我们运行apt-get update来安装 Ubuntu 系统上当前安装的所有软件包的最新版本。换句话说,就是为您的计算机获取安全更新。我们也可以使用以下语法,用一行代码完成此操作:apt-get 更新 && apt-get 升级
步骤3:安装所需的依赖项
我们需要安装运行 Metasploit 所需的许多依赖项。下面是我们将要运行的安装依赖项的命令:apt install -y ruby ruby-dev build-essential zlib1g zlib1g-dev libpq-dev libpcap-dev libsqlite3-dev
运行上述命令后,输出屏幕将是:
步骤 4:克隆 Metasploit 存储库
我们需要克隆 Metasploit 的 GitHub 仓库,使用git clone命令和仓库链接,然后返回终端,粘贴并运行命令,即可将仓库下载到我们的主目录中。由于仓库很大,包含很多内容,所以克隆过程可能需要一些时间。
**git 克隆 https://github.com/rapid7/metasploit-framework.git**
运行上述命令后,输出屏幕将是:
如果输出屏幕显示 “未找到命令‘git’” ,则我们需要先安装git,然后运行上述命令。要安装 git,请使用:
apt 安装 git
步骤5:安装Ruby的Bundler包管理器
将 Metasploit GitHub 存储库克隆到我们的主目录后,我们需要做的下一件事是安装 Ruby 的 bundler 包管理器,我们可以通过执行以下操作来完成此操作:
gem 安装 bundler
步骤 6:为 Metasploit 安装 Ruby 包
现在我们需要安装 Metasploit 的 ruby 包。首先,使用刚刚克隆到 Metasploit 框架目录的cd命令,进入该目录。
cd metasploit框架
在这个目录中,我们需要完成 Metasploit 其余软件包的安装,我们可以这样做:
捆绑安装
运行上述命令后,输出屏幕将是:
安装完成后,输出屏幕将如下所示
一旦结束,我们只需执行 ./msfconsole 即可启动 Metasploit 框架。
限制:
尽管 Metasploit 包含大量用于识别漏洞、评估漏洞以及创建漏洞利用的工具,但它也像其他工具一样存在某些限制和缺点。其中包括:
- 几乎不支持 GUI。大多数任务应该使用 CLI 完成。
- 必须谨慎对待,否则可能会导致我们自己的系统崩溃。
- 在具有防火墙或防病毒软件的机器上安装 Metasploit 是一项挑战。
- 很难学。