一)基础库文件
metasploit基础库文件位于源码根目录路径下的libraries目录中,包括Rex,framework-core和framework-base三部分。
Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL以及MySQL数据库支持等;
framework-core库负责实现所有与各种类型的上层模块及插件的交互接口。
framework-base库扩展了framework-core,提供更加简单的包装例程,并未处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块。
二)模块
模块是通过Metasploit框架所装载、集成并对外提供的最核心的渗透测试功能实现代码。分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(payloads)、编码器模块(Encoders)、空指令模块(Nops)。这些模块拥有非常清晰的结构和一个预定义好的接口,并可以组合支持信息收集、渗透攻击与后渗透攻击拓展。
常用的用到的模块:
Aux辅助模块:主要完成信息搜集
Exploits模块:进行渗透攻击
Post后渗透攻击模块:进行主机控制与扩展攻击
三)插件
插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能。
四)接口
包括msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面以及msfapi远程调用接口。
五)功能程序
除了用户使用用户接口访问metasploit框架主体功能之外,metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全人员快速地利用metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和msfvenom可以将攻击载荷封装为可执行文件、C语言、JavaScript语言等多种形式,并可以进行各种类型的编码。
msf*scan系列功能程序提供了在PE、ELF等各种类型文件中搜索特定指令的功能,可以帮助渗透代码开发人员定位指令地址。
metasploit的框架目录是:/usr/share/metasploit-framework
该MSF文件系统是一个直观的方式布置,并通过目录组织。
最重要的目录是data,modules,scripts,tools,plugins
1.data目录:包含大量有用的模块,如meterpreter,exploits(CVE漏洞利用代码),wordlists(字典),templates等等
1)wordlists目录,这里面包含了大量的字典
2)exploits目录,里面包含大量的CVE漏洞利用代码,可供渗透过程中使用。
2.modules目录:这个目录当中包含模块。
1)exploits(漏洞攻击模块列表)-----与上面的不同
2)auxiliary(漏洞辅助模块,一般是没有攻击载荷的漏洞攻击)
3)encoders(编码器模块)
4)nops(空指令模块)
5)payloads(漏洞负载模块)
6)post(开发模块)
7)evasion(免杀模块-新增)
3.scripts目录:该目录下面存放的是各种脚本文件。
4.tools目录:该目录下面存放着大量的使用工具。
5.plugins:可以在运行时加载的插件
-------------------------------*以kali2021.1版本为演示-----------------------------------------------------------------------