Access Suo5 Remote Scripts for different runtimes
mainSuo5 provides remote scripts for various programming environments. You can access specific implementation details and guides for the following runtimes:
- Java
- .NET
- PHP
- Node.js
repository·main·Indexed 25 days ago
https://github.com/zema1/suo5A high-performance HTTP forward proxy tool for stable communication in restricted or 'no-internet' network environments. Suo5 supports multiple transmission modes (auto, full, half, and classic) to bypass middleware and proxy restrictions. It provides implementations for .NET (Framework >= 2.0), Java (6+), PHP (5.6+), and Node.js (18+), including capabilities for memory shell deployment and SOCKS5 proxying via CLI and GUI clients.
Suo5 provides remote scripts for various programming environments. You can access specific implementation details and guides for the following runtimes:
Suo5 is a high-performance HTTP forward proxy tool designed for stable proxying in restricted network environments. Follow these steps to get started:
Download the Client: Visit the Releases page and download the binary for your platform:
suo5-gui-*: Graphical interface (recommended for most users).suo5-cli-*: Command-line version (for servers or CLI enthusiasts).Deploy the Server: Upload the corresponding server files from the assets/ directory to your target server and ensure they are executable.
Connect to the Server: Use the -t flag to specify the remote server URL. By default, Suo5 uses auto mode to automatically detect the best communication mode.
Once connected, Suo5 starts a SOCKS5 proxy on 127.0.0.1:1111. You can route traffic through it using curl or tools like Proxifier.
You can convert Suo5 into a memory shell by following the pattern used in the SharpMemshell project. The file Suo5VirtualPath.cs in the current directory serves as a reference implementation.
Critical Step: Before compiling, you must modify line 242 of Suo5VirtualPath.cs. Change if (false) to your own trigger logic (e.g., checking for a specific User-Agent). If you do not change this, the processing logic will never be triggered.
To run the Suo5 Node.js standalone version, ensure you have Node.js 18 or higher installed. The suo5.js script has no third-party npm dependencies and can be executed directly. By default, it listens on port 8080 and supports full-duplex, half-duplex, and short-connection modes with automatic detection.
node suo5.jsIf the target uses a load balancer, deploy the server on all backends and use the -r flag to specify a redirect URL. Suo5 will check if the IP of the redirect URL matches the server's network interface; if not, it forwards the request.
./suo5 -t https://target.com/suo5.jsp -r http://172.0.3.2/suo5.jspTo prevent specific domains from being proxied:
-E <domain>-ef <file_path> (one domain per line)Note: Use socks5h:// in your client (e.g., curl) to ensure DNS resolution happens on the proxy side.
./suo5 -t https://target.com/suo5.jsp -E example.com -E google.com
curl -x socks5h://127.0.0.1:1111 https://example.comTo forward a specific TCP port (instead of using SOCKS5 mode):
# Forward local 1111 to remote internal MySQL
./suo5 -t https://target.com/suo5.jsp -f 172.16.0.10:3306To use the .Net version of Suo5, ensure the target environment meets the following requirements:
Once the Node.js standalone server is running (defaulting to port 8080), connect your Suo5 client using the -t flag pointing to the target URL.
./suo5 -t http://target:8080/Follow these steps to compile the Suo5VirtualPath.cs implementation, convert it to Base64, and deploy it via an installer file.
csc.exe).%%base64%% placeholder in your install.aspx template with the generated Base64 string.install.aspx to the target server and access it via a browser to install the memory shell. Once installed, any subsequent access to .aspx files in that directory will trigger the memory shell logic.For targets vulnerable to CVE-2025-55182 or CVE-2025-66478, use the next_payload.http request. You must modify the Host header and the request path within the payload before sending it. Upon successful execution, a /test route will be mounted onto the target's existing Node.js HTTP Server. Connect the client to this new route.
./suo5 -t http://target:3000/testSuo5 supports various Java middleware implementations that follow the Java Servlet specification. For generating memory shells and performing injections, it is recommended to use the MemshellParty project.
Environment Requirements:
Supported Middleware Compatibility:
The following middleware versions have been verified via CI testing to support automatic detection, full-duplex, half-duplex, and short-connection modes:
Use the --auth parameter to set authentication for the local SOCKS5 proxy. The format must be username:password. This is used to prevent unauthorized local access to the proxy and is independent of the server-side configuration.
To use the authenticated proxy with curl, include the credentials in the proxy URL: socks5h://username:password@127.0.0.1:1111.
When using Suo5 with PHP services running via FastCGI (e.g., Nginx + PHP-FPM or Apache + mod_fcgid), each Suo5 connection occupies one Worker process and holds it until the connection is closed.
Warning: If the number of Suo5 connections exceeds the available PHP-FPM workers, the target server will become unresponsive and block all other requests (including normal web traffic) until connections time out.
Before deployment, ensure the target's worker count is sufficient for your expected Suo5 connection load.