Metasploit(The Metasploit Framework)是一款开源的安全漏洞检测工具,也被称为Metasploit漏洞框架,因为它本身包含了各种“漏洞攻击”、“辅助攻击”等模块,而且Metasploit团队还在不断进行更新和维护,现已成为当今黑客们与安全工作人员必备的渗透测试工具之一,如图1-1-1。
图1-1-1 Metasploit-Framework启动界面
0x01 Metasploit功能模块
Metasploit主要包含了以下4个功能模块,msfconsole模块中支持使用Tab键补全命令,执行外部系统命令等功能。2015-06-08正式弃用了msfpayload、msfencode,使用msfvenom进行替代。
- msfconsole:整个框架中最受欢迎的模块,所有的功能都可以该模块下运行。
- msfvenom:集成了msfpayload和msfencode的功能,效率更高。
- msfupdate:软件更新,可以更新最新的漏洞库和利用代码。
- msfweb:Metasploit Framework的web组件,支持多用户,是Metasploit图形化接口。
0x02 Metasploit专业术语
- Listener:监听器,用于等待网络连接的组件。
- Payload:攻击载荷,目标系统在被渗透攻击之后去执行的代码。
- Exploit:渗透攻击,利用系统漏洞或服务中的安全漏洞所进行的攻击行为。
- Module:模块,用于发起渗透攻击或执行某些辅助攻击行为。
- Encoder:编码,用于对生成的攻击载荷进行编码处理来达到绕过防病毒软件。
- Shellcode:渗透攻击时作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
0x03 Metasploit历史版本
Version | Time | exploits | payloads | auxiliary | post |
---|---|---|---|---|---|
v1.0 | 2003年10月 | 11 | 2 | — | — |
v2.0 | 2004年04月 | 18 | 27 | — | — |
v3.0 | 2007年05月 | 177 | 104 | 30 | — |
v4.0 | 2011年08月 | 717 | 226 | 361 | 68 |
v4.7.0 | 2013年04月 | 1084 | 298 | 609 | 177 |
v4.11.0 | 2014年12月 | 1387 | 342 | 866 | 236 |
v4.16.22 | 2017年12月 | 1707 | 503 | 970 | 299 |
v5.0.9 | 2019年02月 | 1861 | 546 | 1057 | 327 |
v6.0.3 | 2020年08月 | 2057 | 562 | 1114 | 346 |
- Auxiliary:辅助模块 - Exploits:渗透攻击模块 - Post:后渗透攻击模块 - Payloads:攻击载荷模块 |
- Encoders:编码器模块 - Nops:空指令模块 - Evasion:免杀逃避模块 |
---|---|
0x04 Metasploit目录结构
有时可能会因为Metasploit版本一样而存在些许差异,如:命令、模块、扩展、脚本等,如图1-1-2。
- 用户设置模块一般在:/root/.msf4/modules/
- Metasploit日志文件在:/root/.msf4/history、/root/.msf4/logs/
- Metasploit模块文件在:/usr/share/metasploit-framework/modules/
- Metasploit脚本文件在:/usr/share/metasploit-framework/scripts/
- Metasploit基础库文件在:/usr/share/metasploit-framework/lib/
| 目录 | 基础库 |
| —- | —- |
| data:需要的文件,如:banner、字典等
documentation:Metasploit介绍文档
tools:各种各样实用的命令行工具
test:用于测试新模块的一个目录
external:源文件和第三方的库
lib:Metasploit框架的主要组成部分
modules:Metasploit模块存放位置
plugins:Metasploit插件存放位置
scripts:Meterpreter脚本、shellcode代码 | 1. Rex库
1.1 最基础的组建
1.2 网络套接字、应用协议客户端/服务端实现、日志子系统等
1.3 SSL,SMB,HTTP,XOR,Base64,Unicode
2. Framework-Core库
2.1 提供了一些比较基础的API接口
2.2 为MSF的框架进行定义
3. Framework-Base库
3.1 提供了一些额外的和简单的API接口 |
图1-1-2 Metasploit-Framework目录结构