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

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

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

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

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

Категории

Все категории
Loading categories
PacketWhisper — PacketWhisper: Скрытое извлечение данных и обход атрибуции с использованием DNS-запросов и текстовой стеганографии. Избегайте проблем, связанных с типичными методами DNS-эксфильтрации. Передача данных между системами без прямого соединения устройств друг с другом или с общим конечным пунктом. Не требуется управлять DNS-сервером имен. | Kitploit
Инструменты/GitHubGitHub/trycatchhcf/packetwhisper
Эксфильтрация данныхСтеганографияКриптографияRed TeamingАнализ DNS
GitHubtrycatchhcf/packetwhisper

PacketWhisper

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

PacketWhisper: Скрытое извлечение данных и обход атрибуции с использованием DNS-запросов и текстовой стеганографии. Избегайте проблем, связанных с типичными методами DNS-эксфильтрации. Передача данных между системами без прямого соединения устройств друг с другом или с общим конечным пунктом. Не требуется управлять DNS-сервером имен.

653122726 лет назадПроверено Kitploit
Поделиться

PacketWhisper

PacketWhisper — скрытая передача данных и обход атрибуции с помощью DNS-запросов и текстовой стеганографии, без необходимости в контролируемых злоумышленником серверах имен или доменах; обход DLP/MLS-устройств; обход фильтрации данных и белых списков DNS-серверов. Преобразует любой тип файла (например, исполняемые файлы, Office, Zip, изображения) в список полных доменных имен (FQDN), использует DNS-запросы для передачи данных. Просто, но чрезвычайно эффективно.

(Обновление 27.05.2020: Да, я перенесу все свои проекты Github на Python3 в течение лета 2020 года.)

Автор

Joe Gervais (TryCatchHCF)

Чем это отличается от всех остальных методов эксфильтрации через DNS?

Традиционная эксфильтрация через DNS основана на одном из следующих подходов: DNS-туннелирование; скрытие данных в полях DNS-запроса; или закодированные/зашифрованные полезные нагрузки, разбитые на части и используемые в качестве поддоменов в DNS-запросе. Все эти методы требуют, чтобы злоумышленник контролировал домен и/или связанный с ним DNS-сервер для получения данных, что ведет к атрибуции. Эти подходы также уязвимы для черных списков DNS-серверов (распространено) и белых списков (становится все более распространенным). Еще одна проблема — аналитики DFIR знакомы с этими методами, а системы SIEM часто обнаруживают их и сигнализируют о них.

PacketWhisper преодолевает эти ограничения.

Что, если данные можно передавать с помощью собственных разрешенных DNS-серверов цели, без прямого соединения взаимодействующих систем друг с другом или с общим конечным пунктом? Даже если на границе сети применяется фильтрация данных для блокировки эксфильтрации?

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

Чтобы это осуществить, PacketWhisper объединяет DNS-запросы с текстовой стеганографией. Используя набор инструментов Cloakify, он преобразует полезную нагрузку в список строк FQDN. Затем PacketWhisper использует список FQDN для создания последовательных DNS-запросов, передавая полезную нагрузку через (или внутри) сетевые границы, при этом данные скрыты на виду, и две системы никогда не соединяются напрямую друг с другом или с общим конечным пунктом. Шифры, используемые PacketWhisper, обеспечивают несколько уровней обмана, чтобы избежать генерации оповещений, а также ввести в заблуждение попытки анализа.

Для получения данных вы захватываете сетевой трафик, содержащий DNS-запросы, любым удобным для вас способом. (См. «Захват файла PCAP» ниже для примеров точек захвата.) Затем вы загружаете захваченный файл PCAP в PacketWhisper (запущенный на любой удобной системе), который извлекает полезную нагрузку из файла и деклакифицирует её в исходную форму.

DNS — привлекательный протокол для использования, потому что, хотя это относительно медленный способ передачи данных, DNS почти всегда разрешен через сетевые границы, даже в наиболее защищенных сетях.

Важное примечание: Мы используем DNS-запросы для передачи данных, а не успешные DNS-разрешения. PacketWhisper никогда не требует успешного разрешения ни одного из своих DNS-запросов. Фактически PacketWhisper даже не смотрит на DNS-ответы. Это расширяет наши сценарии использования и подчеркивает тот факт, что нам никогда не нужно контролировать домен, к которому мы обращаемся, и никогда не нужно контролировать DNS-сервер, обрабатывающий DNS-запросы.

Итак, используя PacketWhisper, мы преобразуем полезную нагрузку, которая выглядит так:

В список FQDN, подобный этому:

Который PacketWhisper превращает в DNS-запросы, отображающиеся в сетевом трафике так:

Которые вы захватываете как файл PCAP в любой точке пути разрешения DNS, а затем загружаете этот PCAP в свою локальную копию PacketWhisper для восстановления полезной нагрузки:

Учебник

Смотрите слайды DEF CON 26 (включены в проект) из моей презентации на Packet Hacking Village. Слайды представляют информацию о DNS-эксфильтрации, текстовой стеганографии / наборе инструментов Cloakify и о том, как PacketWhisper объединяет их в метод передачи данных. Я специально создавал слайды так, чтобы они были полезны сами по себе, поэтому информация и предыстория должны быть полными. Однако вы также можете посмотреть видео моей презентации на DC26 Packet Hacking Village, которое предоставляет дополнительный контекст.

Я включил в проект образец файла PCAP (ловко названный «sample.pcap»), который содержит отдельные полезные нагрузки для каждого из шифров. Они могли бы быть файлами любого типа, конечно, но в данном случае я просто передал текстовые файлы в PCAP. Загрузите его в PacketWhisper и попробуйте!

В качестве быстрого теста в вашей собственной среде запустите PacketWhisper из виртуальной машины, затем отправьте файл, выполняя захват пакетов на сетевом интерфейсе VM через хост-систему. Затем вы можете загрузить файл PCAP в любой удобный экземпляр PacketWhisper для декодирования файла. Просто помните, что это не быстрая передача. Маленькие файлы и терпение — ваши друзья.

Требования

  1. Python 2.7.x (порт на 3.6.x в разработке)
  2. Для декодирования полезных нагрузок: tcpdump (включен в Linux и MacOS) или WinDump (Windows)

Вопрос: «Почему вы не использовали Scapy или dnspython?»

Ответ: Я ненавижу зависимости проектов в своих операционных инструментах. Я стараюсь делать свои проекты максимально атомарными и самодостаточными для максимальной надежности, особенно на стороне клиента, где я могу не контролировать среду и/или иметь минимальные привилегии. Благодаря структуре PacketWhisper я могу запустить его на ограниченном хосте с оболочкой, просто заархивировав проект и распаковав его на целевом хосте.

Вопрос: «Почему PacketWhisper не является форком проекта Cloakify Toolset?»

Ответ: Тот же ответ, что и выше. Нам нужен лишь очень специфический поднабор возможностей Cloakify, а добавление всего остального в PacketWhisper приведет только к загромождению каталога и появлению инструментов/шифров, которые PacketWhisper не может использовать. Поскольку я владею обоими проектами, я обещаю синхронизировать любые изменения между ними.

Запуск PacketWhisper

$ python packetWhisper.py

Шифры на основе FQDN

Шифры на основе FQDN состоят из 3 категорий:

  1. Уникальные случайные поддомены FQDN (рекомендуется — избегает DNS-кеширования, обходит NAT)
  2. Уникальные повторяющиеся FQDN (DNS может кешировать, но обходит NAT)
  3. FQDN распространенных веб-сайтов (DNS-кеширование может блокировать, NAT мешает)

Уникальные случайные поддомены FQDN

РЕКОМЕНДУЕМЫЙ РЕЖИМ ШИФРОВАНИЯ ДЛЯ БОЛЬШИНСТВА СЛУЧАЕВ ИСПОЛЬЗОВАНИЯ

Это FQDN со случайными элементами, встроенными в поддомены. Это помогает предотвратить DNS-кеширование, а также позволяет передавать данные за пределы NAT-устройств, которые могут находиться на пути DNS-запроса. Поскольку IP-адрес отправляющей системы недоступен за NAT-устройством, созданные шифром поддомены содержат уникальные элементы тегов, чтобы помочь нам идентифицировать полезные нагрузки PacketWhisper в захвате пакетов.

Эти шифры имитируют форматы различных сервисов, которые полагаются на сложные поддомены как средство идентификации сеанса, пользователя, кешированного контента и т. д. Этот подход помогает DNS-запросам PacketWhisper сливаться с остальным трафиком сети.

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

Уникальные повторяющиеся FQDN

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