文章目录
- 前言
- 一、Meatsplooit的架构
- 二、目录结构
- data
- documentation
- lib
- modules
- plugins
- 三、Measploit模块
- 四、Metasploit的使用
前言
Metasploit是用ruby语言开发的,所以你打开软件目录,会发现很多.rb
结尾的文件。ruby是一门OOP的语言。
一、Meatsplooit的架构
Offensive Security的一张图
Rex库
ruby extension library
的缩写- 设计为不依赖其他依赖项
- 提供的组件:
- 封装的套接字子系统
- 协议的客户端/服务端
- 日志记录子系统
- 漏洞利用的工具类和大量有用的类
Core库:
- 负责实现模块、会话、插件等的交互接口
Base库:
- 扩展Core库,提供使用的类处理框架的问题
二、目录结构
在Kali的目录 /usr/share/metasploit-framework
data
目录包含 Metasploit 用来存储某些漏洞利用、单词列表、图像等所需的二进制文件的可编辑文件。
documentation
顾名思义,该目录包含框架的可用文档。
lib
这自由目录包含框架代码库的“肉”(重要的东西)。
modules
该目录中可以找到MSF 的模块包括漏洞利用、辅助和后渗透模块、有效负载、编码器和 NOP 生成器。
plugins
插件目录
三、Measploit模块
我们对metasploit的操作,都是围绕着模块进行。可以在2个位置寻找模块
/usr/share/metasploit-frameworkmodules/
~/.msf4/modules
,自定义模块
在MSF里,所有的模块都是Ruby类
- 模块继承于特定类型的类
- 这些特定的类都继承于
Msf::Moudle
类 - 类之间有共享通用的API
就是说,每一个模块都是一个.rb
文件,这个.rb
文件里的类都继承一些特定类型的类。如果看过https://blog.csdn.net/weixin_45626840/article/details/129014089,那么这里应该蛮好理解。
四、Metasploit的使用
我们说过,远程漏洞怎么都是协议通信,就是交换数据包。我们将这个过程协程代码,就有了POC/EXP
。Metasploit是一个漏洞利用框架,就说明它帮我们实现并提供了这些。在Metasploit,我们要做的事
- find relevant exploits ----> 寻找相关的
EXP
- set parameters ----> 设置参数(payloads、目标参数等)
- exploit vulnerable services ----> 攻击/利用 存在漏洞的服务