{"id":13574812,"url":"https://github.com/kost/revsocks","last_synced_at":"2025-04-05T21:07:39.388Z","repository":{"id":44532670,"uuid":"212776511","full_name":"kost/revsocks","owner":"kost","description":"Reverse SOCKS5 implementation in Go ","archived":false,"fork":false,"pushed_at":"2024-03-13T22:31:05.000Z","size":63,"stargazers_count":354,"open_issues_count":10,"forks_count":47,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-29T20:05:34.710Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-04T09:09:37.000Z","updated_at":"2025-03-28T07:05:17.000Z","dependencies_parsed_at":"2024-06-18T21:45:41.993Z","dependency_job_id":null,"html_url":"https://github.com/kost/revsocks","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kost%2Frevsocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kost%2Frevsocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kost%2Frevsocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kost%2Frevsocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kost","download_url":"https://codeload.github.com/kost/revsocks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399877,"owners_count":20932876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:00:54.888Z","updated_at":"2025-04-05T21:07:39.368Z","avatar_url":"https://github.com/kost.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"[![CircleCI](https://circleci.com/gh/kost/revsocks.svg?style=svg)](https://circleci.com/gh/kost/revsocks)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3c687bcd445e4a828c914e4e2384196e)](https://www.codacy.com/manual/kost/revsocks?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=kost/revsocks\u0026utm_campaign=Badge_Grade)\n\n# revsocks\n\nReverse socks5 tunneler with SSL/TLS and proxy support (without proxy authentication and with basic/NTLM proxy authentication)\nBased on \u003chttps://github.com/brimstone/rsocks\u003e and \u003chttps://github.com/llkat/rsockstun\u003e\n\n# Features\n\n-   Single executable (thanks to Go!)\n-   Linux/Windows/Mac/BSD support\n-   Encrypted communication with TLS\n-   DNS tunneling support (SOCKS5 over DNS)\n-   Support for proxies (without authentication or with basic/NTLM proxy authentication)\n-   Automatic SSL/TLS certificate generation if not specified\n\n# Architecture\n\n-   server = locally listening socks server\n-   client = client which connects back to server\n\n## Usage\n\n### reverse TCP\n\n    Usage:\n    1) Start on VPS: revsocks -listen :8443 -socks 127.0.0.1:1080 -pass SuperSecretPassword\n    2) Start on client: revsocks -connect clientIP:8443 -pass SuperSecretPassword\n    3) Connect to 127.0.0.1:1080 on the VPS with any socks5 client.\n    4) Enjoy. :]\n\n### reverse TCP with TLS encryption\n\n    Usage:\n    1) Start on VPS: revsocks -listen :8443 -socks 127.0.0.1:1080 -pass SuperSecretPassword -tls\n    2) Start on client: revsocks -connect clientIP:8443 -pass SuperSecretPassword -tls\n    3) Connect to 127.0.0.1:1080 on the VPS with any socks5 client.\n    4) Enjoy. :]\n\n### reverse websocket with TLS encryption\n\n    Usage:\n    1) Start on VPS: `revsocks -listen :8443 -socks 127.0.0.1:1080 -pass SuperSecretPassword -tls -ws`\n    2) Start on client: `revsocks -connect https://clientIP:8443 -pass SuperSecretPassword -ws`\n    3) Connect to 127.0.0.1:1080 on the VPS with any socks5 client.\n\n### DNS tunnel\n\n```sh\n0) setup your domain records\n1) Start on the DNS server: revsocks -dns example.com -dnslisten :53 -socks 127.0.0.1:1080 -pass 52fdfc072182654f163f5f0f9a621d729566c74d10037c4d7bbb0407d1e2c64\n2) Start on the target: revsocks -dns example.com -pass 52fdfc072182654f163f5f0f9a621d729566c74d10037c4d7bbb0407d1e2c64\n3) Connect to 127.0.0.1:1080 on the DNS server with any socks5 client.\n```\n\n## Useful parameters\n\n    Add params:\n     -proxy 1.2.3.4:3128 - connect via proxy\n     -proxyauth Domain/username:password  - proxy creds\n     -proxytimeout 2000 - server and clients will wait for 2000 msec for proxy connections... (Sometime it should be up to 4000...)\n     -useragent \"Internet Explorer 9.99\" - User-Agent used in proxy connection (sometimes it is usefull)\n     -pass Password12345 - challenge password between client and server (if not match - server reply 301 redirect)\n     -recn - reconnect times number. Default is 3. If 0 - infinite reconnection\n     -rect - time delay in secs between reconnection attempts. Default is 30\n\n## Options\n\nComplete list of command line options\n\n```\n  -agent string\n    \tUser agent to use (default \"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko\")\n  -cert string\n    \tcertificate file\n  -connect string\n    \tconnect address:port (or https://address:port for ws)\n  -debug\n    \tdisplay debug info\n  -dns string\n    \tDNS domain to use for DNS tunneling\n  -dnsdelay string\n    \tDelay/sleep time between requests (200ms by default)\n  -dnslisten string\n    \tWhere should DNS server listen\n  -listen string\n    \tlisten port for receiver address:port\n  -pass string\n    \tConnect password\n  -proxy string\n    \tuse proxy address:port for connecting (or http://address:port for ws)\n  -proxyauth string\n    \tproxy auth Domain/user:Password\n  -proxytimeout string\n    \tproxy response timeout (ms)\n  -q\tBe quiet\n  -recn int\n    \treconnection limit (default 3)\n  -rect int\n    \treconnection delay (default 30)\n  -socks string\n    \tsocks address:port (default \"127.0.0.1:1080\")\n  -tls\n    \tuse TLS for connection\n  -verify\n    \tverify TLS connection\n  -version\n    \tversion information\n  -ws\n    \tuse websocket for connection\n```\n\n# Requirements\n\n-   Go 1.4 or higher\n-   Few external Go modules (yamux, go-socks5 and go-ntlmssp)\n\n# Compile and Installation\n\nLinux VPS\n\n-   install Golang: apt install golang make\n\n```sh\nmake\n```\n\nlaunch:\n\n```sh\n./revsocks -listen :8443 -socks 127.0.0.1:1080 -pass Password1234\n```\n\nWindows client:\n\n-   download and install golang\n\n```sh\ngo get\ngo build\n```\n\n## Windows optional\n\noptional: to build as Windows GUI:\n\n```sh\ngo build -ldflags -H=windowsgui\n```\n\nYou can also compress exe - just use any exe packer, ex: UPX\n\n```sh\nupx revsocks\n```\n\n## Usage examples\n\n```sh\nrevsocks -connect clientIP:8443 -pass Password1234\n```\n\nor with proxy and user agent:\n\n```sh\nrevsocks -connect clientIP:8443 -pass Password1234 -proxy proxy.domain.local:3128 -proxyauth Domain/userpame:userpass -useragent \"Mozilla 5.0/IE Windows 10\"\n```\n\nClient connects to server and send agentpassword to authorize on server. If server does not receive agentpassword or reveive wrong pass from client (for example if spider or client browser connects to server ) then it send HTTP 301 redirect code to www.microsoft.com\n\n## Custom certificate\n\nGenerate self-signed certificate with openssl:\n\n```sh\nopenssl req -new -x509 -keyout server.key -out server.crt -days 365 -nodes\n```\n\n## Debug\n\nFor debugging (especially DNS part):\n```sh\ngo build -tags debug\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkost%2Frevsocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkost%2Frevsocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkost%2Frevsocks/lists"}