DNS

[ linux ]

13 Sep 2013

Очень часто возникает необходимость получить информацию с 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