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

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

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

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

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

Категории

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

PortForwarder

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

Репозиторий
411142 месяцев назадПроверено 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:

root@kitploit:~
cl PortForwarder.c /Fe:PortForwarder.exe ws2_32.lib

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

root@kitploit:~
gcc PortForwarder.c -o PortForwarder.exe -lws2_32

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

root@kitploit:~
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:

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80

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

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

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50

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

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

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50 -v

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

root@kitploit:~
PortForwarder.exe 3306 database.example.com 3306

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

root@kitploit:~
PortForwarder.exe 2222 10.0.0.50 22 192.168.1.100

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

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

root@kitploit:~
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 свободен, затем привязывается и перенаправляет как обычно.

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

root@kitploit:~
[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
  • Аудит попыток подключения с подробным режимом

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

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

root@kitploit:~
[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 также логируются отклоненные соединения:

root@kitploit:~
[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 соединений предотвращает истощение ресурсов

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

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

root@kitploit:~
[ERROR] bind() failed: 10048

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

Невозможно подключиться к удаленному хосту

root@kitploit:~
[ERROR] connect() to remote failed: 10061

Решение: Убедитесь, что удаленный хост доступен и сервис работает на указанном порту.

Отказано в доступе

root@kitploit:~
[ERROR] bind() failed: 10013

Решение: Порты ниже 1024 могут требовать права администратора. Запустите от имени администратора или используйте порт с большим номером.

Соединение отклонено

root@kitploit:~
[INFO] Connection from X.X.X.X:XXXXX REJECTED (IP not allowed)

Решение: Включите подробный режим (-v), чтобы увидеть отклоненные IP, или отключите IP-фильтрацию.

Остановка перенаправителя

Нажмите Ctrl+C для корректной остановки перенаправителя. Он:

  1. Прекращает принимать новые соединения
  2. Ожидает завершения активных соединений (до 5 секунд)
  3. Закрывает все сокеты
  4. Освобождает ресурсы
  5. Выводит подтверждение очистки

Ограничения

  • Только Windows: Использует API Winsock2 (не переносим на Linux/macOS)
  • Только IPv4: В настоящее время поддерживает только IPv4-адреса
  • Один IP-фильтр: Можно указать только один разрешенный IP-адрес
  • Нет балансировки нагрузки: Трафик перенаправляется на одну удаленную конечную точку
  • Нет инспекции трафика: "Сырая" TCP-пересылка без анализа содержимого
  • Нет ограничения пропускной способности: Встроенного ограничения или QoS нет

Планируемые улучшения

Потенциальные функции для будущих версий:

  • Поддержка IPv6
  • Несколько IP в белом/черном списке
  • Обертка шифрования SSL/TLS
  • Панель статистики трафика
  • Поддержка конфигурационных файлов
  • Ограничение пропускной способности
  • Балансировка нагрузки по круговому принципу
  • Ограничение скорости соединений
  • Кроссплатформенная поддержка (Linux/macOS)

Лицензия

Это программное обеспечение предоставляется "как есть" для образовательных и легитимных целей администрирования сети. Используйте ответственно и в соответствии с применимыми законами и нормативными актами.

Вклад в разработку

Вклад приветствуется! Пожалуйста, убедитесь:

  • Код соответствует существующему стилю
  • Изменения хорошо протестированы на Windows
  • Комментарии объясняют сложную логику
  • README обновлен для новых функций

Поддержка

По вопросам, проблемам или запросам функций откройте issue в репозитории проекта.

Вы также можете поддержать мою работу на Patreon


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