Go to file
m0rv4i 608a57c0bf
SharpSocks update & cleanup
2021-11-04 10:13:52 +00:00
.github/workflows SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
SharpSocksCommon SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
SharpSocksImplant SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
SharpSocksServer SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
.gitignore TLS and Domain Fronting 2018-07-16 11:16:58 +01:00
LICENSE SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
README.md SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
SharpSocks.sln SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00
global.json SharpSocks update & cleanup 2021-11-04 10:13:52 +00:00

README.md

SharpSocks

SharpSocksServer SharpSocksImplant

Tunnellable HTTP/HTTPS socks4a proxy written in C#.

Usage

Server

.NET Core Project with builds for Windows, Linux, and Docker support. Once the implant side connects and establishes the tunnel, the SOCKS server open on the socks port (43334 by default.)

Usage:  [options]

Options:
  -?|-h|--help         Show help information.
  -s|--socksserveruri  IP:Port for SOCKS to listen on, default is *:43334
  -c|--cmdid           Command Channel Identifier, needs to be shared with the server
  -l|--httpserveruri   Uri to listen on, default is http://127.0.0.1:8081
  -k|--encryptionkey   The encryption key used to secure comms
  -sc|--sessioncookie  The name of the cookie to pass the session identifier
  -pc|--payloadcookie  The name of the cookie to pass smaller requests through
  -st|--socketTimeout  How long should SOCKS sockets be held open for, default is 30s
  -v|--verbose         Verbose error logging

Client (Implant side)

.NET 4.0 project for running on the target (such as in memory in a PoshC2 implant) which tunnels the traffic to the server.

SharpSocks Proxy Client
=======================

      --use-proxy            Use proxy server (for system proxy set this and
                               leave -m blank)
  -m, --proxy=VALUE          Proxy Url in format http://<server>:<port> (use-
                               proxy is implied)
  -u, --username=VALUE       Web proxy username
  -d, --domain=VALUE         Web proxy domain
  -p, --password=VALUE       Web proxy password
  -k, --encryption-key=VALUE The encryption key, leave blank to be asked
  -c, --cmd-id=VALUE         Command Channel Id (required)
  -b, --beacon=VALUE         Beacon time in (ms)
  -s, --server-uri=VALUE     Uri of the server, default is http://127.0.-
                               0.1:8081
      --url1=VALUE           pages/2019/stats.php
      --url2=VALUE           web/v10/2/admin.asp
      --session-cookie=VALUE The name of the cookie to pass the session
                               identifier
      --payload-cookie=VALUE The name of the cookie to pass smaller requests
                               through
      --user-agent=VALUE     The User Agent to be sent in any web request
      --df=VALUE             The actual Host header to be sent if using
                               domain fronting
  -h, -?, --help
  -v, --verbose
  -r, --read-time=VALUE      The time between SOCKS proxy reads, default 500ms
  -a, --standalone           Standalone mode, do not return on the main thread

Apache Rewrite Rule (C2 proxy)

If using a C2 proxy you can achieve TLS termination and route the traffic for the SOCKS URLs to the server running locally.

Define SharpSocks 127.0.0.1:49031
RewriteRule ^/sharpsocks1/(.*) http://${SharpSocks} [NC,L,P]
RewriteRule ^/sharpsocks2/(.*) http://${SharpSocks} [NC,L,P]