Когда вы запрашиваете ЛЮБОЙ, вы получите список всех записей на этом уровне, но не ниже.
# try this
dig google.com any
Это может возвратить записи A, записи TXT, записи NS, записи MX и т. Д., Если доменное имя точно "google.com". Однако он не возвращает дочерние записи (например, www.google.com). Точнее, вы МОЖЕТЕ получить эти записи, если они существуют. Сервер имен не должен возвращать эти записи, если он решит этого не делать (например, чтобы уменьшить размер ответа).
AXFR - это передача зоны и, скорее всего, то, что вы хотите. Однако они обычно ограничены и недоступны, если вы не контролируете зону. Обычно вы будете осуществлять передачу зоны непосредственно с официального сервера (@ ns1.google.com ниже) и часто с сервера имен, который может быть не опубликован (сервер скрытых имен).
# This will return "Transfer failed"
dig @ns1.google.com google.com axfr
Если у вас есть контроль над зоной, вы можете настроить ее для получения передач, которые защищены ключом TSIG. Это общий секрет, который клиент может отправить на сервер для авторизации передачи.
Я улучшил ответ Джоша . Я заметил, что
dig
отображаются только записи, уже присутствующие в кеше запрашиваемого сервера имен, поэтому лучше использовать авторитетный сервер имен из SOA (а не полагаться на сервер имен по умолчанию). Я также отключил фильтрацию подстановочных IP-адресов, потому что обычно меня больше интересует правильность настройки.Новый скрипт принимает
-x
аргумент для расширенного вывода и-s NS
аргумент для выбора конкретного сервера имен:dig -x example.com
источник
dig -t txt +nocmd $NS "$DOM" +noall +answer
(и измените$DOM
) для проверки записей TXT домена.Ввиду отсутствия возможности делать зонные переносы, я написал этот небольшой скрипт bash
dg
:Теперь я использую,
dg example.com
чтобы получить хороший, чистый список DNS-записей илиdg example.com x
включить кучу других популярных поддоменов.grep -vE "${wild_ips}"
отфильтровывает записи, которые могут быть результатом записи DNS с подстановочными знаками, например* 10800 IN A 1.38.216.82
. В противном случае подстановочный знак будет выглядеть так, как будто для каждой записи есть записи$COMMON_SUBDOMAN
.Примечание. Это зависит от
ANY
запросов, которые блокируются некоторыми поставщиками DNS, такими как CloudFlare .источник
dig -t txt +nocmd "$1" +noall +answer
(и изменить на"*.$1"
и т. д.), чтобы проверить записи TXT домена.host -a
работает хорошо, похоже наdig any
.НАПРИМЕР:
источник
host -a
значит, что это бесполезная команда, она просто не выполняет то, что ищет OP.Передача зоны - единственный способ убедиться, что у вас есть все записи поддоменов. Если DNS настроен правильно, вы обычно не сможете выполнять передачу во внешнюю зону.
Проект scans.io имеет базу данных DNS-записей, которые можно загружать и искать на поддоменах. Это требует загрузки 87 ГБ данных DNS, или вы можете попробовать онлайн поиск данных по адресу https://hackertarget.com/find-dns-host-records/
источник
Для Windows:
Может возникнуть необходимость проверить состояние записей DNS ваших доменов или проверить серверы имен, чтобы узнать, какие записи запрашивают серверы.
Запустите командную строку Windows, перейдя в Пуск> Командная строка или через Выполнить> CMD.
Введите NSLOOKUP и нажмите Enter. Сервер по умолчанию настроен на ваш локальный DNS, адрес будет вашим локальным IP.
Установите тип записи DNS, который вы хотите найти, набрав
set type=##
где ## - тип записи, затем нажмите Enter. Вы можете использовать ЛЮБОЙ, A, AAAA, A + AAAA, CNAME, MX, NS, PTR, SOA или SRV в качестве типа записи.Теперь введите доменное имя, которое вы хотите запросить, затем нажмите Enter. В этом примере мы будем использовать Managed.com.
NSLOOKUP теперь возвращает записи записей для домена, который вы ввели.
Вы также можете изменить серверы имен, к которым вы обращаетесь. Это полезно, если вы проверяете записи до того, как DNS полностью распространился. Для изменения сервера имен введите server [name server]. Замените [сервер имен] теми серверами имен, которые вы хотите использовать. В этом примере мы установим их как NSA.managed.com.
После изменения измените тип запроса (Шаг 3), если необходимо, затем введите новый домен (Шаг 4).
Для Linux:
1) Проверка записей DNS с помощью команды Dig. Dig - это универсальный инструмент для запроса DNS-серверов имен. Он выполняет поиск DNS и отображает ответы, которые были возвращены с серверов имен, которые были запрошены. Большинство администраторов DNS используют dig для устранения проблем DNS из-за своей гибкости, простоты использования и четкости вывода. Другие инструменты поиска, как правило, имеют меньше функциональности, чем копать.
2) Проверка записей DNS с помощью команды NSlookup Nslookup - это программа для запроса серверов имен доменов в Интернете. Nslookup имеет два режима: интерактивный и неинтерактивный.
Интерактивный режим позволяет пользователю запрашивать у серверов имен информацию о различных хостах и доменах или распечатывать список хостов в домене.
Неинтерактивный режим используется для печати только имени и запрашиваемой информации для хоста или домена. Это инструмент сетевого администрирования, который поможет им проверить и устранить неполадки, связанные с DNS.
3) Проверка записей DNS с помощью Host Command host - это простая утилита для выполнения поиска DNS. Обычно он используется для преобразования имен в IP-адреса и наоборот. Если аргументы или параметры не указаны, хост выводит краткую сводку аргументов и параметров командной строки.
источник
То, что вы хотите, называется зонной передачей . Вы можете запросить передачу зоны, используя
dig -t axfr
.Зона является областью , и все домены под ним, не делегированные к другому серверу.
Обратите внимание, что передача зон не всегда поддерживается. Они не используются при обычном поиске, только при репликации данных DNS между серверами; но есть и другие протоколы, которые могут использоваться для этого (например, rsync поверх ssh), риск раскрытия имен может быть угрозой безопасности, а ответы на передачу зоны стоят дороже при генерации и отправке, чем при обычном поиске DNS.
источник
Нет простого способа получить все записи DNS для домена в одном экземпляре. Например, вы можете просматривать только определенные записи, если вы хотите просмотреть запись A для определенного домена, вы можете использовать команду: dig (тип записи) domain.com. Это относится ко всем другим типам записей, которые вы хотите видеть для этого домена.
Если вы не знакомы с интерфейсом командной строки, вы также можете использовать сайт, такой как mxtoolbox.com. Это очень удобный инструмент для получения записей домена.
Надеюсь, это ответит на ваш вопрос.
источник