第三期_Metasploit 介绍《Metasploit Unleashed Simplified Chinese version(Metasploit官方文档教程中文版)》

翻译者说明1:本文为Metasploit Unleashed中文版翻译。原文链接:https://www.offensive-security.com/metasploit-unleashed/

翻译者说明2:为减轻翻译负担采用了机器翻译,翻译者从中人工剔除了机翻错误或歧义的问题,但难免会存在小问题,请读者见谅。如发现文章翻译存在问题,可在文章下方评论留言。

翻译者说明3:如果你喜欢这篇翻译,请给关注一下我并给文章点个赞,你的支持是给我工作的最大鼓励。

翻译者说明4:其他章节一并整合在专栏中,如有兴趣可关注专栏了解更多内容。

三、介绍

1. METASPLOIT UNLEASHED 的需求

准备您的 Metasploit 实验室环境

在学习如何使用 Metasploit 框架之前,我们首先需要确保我们的设置将满足或超过以下各节中概述的系统要求。花时间正确准备您的Metasploit实验室环境将有助于在课程后期出现之前消除许多问题。我们强烈建议使用能够运行多个系统的系统虚拟机以托管您的实验室。
在这里插入图片描述

2. METASPLOIT UNLEASHED 的硬件需求

下面列出的所有值都是估计值或建议值。在某些情况下,你可以逃脱更少的惩罚,但要注意,表现会受到影响,导致学习体验不那么理想。

硬盘空间

主机上至少需要有 10 GB 的可用存储空间。由于我们使用的是具有大文件大小的虚拟机,这意味着我们无法使用FAT32分区,因为该文件系统不支持大文件,因此请确保选择NTFS,ext3或其他一些文件系统格式。建议所需的空间量为 30 GB。

如果您决定在完成课程的过程中创建虚拟机的克隆或快照,这些克隆或快照也会占用系统上的宝贵空间。保持警惕,不要害怕根据需要回收空间。

可用内存

未能为主机和客户机操作系统提供足够的内存最终将导致系统故障和/或导致无法启动虚拟机。主机操作系统将需要 RAM,以及为每个虚拟机专用的 RAM 量。使用以下指南来帮助确定您的情况所需的RAM量。

  • Linux “HOST” 最低内存要求:1 GB 系统内存,实际上为 2 GB 或更大。
  • Kali “GUEST”最低内存要求:至少1 GB的RAM(建议使用2 GB)//多多益善!实际上为 2 GB 或更大,具有等值的 SWAP 文件。
  • Metasploitable “GUEST”最低内存要求:至少256 MB的RAM(建议使用512 MB)//多多益善!
  • (可选)Per Windows “GUEST”最低内存要求:至少256 MB的RAM(建议使用1 GB)//多多益善!实际上为 1 GB 或更大,页面文件具有相等值。

处理器

为确保获得最佳体验,我们建议使用 64 位四核或更高版本的 CPU。VMware Player 的最低要求是 400MHz 或更快的处理器(建议使用 500MHz),但这些速度不足以满足本课程的目的。您在实验室中可以投入的马力越多越好。

互联网可访问性

设置实验室需要下载一些大型虚拟机,因此需要具有良好的高速连接才能执行此操作。如果选择对虚拟机使用"桥接"网络,并且网络上没有 DHCP 服务器,则必须为来宾 VM 分配静态 IP 地址。

3. METASPLOIT UNLEASHED 的软件需求

在进入Metasploit框架之前,我们需要有一个攻击机器(Kali Linux)和一个受害机器(metasploitable 2)以及一个虚拟机监控程序,以便在安全和僻静的网络环境中运行。

虚拟机管理程序

我们推荐的虚拟机管理程序,与 Kali 和 metasploitable 的最佳开箱即用兼容性是VMware Player.虽然VMware Player是"免费的",但您必须注册才能下载它,如果您还没有帐户,虚拟化应用程序和设备非常值得注册。您也可以使用VMware Workstation或VMware Fusion但这些都不是免费的。

在涉及要使用哪个虚拟机管理程序时,还有其他选项可用。除了 VMware 之外,另外两个常用的虚拟机管理程序是VirtualBoxKVM但这里没有涵盖它们。有关安装 Kali Linux 的说明,请访问 Kali Training site.

KALI LINUX

Kali Linux是一个高级渗透测试和安全审核 Linux 发行版,将在整个课程中使用。Kali Linux预装了Metasploit以及许多其他安全工具,您可以针对受害者机器进行试用。您可以在以下位置下载最新版本的 Kali:
http://www.kali.org/downloads/
下载 Kali 后,您可以通过在终端中运行 apt update && apt upgrade,将 Metasploit 更新到存储库中的最新版本。

Metasploitable

在学习如何使用利用框架时,您遇到的问题之一是尝试查找和配置要扫描和攻击的目标。幸运的是,Metasploit团队意识到了这一点,并发布了一个名为"Metasploitable"的易受攻击的VMware虚拟机。

Metasploitable 是一个故意容易受到攻击的 Linux 虚拟机,可用于执行安全培训、测试安全工具和练习常见的渗透测试技术。该虚拟机将在任何最近的VMware产品和其他可视化技术(如VirtualBox)上运行。您可以下载的图像文件Metasploitable 2 from SourceForge

切勿将Metasploitable公开给不受信任的网络,使用NAT或仅主机模式!

下载 Metasploitable VM 后,解压缩 zip 文件,使用您选择的 VMware 产品打开 .vmx 文件,然后将其打开电源。一小段时间后,系统将启动并准备执行操作。默认登录名和密码为 msfadmin:msfadmin
在这里插入图片描述
有关 VM 配置的详细信息,请参阅Metasploitable 2 可利用性指南在Rapid7网站上,但要小心…其中有剧透。

要联系Metasploit的开发人员,请发送电子邮件至msfdev [a] metasploit [period] com

Windows

微软已经提供了许多虚拟机,可以下载这些虚拟机来测试Microsoft Edge和不同版本的Internet Explorer。在使用 Metasploit 中提供的一些漏洞和工具时,我们将能够使用这些 VM。可以从以下 URL 下载 VM:

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
一旦您满足了上述系统要求,您就可以毫无困难地运行Metasploit Unleashed课程中的任何教程。

4. METASPLOIT 的结构

在这里插入图片描述
Metasploit是用Ruby编写的,并且已经开发了很多年。乍一看,项目的规模可能令人生畏,但您很少需要深入研究其体系结构。在接下来的几节中,我们将提供Metasploit如何组合在一起的高级概述,这对于熟悉它非常有价值。

a)METASPLOIT 文件系统和库

了解 METASPLOIT 架构

通过了解Metasploit架构,人们可以更容易地理解它。在学习如何使用Metasploit时,花一些时间让自己熟悉它的文件系统和库。在 Kali Linux 中,Metasploit 在 metasploit-framework 包中提供,并安装在 /usr/share/metasploit-framework 目录中,其顶层如下所示。
在这里插入图片描述

Metasploit 文件系统

MSF 文件系统以直观的方式布局,并按目录进行组织。下面简要概述了一些更重要的目录。

data(数据目录)

data目录包含 Metasploit 用于存储某些漏洞、词列表、图像等所需的二进制文件的可编辑文件。

root@kali:~# ls /usr/share/metasploit-framework/data/
cpuinfo              ipwn           meterpreter  snmp            webcam
eicar.com            isight.bundle  mime.yml     sounds          wmap
eicar.txt            john.conf      msfcrawler   SqlClrPayload   wordlists
emailer_config.yaml  lab            passivex     templates
exploits             logos          php          vncdll.x64.dll
flash_detector       markdown_doc   post         vncdll.x86.dll
documentation(文档目录)

顾名思义,documentation目录包含框架的可用文档。

root@kali:~# ls /usr/share/metasploit-framework/documentation/
changelog.Debian.gz  CONTRIBUTING.md.gz  developers_guide.pdf.gz  README.md
CODE_OF_CONDUCT.md   copyright           modules
lib

lib目录包含框架代码库的"肉"。

root@kali:~# ls /usr/share/metasploit-framework/lib/
anemone        msfenv.rb        rbmysql.rb  sqlmap
anemone.rb     net              rex         tasks
enumerable.rb  postgres         rex.rb      telephony
metasm         postgres_msf.rb  robots.rb   telephony.rb
metasploit     rabal            snmp        windows_console_color_support.rb
msf            rbmysql          snmp.rb
modules(模块目录)

modules目录中,您可以找到用于漏洞利用的实际 MSF 模块、辅助和后置模块、有效负载、编码器和 nop 生成器。

root@kali:~# ls /usr/share/metasploit-framework/modules/
auxiliary  encoders  exploits  nops  payloads  post
plugins(插件目录)

正如您将在本课程后面看到的那样,Metasploit包括许多插件,您将在此目录中找到。

root@kali:~# ls /usr/share/metasploit-framework/plugins/
aggregator.rb      ips_filter.rb  openvas.rb           sounds.rb
alias.rb           komand.rb      pcap_log.rb          sqlmap.rb
auto_add_route.rb  lab.rb         request.rb           thread.rb
beholder.rb        libnotify.rb   rssfeed.rb           token_adduser.rb
db_credcollect.rb  msfd.rb        sample.rb            token_hunter.rb
db_tracker.rb      msgrpc.rb      session_notifier.rb  wiki.rb
event_tester.rb    nessus.rb      session_tagger.rb    wmap.rb
ffautoregen.rb     nexpose.rb     socket_logger.rb
scripts(脚本目录)

scripts目录包含 Meterpreter 和其他脚本。

root@kali:~# ls /usr/share/metasploit-framework/scripts/
meterpreter  ps  resource  shell
tools(工具目录)

tools目录具有各种有用的命令行实用程序。

root@kali:~# ls /usr/share/metasploit-framework/tools/
context  dev  exploit  hardware  memdump  modules  password  recon
Metasploit 动态链接库

有许多 MSF 库允许我们运行漏洞利用程序,而无需为基本任务(如 HTTP 请求或有效负载编码)编写其他代码。下面概述了一些最重要的库。

REX
  • 大多数任务的基本库
  • 处理套接字、协议、文本转换等
  • SSL, SMB, HTTP, XOR, Base64, Unicode
MSF::CORE
MSF::BASE
  • 提供"‘friendly"的 API
  • 提供简化的 API,以便在框架中使用

    在本课程中,我们将介绍如何直接在Metasploit中使用其他工具。了解事物的存储方式以及与 Metasploit 文件系统的关系将帮助您使用msfconsole和其他 Metasploit 接口。

b)METASPLOIT 模块和位置

几乎所有你与Metasploit的互动都将通过其许多模块进行,它在两个位置寻找这些模块。第一个是 /usr/share/metasploit-framework/modules/ 下的主模块存储,第二个是您将存储自定义模块的位置,位于主目录下 ~/.msf4/modules/

root@kali:~# ls /usr/share/metasploit-framework/modules/
auxiliary  encoders  exploits  nops  payloads  post

所有 Metasploit 模块都根据其用途组织到单独的目录中。下面显示了各种类型的 Metasploit 模块的基本概述。

exploits(漏洞利用模块)

在 Metasploit 框架中,漏洞利用模块被定义为使用有效负载的模块。

root@kali:~# ls /usr/share/metasploit-framework/modules/exploits/
aix        bsdi        firefox  irix       multi    solaris
android    dialup      freebsd  linux      netware  unix
apple_ios  example.rb  hpux     mainframe  osx      windows
auxiliary(辅助模块)

辅助模块包括端口扫描器、模糊测试器、嗅探器等。

root@kali:~# ls /usr/share/metasploit-framework/modules/auxiliary/
admin    client   dos         gather  scanner  spoof  vsploit
analyze  crawler  example.rb  parser  server   sqli
bnat     docx     fuzzers     pdf     sniffer  voip
payloads、encodes、nops(有效负载模块、编码器模块、Nops模块)

有效负载由远程运行的代码组成,而编码器可确保有效负载完好无损地到达目的地。Nops 在各种漏洞利用尝试中保持有效负载大小一致。

root@kali:~# ls /usr/share/metasploit-framework/modules/payloads/
singles  stagers  stages
root@kali:~# ls /usr/share/metasploit-framework/modules/encoders/
cmd  generic  mipsbe  mipsle  php  ppc  ruby  sparc  x64  x86
root@kali:~# ls /usr/share/metasploit-framework/modules/nops/
aarch64  armle  mipsbe  php  ppc  sparc  tty  x64  x86
加载其他模块树

Metasploit 为您提供了在运行时或 msfconsole 启动后加载模块的选项。在运行 msfconsole 时传递 -m 选项以在运行时加载其他模块:

root@kali:~# msfconsole -m ~/secret-modules/

如果需要使用 msfconsole 从中加载其他模块,请使用 loadpath 命令:

msf > loadpath
Usage: loadpath </path/to/modules>

Loads modules from the given directory which should contain subdirectories for
module types, e.g. /path/to/modules/exploits

msf > loadpath /usr/share/metasploit-framework/modules/
Loaded 399 modules:
    399 payloads

c)METASPLOIT对象模型

MSF 体系结构
在 Metasploit 框架中,所有模块都是 Ruby 类。

  • 模块继承自特定于类型的类
  • 特定于类型的类继承自 Msf::Module 类
  • 模块之间有一个共享的通用 API

    有效负载略有不同。
  • 有效负载是在运行时从各种组件创建的
  • 将舞台与舞台粘合在一起

d)METASPLOIT MIXINS 和 插件

快速转向 RUBY
  • 每个类只有一个父级
  • 一个类可能包括许多模块
  • 模块可以添加新方法
  • 模块可以重载旧方法
  • Metasploit 模块继承 Msf::模块,并包含 mixins 来添加功能。
METASPLOIT MIXINS

Mixins很简单,就是Ruby摇滚的原因。

  • Mixins将一个类包含在另一个类中
  • 这与继承既不同又相似
  • Mixins 可以重写类的方法

    Mixins可以添加新功能,并允许模块具有不同的"风格"。
  • 特定于协议(HTTP、SMB)
  • 特定于行为(暴力破解)
  • connect() 由 TCP mixin 实现
  • 然后,connect() 被 FTP、SMB 和其他设备过载

    Mixins可以改变行为。
  • 扫描仪混音过载运行()
  • run_host() 和 run_range() 的扫描程序更改 run()
  • 它根据 THREADS 设置并行调用这些内容
  • BruteForce mixin是相似的
METASPLOIT 插件

插件直接与 API 配合使用。

  • 他们操纵整个框架
  • 插件挂接到事件子系统中
  • 它们可以自动执行手动执行繁琐的特定任务

    插件仅在 msfconsole 中工作。
  • 插件可以添加新的控制台命令
  • 它们扩展了整体框架功能
class MyParent
     def woof
          puts “woof!”
     end
end

class MyClass > MyParent
end

object = MyClass.new
object.woof() => “woof!================================================================

module MyMixin
     def woof
          puts “hijacked the woof method!”
     end
end

class MyBetterClass > MyClass
     include MyMixin
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值