Утилита, написанная на Go, которая реализует обратный SOCKS5 туннель с поддержкой SSL/TLS и прокси (без аутентификации прокси и с базовой/NTLM аутентификацией прокси. Поддерживается на всех ОС, есть поддержка туннелирования DNS, автоматическая генерация сертификата SSL / TLS, если не указано иное.
🚀 Установка:
# Build for Linux
git clone https://github.com/kost/revsocks
export GOPATH=~/go
go get github.com/hashicorp/yamux
go get github.com/armon/go-socks5
go get github.com/kost/go-ntlmssp
go build
go build -ldflags="-s -w" && upx --brute revsocks
⚙️ Принцип работы:
⏺️На сервере RevSocks запускается с параметром -listen, указывающим порт, на котором сервер будет принимать соединения от клиента и параметром -socks, задающим адрес SOCKS5-сервера (сервер ожидает входящего соединения от клиента и одновременно предоставляет SOCKS5-интерфейс для внешних подключений).
⏺️На клиенте инструмент запускается с параметром -connect, указывающим на адрес и порт сервера.
⏺️Клиент устанавливает исходящее TCP-соединение к серверу, которое мультиплексируется с помощью Yamux для обработки множества потоков.
⏺️SOCKS5-запросы от сервера передаются через туннель к клиенту, который выполняет их и возвращает данные.
💻 Использование:
Обратное TCP соединение с шифрованием TLS:
# Start on VPS
revsocks -listen :8443 -socks 127.0.0.1:1080 -pass SuperSecretPassword -tls
# Start on client
revsocks -connect clientIP:8443 -pass SuperSecretPassword -tls
DNS туннель:
# Start on the DNS server
revsocks -dns example.com -dnslisten :53 -socks 127.0.0.1:1080 -pass <pass>
# Start on the target
revsocks -dns example.com -pass <pass>
