Suo5 高性能 HTTP 正向代理工具

简介

Suo5 是一款高性能 HTTP 正向代理工具,适用于不出网渗透测试与内网隧道搭建,支持多种连接模式,兼容 Java、.Net、PHP 服务端环境,提供 CLI 与 GUI 双版本。

20260216173309559-image

主要特性

  • 优异的传输性能
    • 全双工: 借助双向 Chunked-Encoding 实现单连接双向通信,传输性能接近 FRP
    • 半双工: 下行长连接+上行短连接实现,在 Nginx 反代场景下仍可保持良好性能
    • 短链接: 上下行均使用短连接,适配多层反代和严格限制长连接的场景,作为兜底方案
  • 良好的服务端兼容性
    • Java 支持 Tomcat、WebLogic、JBoss、Resin 等主流中间件, JDK6 ~ JDK 2x 全版本支持
    • .Net 支持 IIS 下所有 .Net Framework 版本 (>=2.0)
    • PHP 支持 Nginx/Apache 等服务器环境, PHP 5.6 ~ PHP 8.x 全版本支持
  • 复杂网络环境支持
    • 支持一层、两层、多层反向代理下的稳定连接
    • 支持通过流量转发和请求重试来支持负载均衡场景
    • 支持配置上游代理(HTTP/SOCKS5)
  • 稳定可靠的工程实现
    • 正确可靠的连接控制、并发管理、心跳保活、异常重连等
    • 完善的单元测试和集成测试保障质量

快速使用

命令行端(CLI)Suo5 命令行端(CLI)支持快速启动 HTTP 正向代理与 SOCKS5 隧道,可自定义请求方法、监听地址与认证信息,适用于授权安全测试与复杂网络环境部署。

  • 启动简单隧道,默认开启socks端口到 0.0.0.0:1111

         suo5 -t https://example.com/proxy.jsp

  • 使用 GET / POST / PUT方法发送请求,有时可以绕过限制
        suo5 -m <GET / POST / PUT> -t https://example.com/proxy.jsp
  • 自定义 socks5 监听在 0.0.0.0:1111,并自定义Socks5连接认证信息为 admin:admin
        suo5 -t https://example.com/proxy.jsp -l 0.0.0.0:1111 –auth admin:admin

CLI 版本适合喜欢命令行操作的用户,或需要在服务器上运行的场景

$ ./suo5 -h

USAGE:
   suo5 [global options] command [command options]

GLOBAL OPTIONS:
   --config value, -c value                                               the filepath for json config file
   --target value, -t value                                               the remote server url, ex: http://localhost:8080/suo5.jsp
   --listen value, -l value                                               listen address of socks5 server (default: "127.0.0.1:1111")
   --method value, -m value                                               http request method (default: "POST")
   --redirect value, -r value                                             redirect to the url if host not matched, used to bypass load balance
   --auth value                                                           socks5 creds, username:password, leave empty to auto generate
   --mode value                                                           connection mode, choices are auto, full, half, classic (default: "auto")
   --header value, -H value [ --header value, -H value ]                  use extra header, ex -H 'Cookie: abc'
   --ua value                                                             shortcut to set the request User-Agent
   --timeout value                                                        request timeout in seconds (default: 5)
   --max-body-size value, -S value                                        request max body size (default: 524288)
   --retry value                                                          request retry (default: 1)
   --classic-poll-qps value, --qps value                                  request poll qps, only used in classic mode (default: 6)
   --classic-poll-interval value, --qi value                              request poll interval in milliseconds, only used in classic mode (default: 200)
   --proxy value [ --proxy value ]                                        set upstream proxy, support socks5/http(s), eg: socks5://127.0.0.1:7890
   --debug, -d                                                            debug the traffic, print more details (default: false)
   --no-heartbeat, --nh                                                   disable heartbeat to the remote server which will send data every 5s (default: false)
   --no-gzip, --ng                                                        disable gzip compression, which will improve compatibility with some old servers (default: false)
   --jar                                                                  enable cookiejar (default: false)
   --no-browser-headers, --nb                                             disable browser headers, which will not send Accept, Accept-Encoding, etc. (default: false)
   --exclude-domain value, -E value [ --exclude-domain value, -E value ]  exclude certain domain name for proxy, ex -E 'portswigger.net'
   --exclude-domain-file value, --ef value                                exclude certain domains for proxy in a file, one domain per line
   --forward value, -f value                                              forward target address, enable forward mode when specified
   --help, -h                                                             show help
   --version, -v                                                          print the version

使用说明

20260216173618656-image

  • 连接Socsk5后配置代理规则时,需要将Suo5软件的流量排除在外不进行代理否则会出现流量死循环继而卡死服务端!(详细看演示视频)
  • 在Suo5中,服务端指的是对应目标服务类型的代码文件,例如:目标服务器是PHP语言,那么就要上传PHP的 Suo5.php。又或者目标服务是JAVA语言的Tomcat / Spring,那么就要上传JAVA的suo5.jsp
  • 在Suo5中不存在连接密码,如果要只想让自己连接可以修改脚本里面的 User-Agent,并且客户端也需要修改对应的 User-Agent
  • 目前已知一些情况不可用Suo5作为正向代理
    • 目标存在两层反代, 比如一层是 CDN,一层是 Nginx,无法使用
    • 泛微OA(resin)Jira(tomcat) 请使用内存马的版本,jsp(x) 无法使用
    • Kong 无法使用

下载

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 共1条

请登录后发表评论

    暂无评论内容