Metasplout简介
Metasploit是一款开源的安全漏洞检测工具,同时Metasploit是免费的工具。
Metasploit核心中绝大部分有Rudy实现,一小部分由汇编和C语言实现。
kali中自带Metasploit
Metasploit文件结构与模块
路径: /usr/share/metasploit-framework/
- config: MSF环境配置信息,数据库配置信息
- data:后渗透模块的一些工具及payload,第三方小工具集合,用户字典等数据信息
- documentation:用户说明文档及开发文档
- external: MSF的一些基础扩展模块
- lib:基础类和第三方模块类
- modules: MSF系统工具模块
- plugins:第三方插件接口
- scripts: MSF的常用后渗透模块,区别于data里的后渗透模块,不需要加post参数和绝对路径,可以直接运行
- tools:额外的小工具和第三方脚本工具
- msfconsole: MSF基本命令行,集成了各种功能
- msfd: MSF服务,非持久性服务
- msfdb: MSF数据库
- msfupdate: MSF更新模块,可以用来更新MSF模块
- msfrpc: MSF的服务端,非持久性的rpc服务
- msfrpcd:持久性的MSF本地服务,可以给远程用户提供rpc服务以及其他的http服务,可以通过xml进行数据传输。

exploits(渗透攻击/漏洞利用模块)
- 渗透攻击模块是利用发现的安全漏洞或配置弱点对远程目标进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问的代码组件。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击、用户配置错误等,其中包含攻击者或测试人员针对系统中的漏洞而设计的各种POC验证程序,以及用于破坏系统安全性的攻击代码,每个漏洞都有相应的攻击代码。
- 渗透攻击模块是Metasploit框架中最核心的功能组件。
payloads(攻击载荷模块)
- 攻击载荷是我们期望目标系统在被渗透攻击之后完成实际攻击功能的代码,成功渗透目标后,用于在目标系统上运行任意命令或者执行特定代码。
- 攻击载荷模块从最简单的添加用户账号、提供命令行Shell,到基于图形化的VNC界面控制,以及最复杂、具有大量后渗透攻击阶段功能特性的Meterpreter,这使得渗透攻击者可以在选定渗透攻击代码之后,从很多适用的攻击载荷中选取他所中意的模块进行灵活地组装,在渗透攻击后获得他所选择的控制会话类型,这种模块化设计与灵活的组装模式也为渗透攻击者提供了极大的便利。
auxiliary(辅助模块)
该模块不会直接在测试者和目标主机之间建立访问,它们只负责执行扫描、嗅探、指纹识别等相关功能以辅助渗透测试。
nops(空指令模块)
- 空指令(NOP)是一些对程序运行状态不会造成任何实质性影响的空操作或无关操作指令。最典型的空指令就是空操作,在x86 CPU体系架构平台上的操作码是0x90。
- 在渗透攻击构造邪恶数据缓冲区时,常常要在真正执行的Shellcode之前添加一段空指令区。这样,当触发渗透攻击后跳转执行Shellcode时,就会有一个较大的安全着陆区,从而避免受到内存地址随机化、返回地址计算偏差等原因造成的Shellcode执行失败。
- Matasploit框架中的空指令模块就是用来在攻击载荷中添加空指令区,以提高攻击可靠性的组件。
encoders(编译器模块)
编码器模块通过对攻击载荷进行各种不同形式的编码,完成两大任务: -是确保攻击载荷中不会出现渗透攻击过程中应加以避免的"坏字符”; 二是对攻击载荷进行“免杀”处理,即逃避反病毒软件、IDS/IPS的检测与阻断。
post(后渗透攻击模块)
后渗透攻击模块主要用于在渗透攻击取得目标系统远程控制权之后,在受控系统中进行各式各样的后渗透攻击动作,比如获取敏感信息、进一步横向拓展、 实施跳板攻击等。
evasion(规避模块)
规避模块主要用于规避Windows Defender防火墙、Windows应 用程序控制策略(applocker)等的检查。
Metasploit常用命令
输入msfconsole进入ms终端,启动Metasploit
Terminal终端下的常用命令
命令 | 功能 |
---|---|
msfdb init | msf数据库初始化 |
msfdb delete | 删除msf数据库并停止使用 |
msfdb start | 启动msf数据库 |
msfdb stop | 停止msf数据库 |
apt install metasploit framework | msf更新 |
msfvenom | 多平台攻击载荷生成器 |
msf-nasm_ shell | 将汇编指令转换成为对应的16进制机器码 |
msfconsole | 打开msf终端 |
在msf终端下,输入?或help,可查看终端命令集