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

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

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

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

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

Категории

Все категории
Loading categories
PortForwarder — Утилита перенаправления TCP-портов на C | Kitploit
Инструменты/GitHubGitHub/lsecqt/portforwarder
Утилиты общего назначенияКартирование сетиОбход IDS/IPSЛатеральное перемещениеТестирование на ПроникновениеУтилиты и фреймворкиRed Teaming
GitHublsecqt/portforwarder

PortForwarder

Утилита перенаправления TCP-портов на C

Репозиторий
4111223 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Перенаправление TCP-портов для Windows

Высокопроизводительный перенаправитель TCP-портов для Windows с возможностью IP-фильтрации и подробным логированием.

Возможности

  • ✅ Перенаправление TCP-трафика с локального порта на любой удаленный хост:порт
  • ✅ Опциональная IP-фильтрация для повышенной безопасности
  • ✅ Режим захвата порта 445 / SMB (отключает SMB и освобождает порт 445 для ретрансляции)
  • ✅ Поддержка до 100 одновременных соединений
  • ✅ Двунаправленная пересылка данных с статистикой в реальном времени
  • ✅ Подробный режим для отладки отклоненных соединений
  • ✅ Агрессивные настройки TCP keepalive для обнаружения разорванных соединений
  • ✅ Низкая задержка пересылки (алгоритм Нейгла отключен)
  • ✅ Корректное завершение работы (Ctrl+C)
  • ✅ Потокобезопасное управление соединениями

Требования

  • Операционная система Windows
  • Visual Studio (для компиляции) или MinGW-w64
  • Библиотека Winsock2 (входит в Windows SDK)

Компиляция

Используя командную строку разработчика Visual Studio:

cl PortForwarder.c /Fe:PortForwarder.exe ws2_32.lib

Используя MinGW-w64:

gcc PortForwarder.c -o PortForwarder.exe -lws2_32

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

PortForwarder.exe <local_port> <remote_host> <remote_port> [allowed_ip] [-v]

Параметры

  • <local_port> - Локальный порт для прослушивания (1-65535)
  • <remote_host> - Удаленный хост или IP-адрес для перенаправления трафика
  • <remote_port> - Удаленный порт для перенаправления трафика (1-65535)
  • [allowed_ip] - Необязательно - Принимать соединения только с этого IP-адреса
  • [-v] - Необязательно - Включить подробный режим (показывать отклоненные соединения)

Примеры

Базовое перенаправление портов (без IP-фильтрации)

Перенаправление локального порта 8080 на удаленный сервер 192.168.1.100 порт 80:

PortForwarder.exe 8080 192.168.1.100 80

Перенаправление портов с IP-фильтрацией

Принимать соединения только с 192.168.1.50:

PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50

Перенаправление портов с IP-фильтрацией и подробным логированием

Показывать попытки отклоненных соединений:

PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50 -v

Перенаправление на удаленный хост по имени

PortForwarder.exe 3306 database.example.com 3306

Перенаправление SSH-порта с ограничением по IP

PortForwarder.exe 2222 10.0.0.50 22 192.168.1.100

Захват порта 445 / SMB (только авторизованные тесты)

Прослушивание SMB-порта 445 и перенаправление на удаленный SMB-конечный узел. Если локальный порт — 445, инструмент сначала освобождает порт от встроенного SMB-сервера Windows:

PortForwarder.exe 445 10.0.0.50 445 192.168.1.100

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

  1. Проверяет привилегии — подтверждает, что процесс запущен с повышенными правами (администратор). Если нет — завершается с четким сообщением.
  2. Показывает текущего владельца — определяет PID/процесс, который currently использует порт 445 (обычно System, PID 4, через драйвер ядра srvnet).
  3. Отключает SMB и освобождает порт — останавливает LanmanServer и драйверы srv2 / srvnet (рекурсивно останавливая зависимые службы), выводя каждый шаг для наглядности.
  4. Проверяет и привязывается — подтверждает, что порт 445 свободен, затем привязывается и перенаправляет как обычно.

Пример вывода:

[445] === Захват порта 445 / SMB ===
[445] Проверка привилегий: запущен с повышенными правами (администратор). OK
[445] Порт 445 currently занят PID 4 (System (kernel / srvnet))
[445] Отключение SMB-сервера и освобождение порта 445...
[445] Остановка 'LanmanServer'...
[445]   служба 'LanmanServer' остановлена
[445] Остановка 'srv2'...
[445]   служба 'srv2' остановлена
[445] Остановка 'srvnet'...
[445]   служба 'srvnet' остановлена
[445] Порт 445 теперь свободен. Выполняю привязку.
[445] (Восстановить SMB позже с помощью: net start LanmanServer)

⚠️ Остановка этих служб отключает общий доступ к файлам/принтерам на хосте на время тестирования. Восстановите его после с помощью net start LanmanServer (драйверы перезапускаются по требованию или при следующей загрузке). Используйте только на системах, которые вам разрешено тестировать.

Варианты использования

Локальная разработка

  • Доступ к сервисам, работающим в контейнерах или виртуальных машинах
  • Перенаправление портов из WSL2 на хост Windows
  • Локальное тестирование вебхуков

Сетевые мосты

  • Соединение различных сегментов сети
  • Обход ограничений брандмауэра (только авторизованное использование)
  • Доступ к внутренним сервисам из DMZ

Доступ к базам данных

  • Безопасные подключения к базам данных с IP-фильтрацией
  • Туннелирование трафика БД через промежуточные хосты
  • Открытие локальных баз данных для удаленной разработки

Тестирование безопасности

  • Мониторинг и анализ шаблонов TCP-трафика
  • Тестирование контроля доступа на основе IP
  • Аудит попыток подключения с подробным режимом

Выводимая информация

Перенаправитель предоставляет подробное логирование:

[INFO] Конфигурация:
  Локальный порт:  8080
  Удаленный хост: 192.168.1.100
  Удаленный порт: 80
  Разрешенный IP:  192.168.1.50 (режим фильтрации)
  Подробный режим: ВЫКЛ

[INFO] Прослушивание порта 8080...
[INFO] Нажмите Ctrl+C для остановки

[INFO] Новое соединение от 192.168.1.50:54321 ПРИНЯТО
[INFO] Подключение к удаленному 192.168.1.100:80
[INFO] Соединение установлено, пересылка трафика...
[INFO] Закрытие соединения (Отправлено: 1024 байт, Получено: 2048 байт, Всего: 3072 байт)

Вывод в подробном режиме

При включенном флаге -v также логируются отклоненные соединения:

[INFO] Соединение от 192.168.1.99:54322 ОТКЛОНЕНО (IP не разрешен)

Технические детали

Оптимизация производительности

  • Размер буфера: 8KB буферы для эффективной передачи данных
  • TCP_NODELAY: Отключен алгоритм Нейгла для меньшей задержки
  • Keepalive: Агрессивные настройки (10с начальный, 1с интервал) для обнаружения разорванных соединений
  • Пул потоков: До 100 одновременных соединений с выделенными потоками пересылки
  • Неблокирующий Accept: Тайм-аут на основе select() для быстрого завершения

Обработка соединений

Каждое соединение создает выделенный поток пересылки, который:

  1. Устанавливает соединение с удаленным хостом
  2. Настраивает параметры сокета (тайм-ауты, keepalive, TCP_NODELAY)
  3. Использует select() для двунаправленной пересылки
  4. Отслеживает переданные байты в каждом направлении
  5. Корректно закрывает оба сокета при завершении

Обработка ошибок

Перенаправитель корректно обрабатывает типичные сетевые ошибки:

  • WSAECONNRESET - Соединение сброшено другой стороной
  • WSAECONNABORTED - Соединение прервано
  • WSAENETRESET - Сеть вызвала разрыв соединения
  • WSAETIMEDOUT - Тайм-аут соединения

Потокобезопасность

  • Критические секции защищают массив соединений
  • Изменяемый флаг running для чистого завершения
  • Синхронизация потоков во время очистки

Рекомендации по безопасности

⚠️ Важные замечания по безопасности:

  1. IP-фильтрация: Используйте параметр [allowed_ip] в продакшене для ограничения доступа
  2. Шифрование отсутствует: Этот перенаправитель не шифрует трафик. Используйте с SSH-туннелями или VPN для конфиденциальных данных
  3. Аутентификация: Встроенная аутентификация отсутствует. Убедитесь, что удаленный сервис имеет надлежащую защиту
  4. Брандмауэр: Настройте брандмауэр Windows для ограничения доступа к прослушиваемому порту
  5. Логирование: Отключите подробный режим в продакшене, чтобы избежать раздувания файлов лога
  6. Ограничения ресурсов: Лимит в 100 соединений предотвращает истощение ресурсов

Устранение неполадок

Порт уже занят

[ERROR] bind() failed: 10048

Решение: Другое приложение использует этот порт. Выберите другой локальный порт или остановите конфликтующий сервис.

Скачать инструмент