Metasploit结构分析
Metasploit结构分析
概述
Metasploit 是一种渗透测试框架软件,用于漏洞研究与渗透代码开发,内部集成多种安全技术,例如:Nmap、Nessus 等,是安全技术集成开发与应用环境。
体系框架
基础库文件:
1、Rex(Ruby Extension)
整个 Metasploit 框架所依赖的基础组件,为开发者进行框架和模块开发提供支持,例如包装的网络套接口字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL及MySQL数据库支持。
2、Framework-core
负责所有上层模块及插件的交互接口。
3、Framework-base
支持用户接口与功能程序调用框架本身功能及框架集成模块。
模块:
Metasploit 框架对外提供的最核心的渗透功能实现代码。
插件:
用于集成外部的安全攻击,例如Nessus、OpenVAS、Nmap等。
接口:
进入 Metasploit 的方式,例如 msfconsole 控制终端、msfcli 命令行、msfgui 图形化界面、armitage 图形化界面、msfapi 远程调用接口。
功能程序:
提供一系列可直接运行的功能程序,支持渗透者利用 Metasploit 内部能力完成特定的任务。
模块
1、辅助模块
为渗透者提供情报收集,网络服务扫描查点、登陆密码收集、口令猜测**、敏感信息嗅探、Fuzz测试发掘漏洞、网络协议欺骗。
2、渗透攻击模块
分为主动渗透攻击和被动渗透攻击,根据辅助模块收集的漏洞进行攻击,以植入攻击载荷并获取目标系统访问权。
3、攻击载荷模块
渗透攻击成功后促使目标系统运行的一段植入代码,通常作用是为了渗透攻击者打开在目标系统上的控制会话连接。
分为独立、传输器、传输体三种。
4、空指令模块
为渗透攻击提供安全着陆区,避免内存地址随机化等造成的执行失败,可以提高攻击可靠性。
5、编码器模块
在渗透攻击指令发送到目标系统之前,需要进行编码处理,解决两个主要问题。第一个是解决“坏字符”问题,否则程序会奔溃;第二个是解决被杀毒软件和入侵检测等安全产品发现的问题,即做“免杀”处理。
6、后渗透攻击模块
严格意义上也属于渗透攻击模块,只不过突出体现在拿到shell之后的进一步拓展渗透。