《Metasploit渗透测试手册》—第8章8.2节 探索模块结构

8.2 探索模块结构
Metasploit渗透测试手册
理解漏洞利用模块的结构是非常重要的,因为这有助于对不同漏洞利用模块的正确分析。由于Metasploit框架是一个开源项目,其开发依赖于来自研究团体的贡献。来自全球的开发者们将各种漏洞利用代码的概念验证代码转换为Metasploit模块,以便为其他用户使用。读者也可以将新发现漏洞的利用代码转换为Metasploit模块,从而为Metasploit开发贡献力量。还有些时候需要利用不在Metasploit框架中的特定漏洞利用代码。掌握漏洞利用代码模块结构的相关知识,有助于更容易地将漏洞利用代码转换为Metasploit模块。

准备
首先来理解框架中漏洞利用代码的模块结构,其结构与辅助模块结构类似,但多了一些字段,用户可以在 /pentest/exploits/framework3目录中找到漏洞利用模块,下面对MSF中漏洞利用代码的结构进行分析。

怎样实现
上面提到的,漏洞利用代码模块的结构与辅助模块类似,同时又增加了一些特定内容。

require 'msf/core'
   class Metasploit3 < Msf::Exploit::Remote
      Rank = ExcellentRanking
      include Msf::Exploit::Remote::Tcp
      include Msf::Exploit::EXE

漏洞利用代码模块首先在脚本中包含MSF核心库,并声明一个类,该类扩展了与该漏洞利用代码相关的一些属性。在上面的示例中,Metasploit3类扩展了Remote Exploit库,其实该脚本还包含其他一些库,例如TCP。

def initialize(info = {})
      super(update_info(info,
      'Name' =>'',
      'Description')

initialize函数用于对模块中不同的值和内容定义进行初始化,主要包括Name、Description、Author、Version等内容。

register_options(
          [
            Opt::RPORT(7777),
          ], self.class)
      end

该脚本中的一些注册选项用于为该脚本提供一些重要的和默认的值,这些值可以根据用户需要进行更改。目前为止,可以看到其结构与辅助模块非常类似,其差别在于下面要定义的exploit()函数。

def exploit
               connect()
               sock.put(payload.encoded)
               handler()
               disconnect()
          end

上面这一函数是模块漏洞利用代码的主体部分,其中包含了适用于该漏洞利用代码的shellcode,该函数的内容依据漏洞利用代码的不同而变化。远程漏洞利用代码中通常可能包含的一些关键功能在该函数体中有所体现,例如connect()函数用于打开到目标的远程连接,这是一个在Remote::TCP库中定义的函数。攻击载荷也是漏洞利用代码主体的重要组成部分,用于建立目标机器到攻击者机器的反向连接。用户也可以根据实际需要在漏洞利用代码主体部分中定义不同的处理程序。

还可以声明一个漏洞测试函数check(),该函数用于确定目标机器是否存在该漏洞,可以对除攻击载荷之外的所有选项进行验证。

上面是对Metasplot中漏洞利用代码模块的基本介绍,后面章节中会对与框架中漏洞利用代码相关的一些核心概念进行讨论。

怎样工作
上述分析的漏洞利用代码模块结构是Metasploit可以理解的格式。def initialize()函数主要帮助模块定义一些常用的漏洞利用代码选项。类似地,register_options()则被Metasploit用于定义一些不同的参数,或为漏洞利用代码模块的一些参数赋予默认值。这也是模块化体系结构的优势所在。随着本章内容的推进,我们还会介绍到怎样将现有的漏洞利用代码转换为Metasploit模块。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-27 07:58:14

《Metasploit渗透测试手册》—第8章8.2节 探索模块结构的相关文章

《高度安全环境下的高级渗透测试》—第1章1.4节探索BackTrack

1.4 探索BackTrack 恭喜,你现在已经拥有了世界上最强大的渗透工具集,并且已经安装好供你使用了.整本书将致力于介绍BackTrack--Linux平台上最优秀的工具集,该工具集无疑将会为你在渗透测试阶段节省大量的时间. 1.4.1 登录 安装的默认登录信息如下所示: bt login:root bt password:toor 1.4.2 修改默认密码 登录后,我们应该尽快修改默认密码.通过终端输入passwd,将密码替换为例子中的1NewPassWordHere这个密码作为你的安全密

《Metasploit渗透测试手册》—第8章8.1节介绍

第8章 使用漏洞利用代码 Metasploit渗透测试手册 本章讲解下述内容: 探索模块结构: 常用的漏洞利用代码mixins: 使用msfvenom: 将漏洞利用代码转换为Metasploit模块: 移植并测试新的漏洞利用代码模块: 使用Metasploit进行模糊测试: 编写FileZilla FTP模糊测试器. 8.1 介绍 Metasploit渗透测试手册 首先介绍漏洞利用代码.漏洞利用代码(Exploit)是指利用某个软件中的漏洞或bug执行攻击者意图指令的软件代码.数据块或指令序列.

《Metasploit渗透测试手册》—第1章1.1节介绍

第1章 给安全专业人员的Metasploit快速提示 Metasploit渗透测试手册 本章讲解下述内容: 在Windows系统中配置Metasploit 在Ubuntu系统中配置Metasploit: BackTrack 5与Metasploit 终极组合: 在单机上构建渗透测试环境: 在带有SSH连接的虚拟机上构建Metasploit环境: 从界面开始--Metasploit的"Hello World": 在Metasploit框架中建立数据库: 使用数据库存储渗透测试结果: 分析

《Metasploit渗透测试手册》—第8章8.4节使用msfvenom

8.4 使用msfvenomMetasploit渗透测试手册在第4章中,我们曾提及过msfencode和msfpayload.现在简单回顾一下,msfpayload用于从攻击载荷中生成二进制文件,msfencode则用于使用不同编码技术对该二进制文件进行编码.现在要讨论的另一个Metasploit工具则结合了二者的功能,并在生成可隐蔽执行漏洞利用代码方面发挥重要作用. 准备要使用msfvenom,首先启动终端提示符窗口,键入msfvenom –h 命令. 怎样实现观察有哪些不同的可用选项. ro

《Metasploit渗透测试手册》—第3章3.1节介绍

第3章 操作系统漏洞评估与利用Metasploit渗透测试手册本章讲解下述内容: Exploit用法快速提示: 在Windows XP SP2上进行渗透测试: 绑定远程访问目标机器的shell: 在Windows 2003 Server上进行渗透测试: Windows 7/Server 2008 R2客户端无限循环漏洞: 对Linux(Ubuntu)机器进行攻击渗透: 理解Windows DLL注入漏洞. 3.1 介绍Metasploit渗透测试手册上章着重介绍了对目标机器的信息收集,包括目标I

《Metasploit渗透测试手册》—第1章1.8节在Metasploit框架中建立数据库

1.8 在Metasploit框架中建立数据库 Metasploit渗透测试手册 Metasploit的重要特点是包括用于存储渗透测试结果的数据库.渗透测试涉及大量信息,并且持续数天,因此存储中间结果是必要的.因此,好的渗透测试工具应该正确地整合数据库,以便快速高效地存储结果. 准备 默认情况下,Metasploit将自带的PostgreSQL作为基础数据库.在BackTrack上,还有另外一种选择,也就是MySQL数据库.用户可以使用这两种数据库中的任一种.我们先来看一下PostgreSQL数

《Metasploit渗透测试手册》—第8章8.3节常用的漏洞利用代码mixins

8.3 常用的漏洞利用代码mixins Metasploit渗透测试手册 Mixins是Ruby语言中应用广泛的一种机制,其作用是将一些功能放置到模块中,并使得Ruby这种单继承语言具备多继承的能力.在漏洞利用代码模块中使用mixins,有助于调用该漏洞利用代码所需的不同函数.在本节中,我们将学习一些重要的Metasploit exploit mixins. 怎样实现 下面快速浏览一些常用的exploit mixins,然后在现有的漏洞利用代码模块中了解其实现机理. Exploit::Remot

《Metasploit渗透测试手册》—第8章8.6节移植并测试新的漏洞利用代码模块

8.6 移植并测试新的漏洞利用代码模块 Metasploit渗透测试手册 在上节中学习了怎样使用可用的概念验证代码开发完整的Metasploit模块,本节中将把该模块保存到合适的位置,并测试其是否正常运转. 准备 了解漏洞利用代码模块要存储的文件夹位置是非常重要的,有助于追踪不同模块所在位置,同时也有助于Metasploit框架理解模块的基本用法.完整的模块脚本构建完成之后,在合适的位置将其保存. 怎样实现 由于上面开发的是漏洞利用代码模块,针对的目标是Windows操作系统,影响的是特定的文件

《Metasploit渗透测试手册》—第3章3.4节绑定远程访问目标机器的shell

3.4 绑定远程访问目标机器的shell Metasploit渗透测试手册 在前面内容中,分析了怎样对Windows SP2进行攻击渗透,并在其上添加新的用户账号,但是在执行该漏洞利用代码之后,连接也终止了.在本节中,将实现向目标机器绑定shell,以便建立与目标机器的远程连接并对其进行远程控制.工作过程和前面讲过的类似,使用不同的攻击载荷,执行后将在目标机器上打开远程连接shell. 准备 从启动msfconsole开始,目标与在Windows XP SP2上进行渗透测试的目标相同,使用的漏洞