1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/winshu-go-netbus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Проект введения

Иногда нам нужно получить доступ к данным на домашнем или корпоративном компьютере, но это сложно сделать напрямую из-за того, что компьютер находится во внутренней сети или у него динамический IP-адрес, предоставленный интернет-провайдером.

В этом случае можно использовать интранет-прорыв. Интранет-прорыв используется, когда необходимо стабильно получать доступ к компьютеру в интрасети, у которого нет статического IP-адреса.

Go-netbus — это инструмент, разработанный для решения проблемы интранет-прорыва.

Список функций

  • Основан на протоколе TCP.
  • Поддерживает многопортовый прорыв.
  • Поддерживает восстановление после разрыва соединения.
  • Позволяет указать порт доступа.
  • Обеспечивает аутентификацию и использует механизм истечения срока действия учётных данных.
  • Один сервис может поддерживать несколько подключений.

Принцип работы

Обычно мы можем получить доступ к сервису, просто подключившись к его адресу. Однако если сервис находится в изолированной внутренней сети, мы не сможем получить к нему доступ. Но есть способ решить эту проблему: если внутренний сервис доступен из внешней сети, то мы можем найти точку прорыва.

Этапы реализации

Серверная часть

  1. Запустите tunnel_bridge, который будет прослушивать подключения от tunnel_client.
  2. Запустите tunnel_server, который будет слушать запросы на доступ от пользователей.

Клиентская часть

  1. Запустите tunnel_client и позвоните tunnel_bridge для установления соединения.
  2. Если пользователь инициирует запрос, позвоните внутреннему сервису и установите соединение.
  3. Обрабатывайте связь между двумя сторонами соединения для обеспечения прорыва.

Как реализовать интранет-прорыв

На сервере требуется компьютер с общедоступным IP-адресом (например, сервер Alibaba Cloud). Конфигурация не ограничена, и сервер должен быть развёрнут на этом компьютере.

На клиенте разверните его на компьютере во внутренней сети и используйте тот же сегмент локальной сети, что и сервис, который вы хотите прорвать (например, MySQL).

Обратите внимание, что после прорыва сервис будет открыт для всего интернета, что может привести к риску атаки.

Компиляция

Теперь используется метод управления зависимостями go.mod. При использовании внутри страны рекомендуется настроить прокси, иначе могут возникнуть проблемы с загрузкой.

Это можно реализовать через настройку переменных среды, и IDEA может напрямую установить прокси.

export GOPROXY=https://goproxy.io
# linux
$ go build -o netbus main.go

# windows
$ go build -o netbus.exe main.go

Создание «краткосрочного ключа» с истекающим сроком действия

Примечание: этот ключ предназначен только для клиента, а сервер всё ещё использует исходный ключ.

# Если вы хотите создать ключ с датой истечения 2019-12-31, используйте команду:

$ netbus -generate <key> [expired-time]

# key                исходный ключ, обязательный параметр
# expired-time        дата истечения срока действия, например: 2019-12-31. Если этот параметр не указан, будет создан ключ со сроком действия один месяц.

Способы запуска

Поддерживаются два способа запуска:

— Запуск из командной строки (без необходимости настройки файла конфигурации). — Запуск с использованием файла конфигурации (рекомендуется).

Запуск из командной строки

# Запуск сервера

$ netbus -server <key> <port>

# Примечание
# key            Рекомендуется длина от 6 до 16 символов для проверки подлинности.
# port            Порт сервера, не используйте зарезервированные порты, обязательно.
# access-port-range Порт доступа, диапазон, обязательно, например 10000-20000.
# Запуск клиента

$ netbus -client <key> <server:port> <local:port:mapping> [tunnel-count]

# Примечание
# key              Совпадает с ключом сервера.
# server:port      Адрес сервера, формат: ip:порт.
# local:port:mapping Адрес внутреннего сервиса и порт доступа (если порт доступа не указан, это означает, что преобразование порта не выполняется), несколько адресов разделяются запятыми, например: 127.0.0.1:3389,127.0.0.1:3306:13306.
# tunnel-count     Количество туннелей, по умолчанию 1, диапазон [1-5].

Запуск с использованием файла конфигурации

Подготовка перед запуском
Переименуйте config_demo.ini в config.ini.

Конфигурация сервера

# Конфигурация сервера
[server]
# Порт прокси
port = 6666
# Ключ, рекомендуемая длина 6-16 символов, используется для аутентификации
key = winshu

Конфигурация клиента

# Конфигурация клиента
[client]
# Совпадает с ключом сервера
key = winshu
# Адрес сервера, формат ip:порт
server-host = 127.0.0.1:6666
# Внутренний адрес сервиса и порт доступа (несколько адресов разделены запятыми), формат: внутренний IP:внутренний порт:доступный порт
# Внутренний IP:внутренний порт:доступный порт
local-host-mapping = 127.0.0.1:3389:13389
# Количество туннелей, по умолчанию 1, диапазон [1-5]
tunnel-count = 1

Команда запуска

# Запуск сервера
$ netbus -server

# Запуск клиента
$ netbus -client

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Лёгкий инструмент для пентеста внутренних сетей, поддерживает многопортовое проникновение. О проблемах в использовании можно сообщить через issue. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/winshu-go-netbus.git
git@api.gitlife.ru:oschina-mirror/winshu-go-netbus.git
oschina-mirror
winshu-go-netbus
winshu-go-netbus
master