metasploit结构剖析

一,体系框架

 

Metasploit的设计尽可能采用模块化的理念,以提升代码复用效率。在基础库文件(Libraries)中提供了核心框架和一些基础功能的支持;而实现渗透测试功能的主体代码则以模块化方式组织,并按照不同用途分为6种类型的模块(Modules);为了扩充Metasploit框架对渗透测试全过程的支持功能特性,Metasploit还引入了插件(Plugins)机制,支持将外部的安全工具集成到框架中;Metasploit框架对集成模块与插件的渗透测试功能,通过用户接口(Interfaces)与功能程序(Utilities)提供给渗透测试者和安全研究人员进行使用。

此外,Metasploit在v3版本中还支持扩展脚本(Scripts)来扩展攻击载荷模块的能力,而这部分脚本在v4版本中将作为后渗透攻击模块(Post),以统一化的组织方式融入到模块代码中,而这些扩展脚本也将被逐步移植和裁剪。

1.基础库文件

Metasploit的基础库文件位于源码根目录路径下的libraries目录中,包括Rex、framework-core和framework-base三部分。

Rex(Ruby Extension)是整个Metasploit框架所依赖的最基础的一些组件,为Metasploit开发者进行框架和模块开发提供了一些基础功能的支持,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL及MySQL数据库支持等。

framework-core库负责实现所有与各种类型的上层模块及插件的交互接口。

framework-base库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块。

2.模块

模块是通过Metasploit框架所装载、集成并对外提供的最核心的渗透测试功能实现代码。按照在渗透测试过程各个环节中所具有的不同用途,分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(Payloads)、空指令模块(Nops)和编码器模块(Encoders)。这些模块都拥有非常清晰的结构和一个预先定义好的接口,可以被装载到Metasploit框架中,并可组合支持信息搜集、渗透攻击与后渗透攻击拓展等渗透测试任务。后面的小节将对这六类不同类型的模块进行更进一步的介绍。

3.插件

Metasploit框架的插件是一类定义比较松散,能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能命令、记录所有的网络记录或提供创新的渗透测试功能。

4.接口

Metasploit框架提供了多种用户使用接口,包括msfconsole控制台终端、msfcli命令行、msfgui图形化界面、armitage图形化界面以及msfapi远程调用接口等。本书将在1.6节说明与演示如何通过这些接口使用Metasploit的基本渗透攻击功能,并在后继章节中深入全面地介绍如何使用Metasploit支持渗透测试全过程。

5.功能程序

除了通过上述的用户使用接口访问Metasploit框架主体功能之外,Metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全研究人员快速地利用Metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和msfvenom可以将攻击载荷封装为可执行文件、C语言、

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值