DNS для начинающего пентестера: записи, резолвинг и безопасная диагностика в учебной сети

Что делает DNS и почему это важно для пентестера​


DNS (Domain Name System) — распределённая база данных, которая преобразует доменные имена в IP-адреса и обратно. Для пентестера DNS — это одновременно источник разведданных и потенциальная поверхность атаки. Понимание того, как устроен резолвинг, какие записи существуют и как их читать, позволяет:

  • Определять инфраструктуру цели по публичным записям.
  • Обнаруживать поддомены, почтовые серверы, внутренние хосты.
  • Диагностировать проблемы с резолвингом в собственной лаборатории.
  • Понимать, какие данные может получить злоумышленник из открытых DNS-записей.

Иерархия доменного пространства​


DNS организован как дерево. Корень дерева обозначается точкой (.). Ниже идут домены верхнего уровня (TLD): .com, .org, .ru, .net и другие. Под ними — домены второго уровня, затем поддомены.

Пример структуры:

text
.
├── com.
│ ├── example.com.
│ │ ├── www.example.com.
│ │ └── mail.example.com.
│ └── another.com.
└── org.
└── test.org.

Каждый уровень делегируется отдельному набору серверов имён. Это означает, что за зону example.com отвечают конкретные NS-серверы, а за зону com. — другие. Делегирование — ключевой механизм масштабируемости DNS.

Основные типы ресурсных записей​


Ресурсная запись (Resource Record, RR) — единица данных в DNS. Каждая запись привязана к имени, имеет тип, класс, TTL и данные (RDATA).

ТипНазначениеПример RDATA
AIPv4-адрес хоста93.184.216.34
AAAAIPv6-адрес хоста2606:2800:220:1:248:1893:25c8:1946
CNAMEКаноническое имя (алиас)www.example.com → example.com
MXПочтовый обменник с приоритетом10 mail.example.com
NSСервер имён для зоныns1.example.com
PTRОбратная запись (IP → имя)34.216.184.93.in-addr.arpa → example.com
SOAНачало зоны: серийный номер, таймерыСодержит primary NS, email администратора, refresh/retry/expire
TXTПроизвольный текстSPF, DKIM, DMARC, верификация

Запись SOA​


SOA (Start of Authority) присутствует в каждой зоне ровно одна. Она содержит:

  • Primary name server зоны.
  • Email администратора (в формате admin.example.com, где первая точка заменяет @).
  • Serial number — инкрементируется при каждом изменении зоны.
  • Refresh, Retry, Expire, Minimum TTL — таймеры для вторичных серверов и кэширования.

Для пентестера SOA полезна тем, что serial number может указывать на частоту изменений в инфраструктуре.

Запись TXT и её подтипы​


TXT-записи изначально предназначались для произвольного текста, но на практике стали контейнером для структурированных данных:

  • SPF (v=spf1 ...) — список серверов, которым разрешено отправлять почту от имени домена.
  • DKIM — публичный ключ для проверки подписи писем.
  • DMARC — политика обработки писем, не прошедших SPF/DKIM.
  • Верификационные строки — подтверждения владения доменом для облачных сервисов.

Анализ TXT-записей помогает понять, какие почтовые и облачные сервисы использует организация.

Механика резолвинга​


Рекурсивный запрос​


Клиент (stub resolver) отправляет запрос локальному рекурсивному серверу (например, DNS-серверу провайдера или systemd-resolved). Рекурсивный сервер выполняет всю цепочку запросов сам и возвращает клиенту готовый ответ.

Цепочка для www.example.com:

  1. Запрос к корневому серверу: «Кто отвечает за .com
  2. Запрос к TLD-серверу .com: «Кто отвечает за example.com
  3. Запрос к авторитативному серверу example.com: «Какой A-адрес у www.example.com
  4. Ответ возвращается клиенту.

Итеративный запрос​


При итеративном подходе сервер не выполняет запрос за клиента, а возвращает referral — ссылку на следующий сервер. Клиент сам обращается к указанному серверу. Этот режим используется между DNS-серверами и предпочтителен для датаграммного доступа (UDP).

Кэширование и TTL​


Каждая ресурсная запись содержит поле TTL (Time to Live) в секундах. Рекурсивный сервер кэширует ответ на время TTL. Это означает:

  • Повторный запрос в течение TTL вернёт кэшированные данные без обращения к авторитативному серверу.
  • Изменения в DNS не видны мгновенно — нужно дождаться истечения TTL.
  • Для пентестера это важно: если запись изменилась, но TTL ещё не истёк, вы можете видеть устаревшие данные.

Транспорт: UDP и TCP​


DNS использует UDP порт 53 для стандартных запросов. Если ответ превышает 512 байт (или используется EDNS0 — расширение, увеличивающее размер), сервер устанавливает флаг TC (Truncated), и клиент повторяет запрос по TCP порт 53.

Zone transfer (AXFR/IXFR) всегда выполняется по TCP.

Для пентестера это означает:

  • Стандартные запросы — UDP/53.
  • Большие ответы и zone transfer — TCP/53.
  • При диагностике проверяйте оба протокола.

Безопасная диагностика в учебной сети​


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

dig — основной инструмент​


dig (Domain Information Groper) — утилита для DNS-запросов с детальным выводом.

bash

A-запись домена​


dig example.com A

MX-записи​


dig example.com MX

TXT-записи (SPF, DKIM, DMARC)​


dig example.com TXT

NS-записи (серверы имён зоны)​


dig example.com NS

SOA-запись​


dig example.com SOA

Запрос к конкретному серверу имён​


dig @ns1.example.com example.com A

Обратная запись (PTR)​


dig -x 93.184.216.34

Краткий вывод (только ответ)​


dig +short example.com A

Трассировка полного пути резолвинга​


dig +trace example.com A

Флаг +trace показывает всю цепочку: от корневых серверов до авторитативного. Это полезно для понимания, на каком этапе возникает проблема.

nslookup — простая альтернатива​


bash

A-запись​


nslookup example.com

Запрос к конкретному серверу​


nslookup example.com 8.8.8.8

MX-запись​


nslookup -type=MX example.com

nslookup проще, но даёт меньше деталей. Для серьёзной диагностики предпочтительнее dig.

host — минималистичный вывод​


bash
host example.com
host -t MX example.com
host -t TXT example.com

Проверка zone transfer (AXFR)​


Zone transfer — механизм синхронизации зоны между primary и secondary серверами. Если сервер разрешает AXFR без ограничений, любой может получить полный список записей зоны.

bash

Попытка zone transfer (только для собственных систем или с разрешения)​


dig @ns1.example.com example.com AXFR

Если AXFR разрешён, вы получите все записи зоны: поддомены, внутренние хосты, IP-адреса. Это классическая находка при разведке. В современных конфигурациях AXFR обычно ограничен списком IP secondary-серверов.

Важно: попытка AXFR на чужих системах без разрешения может расцениваться как несанкционированный доступ. Выполняйте это только в собственной лаборатории или в рамках согласованного scope.

Что пентестер извлекает из DNS​


Перечисление поддоменов​


DNS-записи — один из источников информации о поддоменах. Методы:

  • Пассивный сбор: базы данных Certificate Transparency (crt.sh), поисковые системы, архивы DNS.
  • Активный перебор: запросы к DNS-серверу с перебором возможных имён (wordlist-based). Генерирует трафик и может быть обнаружен.
  • Zone transfer: если AXFR открыт, даёт полный список.

Анализ инфраструктуры по записям​


Что смотримЧто можно узнать
NS-записиХостинг DNS, облачный провайдер
MX-записиПочтовый сервис (Google Workspace, Microsoft 365, собственный)
TXT SPF/DKIMКакие сервисы отправляют почту от имени домена
A/AAAA записи поддоменовВнутренние сервисы, staging-окружения, API
SOA serialЧастота изменений зоны

Обратные записи (PTR)​


Обратная зона in-addr.arpa позволяет по IP-адресу получить имя хоста. Для пентестера это способ:

  • Определить hostname сервера по IP.
  • Найти дополнительные домены, привязанные к тому же IP.

bash
dig -x 93.184.216.34

Типичные ошибки при диагностике DNS​


Игнорирование TTL​


Если вы изменили запись в лаборатории и сразу делаете запрос, но видите старое значение — проверьте TTL. Кэш рекурсивного сервера мог не обновиться.

Решение: запросите авторитативный сервер напрямую (dig @ns1.example.com ...) или дождитесь истечения TTL.

Путаница между рекурсивным и авторитативным ответом​


В выводе dig есть секция AUTHORITY SECTION и флаг aa (authoritative answer). Если флаг aa отсутствует, ответ пришёл из кэша рекурсивного сервера, а не от авторитативного. Это может давать устаревшие данные.

Проверка только UDP​


Некоторые DNS-серверы отвечают по UDP, но не по TCP (или наоборот). При диагностике проверяйте оба:

bash
dig +tcp example.com A

Неправильный формат обратной записи​


Обратная запись для 192.168.1.10 хранится как 10.1.168.192.in-addr.arpa. Частая ошибка — писать IP в прямом порядке.

Ограничения DNS как источника разведданных​


  • Не все записи публичны. Внутренние зоны (split-horizon DNS) могут отдавать разные ответы внутренним и внешним клиентам.
  • Кэш искажает картину. Рекурсивные серверы кэшируют данные, и вы можете видеть устаревшую информацию.
  • DNS не гарантирует актуальность. Запись может существовать, но сервис за ней уже не работает.
  • Rate limiting. Некоторые DNS-провайдеры ограничивают частоту запросов, что замедляет активный перебор.

Практический чек-лист для учебной лаборатории​


  1. Определите NS-серверы целевого домена: dig example.com NS.
  2. Запросите SOA: dig example.com SOA — обратите внимание на serial и TTL.
  3. Соберите A, AAAA, MX, TXT записи.
  4. Проверьте обратные записи для найденных IP: dig -x <IP>.
  5. Попробуйте AXFR на каждом NS-сервере (только с разрешения).
  6. Сравните ответы от разных NS-серверов — они должны быть консистентны.
  7. Используйте +trace для проверки полного пути резолвинга.
  8. Зафиксируйте TTL записей — это поможет понять, как быстро изменения станут видны.

Источники​


 
Назад
Верх Низ