Добавить в корзинуПозвонить
Найти в Дзене
The Codeby

Два дня команд через DNS — и ни одного алерта

На одном из red team проектов в финансовом секторе я гонял C2-сессию через dnscat2, выгружая хеши из NTDS.dit. Suricata молчала. SIEM — пусто. SOC-аналитики разбирали HTTP-логи, а DNS-трафик спокойно уходил через корпоративный резолвер наружу. Никто не проверял энтропию поддоменов, никто не считал длину запросов. Почему так происходит? DNS и HTTP — протоколы, которым инфраструктура доверяет по умолчанию. Файрвол пропускает, прокси не лезет вглубь, baseline никто не строил. 🔍 Как работает DNS tunneling Атакующий регистрирует домен, поднимает авторитетный DNS-сервер. Агент на скомпрометированном хосте кодирует данные прямо в поддомен: base64data.c2.attacker.tld. Корпоративный резолвер по цепочке рекурсии доставляет запрос на сервер атакующего. Ответ приходит в TXT, CNAME или A-записи — внутри лежит команда. Ограничение: максимальная длина DNS-метки — 63 байта, полного имени — 253 байта. Скорость — единицы кбит/с. Для C2-команд хватает, для эксфильтрации терабайтов — забудьте. 🎇Инс

Два дня команд через DNS — и ни одного алерта

На одном из red team проектов в финансовом секторе я гонял C2-сессию через dnscat2, выгружая хеши из NTDS.dit. Suricata молчала. SIEM — пусто. SOC-аналитики разбирали HTTP-логи, а DNS-трафик спокойно уходил через корпоративный резолвер наружу. Никто не проверял энтропию поддоменов, никто не считал длину запросов.

Почему так происходит? DNS и HTTP — протоколы, которым инфраструктура доверяет по умолчанию. Файрвол пропускает, прокси не лезет вглубь, baseline никто не строил.

🔍 Как работает DNS tunneling

Атакующий регистрирует домен, поднимает авторитетный DNS-сервер. Агент на скомпрометированном хосте кодирует данные прямо в поддомен: base64data.c2.attacker.tld. Корпоративный резолвер по цепочке рекурсии доставляет запрос на сервер атакующего. Ответ приходит в TXT, CNAME или A-записи — внутри лежит команда.

Ограничение: максимальная длина DNS-метки — 63 байта, полного имени — 253 байта. Скорость — единицы кбит/с. Для C2-команд хватает, для эксфильтрации терабайтов — забудьте.

🎇Инструменты, которые стоит знать

• iodine — туннелирует IPv4 через DNS, создаёт виртуальный интерфейс dns0. Главный артефакт для детекта — фиксированная частота опроса в idle-режиме и непечатаемые символы в запросах.

• dnscat2 — полноценный C2-фреймворк только через DNS. Шифрованная сессия, shell, загрузка файлов. Характерный след — последовательные hex-паттерны в hostname запросов.

• Cobalt Strike DNS beacon — использует TXT, A и AAAA-записи. Поддерживает jitter и sleep, чтобы имитировать нерегулярный трафик. Часто работает как fallback: HTTPS основной, DNS на случай блокировки.

Из реальных кампаний: SUNBURST (SolarWinds, 2020) использовал DNS-запросы к поддоменам avsvmcloud.com как stage-1 selector — идентификатор жертвы кодировался в поддомене, ответы классифицировали цели. В 2023-м Infoblox раскрыла кампанию Decoy Dog — Pupy RAT поверх DNS через TXT-записи. Два года разницы — одна схема.

❓Как ловить

Три ключевых индикатора:

1. Энтропия поддоменов — легитимные запросы типа mail.google.com имеют низкую энтропию. Base64/hex-кодированные поддомены дают энтропию выше 3.5 бит на символ.

2. Длина и частота — запросы длиннее 50 символов с регулярным интервалом к одному домену — красный флаг.

3. Нетипичные типы записей — массовые TXT или NULL-запросы от рабочих станций в нормальной среде не встречаются.

Если ваш SOC не мониторит DNS-трафик на эти аномалии — у вас слепая зона размером с весь периметр.

Полный разбор с HTTP covert channels, примерами конфигов и правилами детекта — в статье на форуме.

https://codeby.net/threads/skrytyye-kanaly-peredachi-dannykh-c2-dns-tunneling-i-http-covert-channels-ot-nastroiki-do-detekta.93927/