【工具分享】Switcher一个多功能的端口转发工具(已实现端口复用+socks代理)

admin 2025年6月6日09:19:53【工具分享】Switcher一个多功能的端口转发工具(已实现端口复用+socks代理)已关闭评论21 views字数 2367阅读7分53秒阅读模式
 

欢迎关注本公众号,长期推送技术文章

介绍

Switcher:一个多功能的端口转发工具,支持转发本地或远程地址的端口,支持正则表达式转发(实现端口复用)。

  1. 简单修改了一下,实现了已存在端口的监听(原只支持新建监听端口)
  2. 新增自动创建socks5代理

Config示例配置

{  "log_level": "debug",  "socks5_listen": "",  "rules": [    {      "name": "普通模式示例",      "listen": "0.0.0.0:1234",      "blacklist":{        "1.2.3.4":true,        "114.114.114.114":true      },      "targets": [        {          "address": "127.0.0.1:80"        }      ]    },    {      "name": "正则模式示例",      "listen": "0.0.0.0:5555",      "enable_regexp": true,      "first_packet_timeout": 5000,      "blacklist":{        "1.2.3.4":true,        "114.114.114.114":true      },      "targets": [        {          "regexp": "^(GET|POST|HEAD|DELETE|PUT|CONNECT|OPTIONS|TRACE)",          "address": "127.0.0.1:80"        },        {          "regexp": "^SSH",          "address": "123.123.123.123:22"        }      ]    }  ]}

字段解释

主结构

  1. log_level代表日志等级,有info/debug/error可以选
  2. rules是规则配置数组,看下面

规则配置

  1. name是这个规则的名字,为了在日志中区分不同规则,建议取不同的名字
  2. listen是这个规则监听的地址,0.0.0.0:1234代表监听所有网卡的1234端口
  3. enable_regexp为是否开启正则表达式模式,后面有解释
  4. first_packet_timeout为等待客户端第一个数据包的超时时间(毫秒),仅开启正则表达式模式后有效,后面有解释
  5. blacklist为黑名单IP,在黑名单里面的IP且为true的时候则直接断开链接。如不需要使用黑名单可留null
  6. targets为目标配置数组,看下面

目标配置

目标配置有两种模式:普通模式正则模式

上面规则配置的enable_regexp为true或false决定了这个目标配置是普通模式还是正则模式。

普通模式,即上面的enable_regexpfalse,当存在多个目标的时候,程序会从第一个目标开始尝试连接,如果失败则尝试下一个目标,直到成功为止

正则模式,即上面的enable_regexptrue,程序会根据客户端第一个数据包来匹配正则表达式,匹配成功就转发到指定的目标。 为了防止客户端长时间不发第一个数据包,故可以通过上面的规则配置的first_packet_timeout字段来配置超时时间(毫秒)

目标配置有两个字段:1.regexp字段在正则模式才有用,代表正则表达式。2.address字段代表要转发的目标地址和端口,可以是本地的地址,也可以是远程地址

常见协议正则表达式

协议 正则表达式
HTTP ^(GET|POST|HEAD|DELETE|PUT|CONNECT|OPTIONS|TRACE)
SSH ^SSH
HTTPS(SSL) ^\x16\x03
RDP ^\x03\x00\x00
SOCKS5 ^\x05
HTTP代理 (^CONNECT)|(Proxy-Connection:)

复制到JSON中记得注意特殊符号呀,例如^\x16\x03得改成^\\x16\\x03

演示

这里咱们演示用本地的80端口模拟实战中只有一个端口开放的情况,然后咱们需要使用这个端口进行socks5访问和ssh的复用。

配置规则如下:

{  "log_level""debug",  "socks5_listen""192.168.68.1:1080",  "rules": [    {      "name""socks5&ssh",      "listen""192.168.68.1:80",      "enable_regexp"true,      "first_packet_timeout"5000,      "blacklist":{        "114.114.114.114":true      },      "targets": [        {          "regexp""^\\x05",          "address""192.168.68.1:1080"        },        {          "regexp""^SSH",          "address""192.168.68.134:22"        }      ]    }  ]}
【工具分享】Switcher一个多功能的端口转发工具(已实现端口复用+socks代理)

socks代理测试

首先开启本地的socks5代理服务,端口为1080,通过配置规则进行端口转发,最后实现用80端口进行访问。

如需开启其他端口,自行修改配置文件中socks5_listen的值即可

【工具分享】Switcher一个多功能的端口转发工具(已实现端口复用+socks代理)

ssh代理

这里配置访问本地192.168.68.1:80端口,然后去访问虚拟机192.168.68.134的ssh服务。

【工具分享】Switcher一个多功能的端口转发工具(已实现端口复用+socks代理)

鸣谢

本项目在crabkun师傅的switcher项目上进行修改,感谢crabkun师傅的辛苦开源。

 https://github.com/crabkun/switcher

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月6日09:19:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【工具分享】Switcher一个多功能的端口转发工具(已实现端口复用+socks代理)https://cn-sec.com/archives/4138771.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.