Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
gonc — Netcat с автоматическим обходом NAT, безопасным P2P и расширенными возможностями для доступа к оболочке, передачи файлов и сетевого проксирования. | Kitploit
Инструменты/GitHubGitHub/threatexpert/gonc
Утилиты общего назначенияИнструменты шифрования/дешифрованияВеб-прокси и перехватЭксфильтрация данныхСетевая безопасностьТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного Доступа
GitHubthreatexpert/gonc

gonc

73362775 дней назадПроверено Kitploit

Netcat с автоматическим обходом NAT, безопасным P2P и расширенными возможностями для доступа к оболочке, передачи файлов и сетевого проксирования.

РепозиторийСайт

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Введение в gonc

README на китайском 、 английском

gonc — это инструмент netcat на основе Golang, предназначенный для облегчения одноранговой связи. Его основные возможности включают:

  • 🔁 Автоматическое обход NAT: Нулевая конфигурация. Обеим сторонам достаточно согласовать парольную фразу. Используя параметр -p2p, узлы могут автоматически обнаруживать сетевые адреса друг друга и устанавливать соединение точка-точка через обход NAT, используя публичные сервисы STUN и MQTT для обмена адресами.

  • 🔒 Сквозное шифрование с взаимной аутентификацией: Поддерживает TLS для TCP и DTLS для UDP шифрованной передачи, с взаимной аутентификацией идентичности на основе парольной фразы.

  • 🧩 Гибкая конфигурация сервисов: С помощью параметра -e вы можете гибко настроить приложение для обслуживания каждого соединения. Например, -e /bin/sh может предоставить удалённую командную оболочку cmd. Вы также можете использовать встроенные виртуальные команды для удобного сервиса SOCKS5, HTTP-файлового сервиса и перенаправления трафика.


Скачать последнюю версию

документация


Связанные проекты

  • gonc-gui — настольное приложение (Windows) и приложение для Android, построенное на gonc: удобное кросс-устройственное, кросс-сетевое P2P-прямое соединение и безопасная передача файлов. Просто поделитесь парольной фразой (или отсканируйте QR-код); командная строка не требуется.

Примеры использования

Базовое использование

  • Используйте как nc:

    gonc www.baidu.com 80
    gonc -tls www.baidu.com 443
    

    может устанавливать только соединения точка-точка на основе IP и порта.

  • Теперь вы также можете устанавливать соединения точка-точка на основе общей парольной фразы с автоматическим обходом NAT.

    На следующей диаграмме показан процесс установки P2P-соединения gonc между домашней широкополосной сетью (hard NAT) и узлом в мобильной сети (symmetric NAT). Поскольку обе стороны имеют IPv6, на обоих концах используется опция -4 для принудительного использования IPv4, чтобы продемонстрировать обход NAT.

    hole-punching

P2P-туннель и HTTP-файловый сервер

  • Обе стороны согласуют одну и ту же парольную фразу. На стороне отправителя запустите HTTP-файловый сервер, чтобы предоставить доступ к файлам или каталогам для обмена. Опция -httpserver принимает несколько путей, каждый из которых может быть как отдельным файлом, так и каталогом:

    gonc -p2p <passphrase> -httpserver c:/RootDir1 c:/RootDir2
    
  • На принимающей стороне есть два варианта:

  1. Автоматически скачать весь каталог

    После выполнения следующей команды все файлы будут рекурсивно загружены на локальную машину. Если процесс прервётся, повторный запуск команды автоматически возобновит загрузку с места остановки:

    gonc -p2p <passphrase> -download c:/SavePath
    
  2. Просмотр и выборочная загрузка через браузер

    Этот вариант не запускает загрузку автоматически. Вместо этого вам нужно вручную открыть браузер и перейти по адресу http://127.0.0.1:9999, чтобы просмотреть список файлов узла и загрузить нужные файлы:

    gonc -p2p <passphrase> -httplocal-port 9999
    

    Если вам нужно скачать конкретный подкаталог, браузер становится неудобным, но вы можете сделать это так:

    gonc -http-download c:/SavePath http://127.0.0.1:9999/subdir
    

Безопасная шифрованная P2P-связь

  • Установите безопасную шифрованную P2P-связь между двумя разными сетями, согласовав парольную фразу (используйте gonc -psk . для генерации высокоэнтропийной парольной фразы вместо passphrase). Эта парольная фраза используется для взаимного обнаружения и вывода сертификатов, обеспечивая безопасность связи с TLS 1.3.

    gonc -p2p passphrase
    

    На другой стороне используйте те же параметры (программа автоматически попытается установить TCP- или UDP-связь (предпочтительно TCP), согласовать роли (TLS-клиент/сервер) и завершить протокол TLS):

    gonc -p2p passphrase
    

    Обратите внимание, что если другая сторона задержится с запуском, она завершится, если не сможет найти другую сторону для обмена информацией в течение примерно половины минуты. Поэтому также поддерживается механизм ожидания на основе подписки на сообщения MQTT, используя -mqtt-wait и -mqtt-hello для синхронизации времени запуска P2P обеими сторонами. Например, следующая команда использует -mqtt-wait для непрерывного ожидания,

    gonc -p2p passphrase -mqtt-wait
    

    На другой стороне,

    gonc -p2p passphrase -mqtt-hello
    
  • Проверьте ваш тип NAT

    gonc -nat-checker
    

    Это проверит ваши IPv6 и IPv4 TCP и UDP NAT-адреса и проанализирует изменения портов после NAT. Если адреса TCP6 или UDP6 не указаны, это означает, что у вас нет IPv6. Каждый адрес протокола заканчивается на "(easy)", что указывает на наивысшую вероятность успеха пробивки; "(hard)" указывает на более высокую вероятность успеха; а "(symm)" — самый сложный. Symm требует, чтобы другая сторона была либо "easy", либо "hard" для работы P2P.

Обратная оболочка (поддержка псевдотерминала для UNIX-подобных систем)

  • Слушатель (не использует -keep-open, принимает только одно соединение; без аутентификации с -psk):
    gonc -tls -exec ":sh /bin/bash" -l 1234
    
  • Подключитесь для получения оболочки (поддерживает TAB, Ctrl+C и т.д.):
    gonc -tls -pty x.x.x.x 1234
    
  • Используйте P2P для обратной оболочки (passphrase используется для аутентификации, обеспечивая безопасную связь с TLS 1.3):
    gonc -exec ":sh /bin/bash" -p2p passphrase
    
    На другой стороне:
    gonc -pty -p2p passphrase
    

Тест скорости передачи

  • Отправьте данные и измерьте скорость передачи (встроенные /dev/zero и /dev/urandom):
    gonc.exe -send /dev/zero -P x.x.x.x 1234
    
    Пример вывода:
    IN: 76.8 MiB (80543744 bytes), 3.3 MiB/s | OUT: 0.0 B (0 bytes), 0.0 B/s | 00:00:23
    
    На принимающей стороне:
    gonc -P -l 1234 > NUL
    

P2P-туннель и SOCKS5 / HTTP-прокси

  • Дождитесь установки туннеля:

    gonc -p2p passphrase -linkagent
    
  • На другой стороне запустите локальный SOCKS5 / HTTP-прокси сервис на порту 3080 для доступа к удалённой сети:

    # The link option controls how the local and remote proxy endpoints are created.
    # Use none to indicate that no listening port is opened on that side:
    gonc -p2p passphrase -link "3080;none"
    

    Далее, например, если вы хотите подключиться к 10.0.0.1:3389 в удалённой сети, вы можете просто ввести следующий адрес в вашем локальном клиенте удалённого рабочего стола:

    10.0.0.1-3389.gonc.cc:3080
    

    Этот домен будет разрешён в IP-адрес вида 127.b.c.d. В результате клиент удалённого рабочего стола подключится к локальному SOCKS5-прокси на порту 3080, а затем gonc выполнит обратный разбор адреса 127.b.c.d, чтобы извлечь информацию 10.0.0.1-3389 из доменного имени.

  • Формат конфигурации link

    # Based on the established tunnel, both local and remote sides listen on port 1080.
    # The proxy supports both HTTP and SOCKS5 protocols, with transparent proxy capability enabled.
    gonc -p2p <passphrase> -link "1080;1080"
    
Скачать инструмент