• XSS.stack #1 – первый литературный журнал от юзеров форума

прочее SOCKS5 Reverse Proxy — используй зараженные устройства как прокси

soulbreaker

Soul Breaker
Забанен
Регистрация
05.06.2023
Сообщения
47
Реакции
41
Гарант сделки
5
Депозит
0.0001 Ł
Пожалуйста, обратите внимание, что пользователь заблокирован
Как только на этом форуме появился конкурс на интересные наработки, я сразу понял, что я обязательно что нибудь сделаю для пользователей форума, что может быть полезным некоторым людям. К сожалению, так вышло, что я просто не успел к завершению конкурса, но я в любом случае не отказываюсь от своей идеи сделать что-то бесплатное и с открытым исходным кодом для вас, поэтому представляю вам SOCKS5 BackConnect/Reverse Proxy с веб-панелью.

Технические моменты
  • Билд написан на C# (net4.0, без зависимостей), а сервер, который вшит в билд на Golang (нативный)
  • Поддерживает обе архитектуры — x86 и x64, билд весит 2.09 MB (вес такой большой из-за особенностей golang-а)
  • Заражение происходит одним исполняемым файлом: запускаете на компьютере билд и на панели уже есть вся информация для подключения
  • Общение между сервером и клиентом зашифровано TLS-ом и накрыто паролем, который вы указываете сами
  • Прокси работают через proxychains, также и через Proxyfier
  • Подключение сервера и клиента защищено аутентификацией (логин и пароль; пароль указываете в билде сами)
  • Не требует прав администратора
  • Весь код написан максимально просто, настолько, что сможет разобраться любой желающий
Сразу подмечу, что я даже не знал что такое BackConnect Proxy или Reverse Proxy, все изучалось по ходу создания проекта. Также, проект не готов полностью, я в билде не дописал автозапуск, но можно обойтись без дописания кода, просто попросив криптора накинуть добавление в автозапуск

Инструкции по установке
Панель требует Apache2, PHP и MySQL: ставите VPS сервер, накатываете все это на него и устанавливаете, либо покупаете хостинг.

Первым делом, в корневую папку веб-сайта закидываете все файлы из папки "Web-Panel Source", далее по списку:
  1. Открываем конфигурационный файл (/src/config.php) и указываем данные от базы данных
  2. В том же конфиге (/src/config.php) на 15 строке указываем пароль, который будет использоваться для авторизации на панели
  3. Заливаем базу данных на MySQL через phpmyadmin или adminer, который уже есть в комплекте. Чтобы попасть на админер (аналог phpmyadmin), вам необходимо перейти по этому пути: domain.com/src/adminer.php
  4. Переходим на domain.com/table.php и проходим авторизацию. Если перед вами таблица в которой написано, что проксей еще нет, то панель встала успешно
Поздравляю, осталось еще чуток!
Скачиваем Visual Studio 2019 и открываем папку "BackConnect Server Source", в этой папке открываем файл под названием BackConnect.sln и ждем пока прогрузится все.
  1. Открываем файл Program.cs и на 18 строке указываем новое значение для переменной C2URL: а именно URL вашей панели в формате: https://domain.com (протокол может быть как http, так и https, это не имеет значения)
  2. Далее в том же Program.cs на 19 строке есть переменная BCPassword, в которой мы меняем пароль. Я буду использовать пароль: 123 (ЗАПОМНИТЕ, что я использую именно его, чтобы понять где он используется далее)
  3. Осталось только скомпилировать этот билд в Release. После компиляции появится в папке bin/Release файл размером 2MB, который и есть наш билд.
ТЕПЕРЬ! Пробуем запустить наш билд на дедике и заходим на панель, если на панели в таблице у вас появился сервер, значит все работает!
На панели в таблице есть кнопка в самой левой части строки "Download .bat", нажимаем и скачиваем bat файл, в котором вся информация для поключения к прокси.

1709957284398.png

После того, как скачали .bat файл, его нужно перекинуть в папку под названием "BackConnect Client", чтобы было вот так:

1709957494088.png


Далее запускаем этот .bat файл и видим вот такое сообщение:

1709958656732.png


Connected - успешно, мы законнектились с прокси. Это окно закрывать нельзя, пока вы работаете с прокси сервером!
В самой первой строке вы видите IP адрес, порт и логин с паролем, которые вам нужны для прокси

Тест прокси через Proxifier:

1709957854289.png


Тесты показали, что прокси работает и задержка составляет 14ms, а это всего на 4 миллисекунды больше, чем на самом компьютере, на котором развернут этот BackConnect/Reverse Proxy

Отвечу на несколько вопросов
  • Почему билд написан на C#?
    Потому что он уникален, а еще потому что он легче для потенциальных пользователей
  • Почему я называю эти прокси BackConnect и Reverse Proxy одновременно?
    Потому что я не знаю как правильно эта тема называется. По сути, это BackConnect Proxy, а не Reverse прокси, но я видел темы, где такой софт называют Reverse Proxy.
  • Почему в нем нет функционала, который нужен для подобного рода софта?
    Потому что я никогда не работал с таким видом софтов и не знаю как он вообще работает. Я написал этот проект опираясь от того, что нашел на этом форуме и смог нагуглить.
  • Собираешься ли ты поддерживать этот проект в будущем?
    Не знаю, думаю, что нет, но если кому-то нужна будет моя помощь - то я с радостью помогу и буду помогать, пока мне просто не надоест отвечать на миллион, вероятно, одинаковых вопросов
  • Почему веб-панель такая некрасивая и не функциональная?
    Потому что, это всего лишь пример, а не готовый продукт (черновой вариант, другими словами)
 

Вложения

  • BackConnect Sources.zip
    2.3 МБ · Просмотры: 120
Последнее редактирование:
Зачем ты получаешь страну и город на клиенте, тем более делая запрос на ip-api? Открой для себя базы данных MaxMind, с помощью них ты сможешь на стороне сервера получать страну/город IP адреса без запросов в сторонние сервисы.

P.S: А где исходники сервера и самого бекконекта? Твой код распаковывает левый бинарник из ресурсов и запускает с параметрами. Ты перепутал немного, мы подключаемся к бекконект-серверу а не к клиенту, клиентом является бинарник который доставляется на компьютер холдера.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Зачем ты получаешь страну и город на клиенте, тем более делая запрос на ip-api? Открой для себя базы данных MaxMind, с помощью них ты сможешь на стороне сервера получать страну/город IP адреса без запросов в сторонние сервисы.

P.S: А где исходники "клиента"? Ты перепутал немного, мы подключаемся к бекконект-серверу а не к клиенту, клиентом является бинарник который доставляется на компьютер холдера.
Изначально я планировал получать информацию о IP на самом сервере, используя MaxMind GeoIP2, но потом просто для наглядности переписал все в сам билд

Забыл прикрепить исходники сервера и BackConnect-а, исправил. Код распаковывает BackConnect, исходник которого я добавил в архив. Его можно перекомпилировать самому, если есть на это желание. Для этого необходимо воспользоваться библиотекой для Golang-a — garble (а-ля, обфускатор кода)
Код:
go install mvdan.cc/garble@latest
garble -tiny build . -ldflags -H=windowsgui
 
Последнее редактирование:
Изначально я планировал получать информацию о IP на самом сервере, используя MaxMind GeoIP2, но потом просто для наглядности переписал все в сам билд

Ошибся, касаемо терминов клиент и сервер, но действительно, забыл прикрепить исходники "клиента", сейчас исправлю
посмотри в сторону p2psocket или что то в таком духе для общего развития, ведь можно то не использовать вообще vps
 
Лень детально изучать сорцы, но после беглого просмотра возникли сомнения, что ты сделал именно BackConnect прокси, а не обычные Direct прокси. Непосредсвенно сокс-прокся (та что на go написана) слушает порт на той же тачке на которой запущена? И если тачка за НАТом, то что тогда?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Лень детально изучать сорцы, но после беглого просмотра возникли сомнения, что ты сделал именно BackConnect прокси, а не обычные Direct прокси. Непосредсвенно сокс-прокся (та что на go написана) слушает порт на той же тачке на которой запущена? И если тачка за НАТом, то что тогда?
Это скорее Direct прокси, а не BackConnect, я ошибся. Без открытых портов эта шляпа не работает
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Привет.
Объясни пожалуйста этот банальный пункт.
Заливаем базу данных на MySQL через phpmyadmin или adminer, который уже есть в комплекте. Чтобы попасть на админер (аналог phpmyadmin), вам необходимо перейти по этому пути: domain.com/src/adminer.php

у меня не переходит оп этому пути ,хотя mysql php apache2 установлены и работают корректно
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх