开发者社区> 异步社区> 正文

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

简介:
+关注继续查看

本节书摘来自异步社区《Metasploit渗透测试手册》一书中的第8章8.2节 探索模块结构,作者【印度】Abhinav Singh,更多章节内容可以访问云栖社区“异步社区”公众号查看。

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模块。

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于Metasploit的软件渗透测试(五)
基于Metasploit的软件渗透测试(五)
189 0
基于Metasploit的软件渗透测试(四)
基于Metasploit的软件渗透测试(四)
370 0
基于Metasploit的软件渗透测试(三)
基于Metasploit的软件渗透测试(三)
75 0
基于Metasploit的软件渗透测试(二)
基于Metasploit的软件渗透测试(二)
161 0
基于Metasploit的软件渗透测试(一)
基于Metasploit的软件渗透测试(一)
46 0
Metasploit渗透测试(双脉冲星)
Metasploit渗透测试(双脉冲星)
84 0
渗透测试-使用metasploit的evasion模块生成后门木马
渗透测试-使用metasploit的evasion模块生成后门木马
65 0
2022-渗透测试-信息收集-Metasploit(基于FTP协议)
2022-渗透测试-信息收集-Metasploit(基于FTP协议)
57 0
2022-渗透测试-信息收集-Metasploit(基于SSH协议)
2022-渗透测试-信息收集-Metasploit(基于SSH协议)
48 0
2022-渗透测试-信息收集-Metasploit(基于SMB协议)
2022-渗透测试-信息收集-Metasploit(基于SMB协议)
74 0
2022-渗透测试-信息收集-Metasploit(基于SNMP协议)
2022-渗透测试-信息收集-Metasploit(基于SNMP协议)
37 0
2022-渗透测试-信息收集-Metasploit(基于TCP协议)
2022-渗透测试-信息收集-Metasploit(基于TCP协议)
55 0
Metasploit渗透测试(框架介绍、靶机安装、基本使用方法)
Metasploit渗透测试(框架介绍、靶机安装、基本使用方法)
116 0
带你读《从实践中学习Metasploit 5渗透测试》之二:获取漏洞信息
本书基于Metasploit的5.0版,首先系统地讲解了各个平台下的环境构建方式;然后按照渗透测试流程,依次讲解了Metasploit在漏洞获取、项目准备和实施攻击环节的使用方式。 接着借鉴了专业渗透测试规范,专门介绍了如何使用Metasploit的工作区进行渗透测试项目的管理和信息维护;最后基于Windows、Linux和Android系统讲解典型模块的应用方式。
2887 0
带你读《从实践中学习Metasploit 5渗透测试》之一:环境配置
本书基于Metasploit的5.0版,首先系统地讲解了各个平台下的环境构建方式;然后按照渗透测试流程,依次讲解了Metasploit在漏洞获取、项目准备和实施攻击环节的使用方式。 接着借鉴了专业渗透测试规范,专门介绍了如何使用Metasploit的工作区进行渗透测试项目的管理和信息维护;最后基于Windows、Linux和Android系统讲解典型模块的应用方式。
2197 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
视频
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载
相关实验场景
更多