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

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

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

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

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

Категории

Все категории
Loading categories
fraud-bridge — Инструмент туннелирования ICMP, DNS и NTP для обхода цензуры, с защитой целостности HMAC и фиксацией MSS для эффективных веб-сессий в ограничительных сетях. | Kitploit
Инструменты/GitHubGitHub/stealth/fraud-bridge
Обход IDS/IPSСетевая безопасностьКонфиденциальностьАнти-БотАнализ DNS
GitHubstealth/fraud-bridge

fraud-bridge

Инструмент туннелирования ICMP, DNS и NTP для обхода цензуры, с защитой целостности HMAC и фиксацией MSS для эффективных веб-сессий в ограничительных сетях.

Репозиторий
232471 год назадПроверено Kitploit

Популярное

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

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

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

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

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

Введение

fraud-bridge помогает обходить строгие ограничения цензуры, блокирующие прямые TCP- или UDP-соединения, путем создания туннелей через ICMP, NTP или DNS (поверх IPv4 или IPv6).

Он автоматически изменяет опцию MSS TCP для получения не фрагментированного потока пакетов (известного как MSS-clamping), что повышает производительность и позволяет использовать веб-сессии через мост.

Для защиты туннеля от внедренных вредоносных TCP-пакетов используется MD5 (с HMAC) для обеспечения целостности. Если требуется конфиденциальность, вам придется использовать шифрование самостоятельно. Предполагается, что вы в любом случае используете SSH поверх туннеля. Либо напрямую, либо с опцией SSH-прокси, если требуется туннелирование HTTP.

При туннелировании DNS fraud-bridge использует расширенные заголовки EDNS0, чтобы поместить как можно больше байт в ответ TXT.

fraud-bridge также включает некоторые другие методы для работы с определенными ограничениями bind, например, квоты/лимитирование.

Вы также можете использовать его для обеспечения полной поддержки роуминга/мобильности в ваших SSH-сессиях без каких-либо патчей.

После настройки туннеля вы можете ознакомиться с инструкцией по настройке работы мессенджера через туннель.

Также обратите внимание, что c->skills предоставляет полный арсенал оборудования для обхода цензуры, которое может вас заинтересовать: crash и psc.

Сборка

Просто выполните make в Linux.

Запуск

Использование следующее:

root@kitploit:~
fraud-bridge -- https://github.com/stealth/fraud-bridge

Usage: fraud-bridge <-k key> [-R IP] [-L IP] [-pP port] [-iIuUnN] [-s sz]
	[-E sz] [-d dev] [-D domain] [-S usec] [-X user] [-r dir] [-t type] [-v]

	-k -- HMAC key to protect tunnel packets
	-R -- IP or IPv6 addr of (outside) peer when started inside
	-L -- local IP addr to bind to if started outside (can be omitted)
	-p -- remote port when in DNS/NTP mode (default: 53/123)
	-P -- local port when in DNS/NTP mode (outside default: 53/123)
	-i -- use ICMP tunnel
	-I -- use ICMPv6 tunnel
	-u -- use DNS tunnel over IP
	-U -- use DNS tunnel over IPv6
	-n -- use NTP4 tunnel over IP
	-N -- use NTP4 tunnel over IPv6
	-E -- set EDNS0 size (default: 1024)
	-s -- set MSS size (default: 1024)
	-d -- tunnel device to use (default: tun1)
	-D -- DNS domain to use when DNS tunneling
	-S -- usec slowdown for DNS ping (default: 5000)
	-X -- user to run as (default: nobody)
	-r -- chroot directory (default: /var/empty)
	-t -- override ICMP/ICMP6 type (usually no need to change)
	-v -- enable verbose mode

Некоторые определения: inside относится к машине внутри цензурируемой сети, скорее всего, ваш ноутбук/ПК. outside относится к VPS или машине вне цензурируемой сети, т.е. тому, что называют "свободным интернетом".

После запуска fraud-bridge открывает туннель точка-точка: 1.2.3.4 <-> 1.2.3.5

Затем вам нужно запустить inside.sh на внутренней стороне и outside.sh на внешней.

Выглядит это так:

На внешнем конце туннеля (например, сервер в интернете):

root@kitploit:~
# ./fraud-bridge -u -L 192.168.2.222 -D f.sub.dnstunnel.com -k key

(и запуск outside.sh)

И на внутренней стороне:

root@kitploit:~
# ./fraud-bridge -u -R 127.0.0.1 -D f.sub.dnstunnel.com -k key

(и запуск inside.sh)

в качестве примера DNS-туннеля с локальным named, работающим на 127.0.0.1, и внешним пиром на 192.168.2.222. Как уже говорилось, внешнюю часть туннеля можно (и на самом деле нужно) запустить заранее; она будет просто ожидать подключения пира для открытия туннеля. Примеры зон-файлов включены, если вы хотите поэкспериментировать с собственными настройками bind. Для работы туннелей ITW они не обязательны.

Устройство туннеля по умолчанию — tun1. Убедитесь, что не запущено несколько экземпляров fraud-bridge одновременно или любое другое туннельное ПО, использующее это устройство. После каждого завершения/перезапуска демона fraud-bridge необходимо снова выполнить скрипты inside/outside на том конце, где вы его перезапустили.

Важные замечания

Параметр -L на внешней стороне можно (и следует) опускать. В реальных конфигурациях параметр -R на внутренней стороне содержит IP-адрес или IPv6-адрес внешнего сервера, или, если используется рекурсия DNS, IP-адрес DNS-сервера вашего провайдера или публичного рекурсивного DNS-резолвера. Если у вас нет собственного DNS-сервера, вы все равно можете использовать DNS-туннелирование, указав IP вашего VPS в качестве параметра -R на внутренней стороне и используя любой (но одинаковый) параметр домена -D на обоих концах, который выглядит легитимным для режима цензуры, например -D blah.gov.

Прежде чем пробовать DNS-туннелирование, скорее всего, стоит попробовать ICMP- или NTP-туннелирование. Если вы видите предупреждения о chroot в системном журнале, их можно игнорировать или указать корректные аргументы для -r.

Затем вы можете использовать ssh -D 1234 1.2.3.5 для SSH-подключения к 192.168.2.222 в приведенном выше примере и использовать SOCKS5-прокси на порту :1234 для вашего веб-браузера, который затем будет работать через туннель.

Вы также можете сделать то же самое с ICMP: -i и ICMP через IPv6: -I или DNS через UDP по IPv6: -U или NTP через UDP: -n или NTP через UDP/IPv6: -N.

Также возможна смена типа туннеля (DNS на ICMP или ICMP на NTP) поверх вашего SSH-соединения, или роуминг на другой локальный IP (например, переключение с Wi-Fi на 5G), так как состояние TCP хранится в локальном и удаленном ядре, а не в мосте. Это обеспечивает полную поддержку роуминга/мобильности SSH без каких-либо патчей к SSH.

В подробном режиме fraud-bridge оставляет stdout открытым для вывода сообщений об ошибках или сообщений, поэтому вам нужно запускать его в screen или перенаправлять вывод в /dev/null, если требуется работа в (подробном) фоновом режиме. Имейте это в виду, так как после запуска fraud-bridge необходимо запускать скрипты inside/outside. Если не используется -v, он уходит в фон и записывает ошибки в syslog.

Перед использованием любых ICMP-туннелей убедитесь, что вы ослабили правила брандмауэра вашего кабельного модема, чтобы получать ответные пакеты от удаленного пира. fraud-bridge работает за NAT, но ему все равно нужно получать ответные пакеты. При использовании ICMP-туннелирования, если ICMP-эхо заблокированы, можно задать параметр типа через -t. Например, используя -t 13 внутри и -t 14 снаружи для получения пар запросов/ответов временных меток.

При туннелировании DNS fraud-bridge использует расширенные заголовки EDNS0, чтобы поместить как можно больше байт в ответ TXT. В моих тестах, поскольку он пытается отвечать на любые тайминговые пакеты, он не создает записей в системном журнале bind9. Если вы изменяете EDNS0 (-E), это нужно делать на обоих концах с одинаковым значением. (Так как внутренняя сторона объявляет максимальный размер полезной нагрузки UDP серверу имен, а внешняя конечная точка вычисляет MSS из того, что было задано в -E.)

При использовании NTP-туннелирования некоторые провайдеры с CGN блокируют большие NTP-пакеты (только через IPv4). В типичном немецком ISP любые NTP-пакеты размером более 256 байт блокировались. Поэтому вам нужно соответствующим образом установить MSS, чтобы получать меньшие пакеты, например -s 100, чтобы стек TCP отправлял сегменты меньшего размера.

Соображения производительности

Поскольку fraud-bridge открывает туннель PtP, он может удалять IP-заголовки из пакетов, которые передает, и синтезировать их на каждом конце. Таким образом, для ICMP-туннелирования у вас есть накладные расходы всего 8 (ICMP) + 16 (HMAC) байт, что приемлемо. DNS-туннелирование все еще имеет хорошую задержку и пропускную способность при прямом подключении благодаря MSS-clamping. При непрямом туннелировании через публичные DNS-резолверы значения по умолчанию достаточны для поддержания приемлемой сессии, но, конечно, ICMP-туннелирование предпочтительнее, когда это возможно.

Используя ssh -D [0.0.0.0]:1234 1.2.3.5, вы можете настроить локальный SOCKS-прокси на вашей машине порт 1234 (внутри) и распространить его через WLAN на ваших соседей для веб-сессий без цензуры.

Вы также можете настроить локальный tor на внешней машине, предложив SOCKS-порт на 127.0.0.1:9150, как обычно, а затем используя ssh -L 9150:127.0.0.1:9150 1.2.3.5 для перенаправления этого внешнего порта на вашу внутреннюю машину, чтобы точно воспроизвести внешнюю настройку tor локально и распространить ее как SOCKS-порт tor через WLAN для ваших пользователей. Таким образом, нам не нужно реализовывать транспортируемые плагины, и вы все еще можете использовать tor как прежде. То же самое работает и с сессиями crash или psc, или любым другим механизмом туннелирования.

Параметр -S имеет разумное значение по умолчанию для тайминговых DNS-пакетов, которые необходимо отправлять серверу с постоянным интервалом. Меньшие значения дают лучшую задержку туннеля, но могут перегрузить рекурсивный DNS-сервер и создать больше шума.

с гордостью спонсируется:

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