Прослушивание SMB-порта 445 и перенаправление на удаленный SMB-конечный узел. Если локальный порт — 445, инструмент сначала освобождает порт от встроенного SMB-сервера Windows:
root@kitploit:~
PortForwarder.exe 445 10.0.0.50 445 192.168.1.100
Если локальный порт — 445, перед привязкой инструмент автоматически:
Проверяет привилегии — подтверждает, что процесс запущен с повышенными правами (администратор). Если нет — завершается с четким сообщением.
Показывает текущего владельца — определяет PID/процесс, который currently использует порт 445 (обычно System, PID 4, через драйвер ядра srvnet).
Отключает SMB и освобождает порт — останавливает LanmanServer и драйверы srv2 / srvnet (рекурсивно останавливая зависимые службы), выводя каждый шаг для наглядности.
Проверяет и привязывается — подтверждает, что порт 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 (драйверы перезапускаются по требованию или при следующей загрузке). Используйте только на системах, которые вам разрешено тестировать.
Варианты использования
Локальная разработка
Доступ к сервисам, работающим в контейнерах или виртуальных машинах
WSAECONNRESET - Соединение сброшено другой стороной
WSAECONNABORTED - Соединение прервано
WSAENETRESET - Сеть вызвала разрыв соединения
WSAETIMEDOUT - Тайм-аут соединения
Потокобезопасность
Критические секции защищают массив соединений
Изменяемый флаг running для чистого завершения
Синхронизация потоков во время очистки
Рекомендации по безопасности
⚠️ Важные замечания по безопасности:
IP-фильтрация: Используйте параметр [allowed_ip] в продакшене для ограничения доступа
Шифрование отсутствует: Этот перенаправитель не шифрует трафик. Используйте с SSH-туннелями или VPN для конфиденциальных данных
Аутентификация: Встроенная аутентификация отсутствует. Убедитесь, что удаленный сервис имеет надлежащую защиту
Брандмауэр: Настройте брандмауэр Windows для ограничения доступа к прослушиваемому порту
Логирование: Отключите подробный режим в продакшене, чтобы избежать раздувания файлов лога
Ограничения ресурсов: Лимит в 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 для корректной остановки перенаправителя. Он:
Прекращает принимать новые соединения
Ожидает завершения активных соединений (до 5 секунд)
Закрывает все сокеты
Освобождает ресурсы
Выводит подтверждение очистки
Ограничения
Только Windows: Использует API Winsock2 (не переносим на Linux/macOS)
Только IPv4: В настоящее время поддерживает только IPv4-адреса
Один IP-фильтр: Можно указать только один разрешенный IP-адрес
Нет балансировки нагрузки: Трафик перенаправляется на одну удаленную конечную точку
Нет инспекции трафика: "Сырая" TCP-пересылка без анализа содержимого
Нет ограничения пропускной способности: Встроенного ограничения или QoS нет
Планируемые улучшения
Потенциальные функции для будущих версий:
Поддержка IPv6
Несколько IP в белом/черном списке
Обертка шифрования SSL/TLS
Панель статистики трафика
Поддержка конфигурационных файлов
Ограничение пропускной способности
Балансировка нагрузки по круговому принципу
Ограничение скорости соединений
Кроссплатформенная поддержка (Linux/macOS)
Лицензия
Это программное обеспечение предоставляется "как есть" для образовательных и легитимных целей администрирования сети. Используйте ответственно и в соответствии с применимыми законами и нормативными актами.
Вклад в разработку
Вклад приветствуется! Пожалуйста, убедитесь:
Код соответствует существующему стилю
Изменения хорошо протестированы на Windows
Комментарии объясняют сложную логику
README обновлен для новых функций
Поддержка
По вопросам, проблемам или запросам функций откройте issue в репозитории проекта.