Knowledge Base
DNS Zone Transfer (AXFR) — открытая передача зоны
DNS Zone Transfer (AXFR) — открытая передача зоны
Категория: DNS Security · Риск: high
DNS Zone Transfer (AXFR) — открытая передача зоны
Что это такое
DNS Zone Transfer (тип запроса AXFR) — механизм репликации DNS-зоны между серверами. Первичный (primary) NS-сервер передаёт вторичному (secondary) полный список всех DNS-записей домена.
Если сервер не ограничивает список адресов, которым разрешена передача зоны, **любой пользователь интернета** может запросить AXFR и получить полный реестр всех поддоменов, IP-адресов, почтовых серверов и служебных записей домена.
Почему это опасно
Получив список всех поддоменов, атакующий:
- Находит скрытые административные панели (`admin.company.ru`, `vpn.company.ru`)
- Обнаруживает тестовые и staging-серверы с менее строгой защитой
- Строит карту инфраструктуры без единого запроса к основному сайту
- Ищет поддомены, указывающие на устаревшие или брошенные сервисы (цель для subdomain takeover)
# Пример уязвимого запроса
dig AXFR example.com @ns1.example.com
# Вывод при уязвимости:
; <<>> DiG 9.18 <<>> AXFR example.com @ns1.example.com
example.com. 3600 IN SOA ns1.example.com. ...
example.com. 3600 IN A 1.2.3.4
www.example.com. 3600 IN A 1.2.3.4
admin.example.com. 3600 IN A 1.2.3.4
vpn.example.com. 3600 IN A 5.6.7.8
staging.example.com. 300 IN A 192.168.1.10 ← внутренний адрес утёк
...
Как проверить
# Получить список NS-серверов
dig NS example.com +short
# Попытаться запросить AXFR у каждого
dig AXFR example.com @ns1.example.com
dig AXFR example.com @ns2.example.com
# Безопасный результат:
# ; Transfer failed.
# или
# ; REFUSED
Как исправить
BIND 9
// /etc/bind/named.conf.local
zone "example.com" {
type primary;
file "/etc/bind/db.example.com";
// Только вторичным NS — по IP
allow-transfer { 5.6.7.8; }; // IP вашего secondary NS
// Или запрет всем:
// allow-transfer { none; };
};
PowerDNS
# /etc/powerdns/pdns.conf
allow-axfr-ips=5.6.7.8/32 # только secondary NS
Cloudflare / управляемые DNS-провайдеры
Все управляемые DNS-провайдеры (Cloudflare, Route53, Яндекс.360) **по умолчанию** блокируют AXFR от посторонних. Уязвимость актуальна только при использовании собственного BIND/PowerDNS.
Дополнительная защита
- Используйте TSIG-ключи для аутентификации передачи зоны:
allow-transfer { key secondary-key; };
- Регулярно проверяйте экспозицию: `dig AXFR example.com @<каждый NS>`
- Рассмотрите переход на DNS-провайдер с управляемой репликацией
Связанные проверки
- [Инвентаризация поддоменов](/kb/web_app_security/subdomain-takeover-inventory)
- [CAA-записи](/kb/dns/caa-certificate-authority-authorization)