Очень часто возникает необходимость получить информацию с DNS сервера (зачастую не основного). Решил структурировать свои знания по этому, чтобы хоть-как-то продвинуться в сторону улучшения навыков.
Основными инструментами будут: nmap, nslookup, dig.
Перво-наперво, требуется определить, кто же в сети - nameserver. Есть много способов, но самый тривиальный - просканировать сеть с поиском открытых портов:
nmap -A 192.168.0.0/16
И уже оттуда найти информацию по открытым 53 портам в сети.
Для упрощения, можно искать только их:
nmap -p 53 192.168.0.0/16 | grep -B 3 open
Предположим, что сервер найден по адресу 192.168.11.252
Во-первых (если мы уже находимся в этой сети) - неплохо бы получить имя хоста и домена.
nslookup 192.168.11.252
поможет нам в этом.
Не спорю, что с адресами работать тоже можно, но у нас же и была цель - получить информацию о именах, а не о цифрах.
Следующим шагом можно забрать информацию по определенному имени (или адресу) с сервера.
dig @192.168.11.252 -x 192.168.0.1 # для информации по адресу
dig @192.168.11.252 m-messiah.ru # для информации по имени хоста и домена
По умолчанию получаем только информацию о A-записях (см. ресурсные записи DNS )
Для получения инфо о всех записях данного хоста - в конце команды добавим слово ANY.
Для получения MX записей или SOA или различных текстовых, отосящихся к домену - в адресе запроса указывать домен:
dig @nameserver.domain domain. ANY
Также, нельзя забывать про то, что сервер может быть настроен на передачу все информации зоны другим dns-серверам. Эта особенность может быть очень полезной нам при знании названия нужной зоны:
dig @192.168.11.252 domain.com axfr