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

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

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

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

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

Категории

Все категории
Loading categories
browsertunnel — Незаметно извлеките данные из браузера через DNS | Kitploit
Инструменты/GitHubGitHub/veggiedefender/browsertunnel
Эксфильтрация данныхВеб-безопасностьRed TeamingАнализ DNS
GitHubveggiedefender/browsertunnel

browsertunnel

Незаметно извлеките данные из браузера через DNS

Репозиторий
42230196 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

browsertunnel

CircleCI

Browsertunnel — это инструмент для извлечения данных из браузера с использованием протокола DNS. Он достигает этого за счёт злоупотребления функцией dns-prefetch, которая предназначена для уменьшения воспринимаемой задержки веб-сайтов путём выполнения DNS-запросов в фоновом режиме для указанных доменов. DNS-трафик не отображается в инструментах отладки браузера, не блокируется Content Security Policy (CSP) страницы и зачастую не проверяется корпоративными файрволами или прокси, что делает его идеальным каналом для скрытой передачи данных в ограниченных сценариях.

Это старая техника — DNS-туннелирование как таковое появилось ещё в 90-х, и Патрик Вананти писал об использовании dns-prefetch для этого в 2016 году, но, насколько мне известно, browsertunnel — это первая открытая, готовая к промышленному использованию клиент-серверная реализация, демонстрирующая её применение. Поскольку dns-prefetch не возвращает никаких данных обратно в клиентский javascript, связь через browsertunnel осуществляется только в одном направлении. Кроме того, некоторые браузеры отключают dns-prefetch по умолчанию, и в таких случаях browsertunnel молча завершится неудачей.

Проект состоит из двух частей:

  1. Сервер, написанный на Go, работает как авторитативный DNS-сервер, который собирает и декодирует сообщения, отправленные browsertunnel.
  2. Небольшая JavaScript-библиотека, находящаяся в папке html/, кодирует и отправляет сообщения со стороны клиента.

Как это работает

Browsertunnel может отправлять произвольные строки по DNS, кодируя строку в поддомене, который пересылается на сервер browsertunnel, когда браузер пытается рекурсивно разрешить домен.

Длинные сообщения, которые не помещаются в один домен (253 байта), автоматически разбиваются на несколько запросов, которые собираются и декодируются сервером.

Установка и использование

Сначала настройте DNS-записи, чтобы делегировать поддомен вашему серверу. Например, если IP вашего сервера — 192.0.2.123, и вы хотите использовать туннель через поддомен t1.example.com, то конфигурация DNS будет выглядеть так:

t1		IN	NS	t1ns.example.com.
t1ns		IN	A	192.0.2.123

На вашем сервере установите browsertunnel с помощью go get. В качестве альтернативы скомпилируйте browsertunnel на своей машине и скопируйте бинарник на сервер.

go get github.com/veggiedefender/browsertunnel

Затем запустите browsertunnel, указав поддомен для туннелирования.

browsertunnel t1.example.com

Полные параметры можно посмотреть, выполнив browsertunnel -help:

$ browsertunnel -help
Usage of browsertunnel:
  -deletionInterval int
    	seconds in between checks for expired messages (default 5)
  -expiration int
    	seconds an incomplete message is retained before it is deleted (default 60)
  -maxMessageSize int
    	maximum encoded size (in bytes) of a message (default 5000)
  -port int
    	port to run on (default 53)

Более подробные описания и обоснование этих параметров можно найти в godoc.

Наконец, протестируйте ваш туннель! Вы можете использовать мою демонстрационную страницу здесь или клонировать этот репозиторий и открыть html/index.html локально. Если всё работает, вы должны увидеть сообщения, выводимые в stdout.

Для реальных применений этого проекта вы, возможно, захотите сделать форк и адаптировать код под свои нужды. Несколько идей:

  • Записывать сообщения в базу данных вместо вывода в stdout
  • Транспилировать или переписать клиентский код для работы со старыми браузерами
  • Увеличить или уменьшить длину идентификатора в домене в зависимости от объёма трафика и ожидаемых коллизий идентификаторов
  • Аутентифицировать и шифровать сообщения для обеспечения секретности и защиты от подделок (помните, что DNS — это протокол с открытым текстом)
Скачать инструмент