Запрос на зону (zone transfer, AXFR/IXFR) — это механизм протокола DNS, позволяющий получить полную копию DNS-зоны домена или её изменения. Он используется для синхронизации между основным (primary/master) и вторичными (secondary/slave) DNS-серверами, а также — при неправильной настройке — может стать источником утечки информации о всех поддоменах.
Что такое DNS-зона и передача зоны
DNS-зона — это часть пространства доменных имён, за которую отвечает конкретный DNS-сервер. Она содержит записи: A, AAAA, MX, NS, CNAME, TXT, SOA и другие.
Существует два типа запросов на передачу зоны:
- AXFR — полная передача зоны. Вторичный сервер запрашивает у основного весь набор записей целиком.
- IXFR — инкрементальная передача. Запрашиваются только изменения с определённого серийного номера (serial) записи SOA.
Механизм работы: вторичный сервер периодически проверяет серийный номер SOA-записи у мастера. Если номер выше текущего — инициируется передача зоны. Также процесс может быть запущен событием (DNS NOTIFY, RFC 1996) или вручную оператором, например для отладки.
Шаг 1. Узнать DNS-серверы, отвечающие за зону
Прежде чем отправлять AXFR-запрос, нужно определить авторитетные серверы имён домена:
dig NS example.com или nslookup -type=NS example;com
В ответе вы получите список NS-серверов, например: ns1.ex.com, ns2.ex.com.
Шаг 2. Отправить AXFR-запрос
Классический способ, утилита dig:
dig axfr example.com @ns1.ex.com
Альтернативные варианты:
host -l example.com ns1.ex.comnslookup -querytype=AXFR example.com ns1.ex.com(Windows)
Шаг 3. Проверка через nmap
Для аудита безопасности можно использовать скрипт Nmap:
nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=example.com -p 53 -Pn ns1.ex.com
Шаг 4. Интерпретация результата
- Transfer failed / REFUSED — сервер корректно настроен и отклоняет неавторизованные запросы. Это норма: большинство публичных DNS-серверов запрещают AXFR для посторонних.
- Список записей в ответе — сервер уязвим: любой желающий может получить все поддомены и записи зоны.
Практический пример
Для обучения существует специально настроенный домен zonetransfer.me, где передача зоны намеренно разрешена:
dig axfr zonetransfer.me @nsztm1.digi.ninja
В ответе вы увидите полный список записей зоны — отличный способ понять, какую информацию раскрывает открытый AXFR.
Как защитить свою зону
Если вы администратор DNS-сервера, обязательно ограничьте передачу зоны:
- В BIND укажите разрешённые IP-адреса вторичных серверов:
allow-transfer { 192...10; 203...25; };
затем примените:rndc reconfig - Используйте TSIG-ключи для аутентификации передач между серверами.
- Разрешайте TCP/53 только доверенным адресам на фаерволе.
- Регулярно проверяйте домен онлайн-сервисами аудита AXFR.
Юридический аспект
Важно помнить: отправка AXFR-запросов к чужим серверам без разрешения владельца может расцениваться как несанкционированный доступ. Используйте эти методы только для аудита собственной инфраструктуры или в рамках легального пентеста с письменного согласия заказчика.
Составить запрос на зону несложно: достаточно узнать NS-серверы домена и выполнить команду dig axfr. Однако корректно настроенный сервер ответит отказом. Для администраторов главный вывод — всегда ограничивайте передачу зоны списком доверенных IP-адресов, чтобы не раскрывать внутреннюю структуру домена злоумышленникам.