В этой статье пойдет речь о зонах DNS, передаче зоны DNS и информации, которую злоумышленник может извлечь из этой операции. Также будут рассмотрены конкретные примеры передачи зоны DNS на реальных сайтах. Передача зоны DNS является, пожалуй, самым простым и популярным методом сбора информации обо всех членах какого-либо домена. Файл зоны DNS, как правило, содержит всю информацию, касающуюся имен, входящих домен. Зачастую также этот файл содержит детали внутренней непубличной сети и другую информацию, которая может быть использована для составления точной структуры целевой сети.
Немного базовой теории. Файл зоны является главным хранилищем информации о домене. В случае добавления поддомена в домен, использующийся для оригинального файла зоны, новый поддомен может стать частью этой же зоны, а может быть делегирован в новую зону, созданную для его поддержки. Многие организации в целях балансировки нагрузки и повышения отказоустойчивости используют не один, а два или более DNS-серверов. Главный DNS-сервер называется первичным сервером, остальные – вторичными. Так как запрос имени может прийти к любому серверу, то информация на всех серверах должна быть идентична. Для этого вторичные серверы при старте или по расписанию посылают запрос первичному серверу на предмет наличия изменений в файле зоны. Если со времени последней синхронизации на первичном сервере произошли изменения в данных зоны, то вторичный сервер инициирует передачу зоны DNS.
Из приведенной выше базовой информации можно сделать два простых вывода:
1. Делегируйте непубличные поддомены в отдельную зону, недоступную из вне.
2. Не осуществляйте передачу зоны DNS не авторизованным серверам.
Соблюдение этих двух нехитрых правил не даст злоумышленнику возможности одним запросом получить полную картину сети и найти в ней уязвимые точки. Как будет видно далее, даже крупные компании, тратящие немалые деньги на безопасность, не всегда их выполняют.
Программы, которые могут инициировать передачу зоны DNS, существуют как под Windows-платформу, так и под Unix-like-системы. Я для этих целей буду использовать программу nslookup, входящую в дистрибутив большинства операционных систем. Другие программы, которые могут произвести передачу зоны DNS:
1. Sam Spade – клиент под Windows с графическим интерфейсом.
2. Host – включается во все Unix-like-дистрибутивы.
3. Dig — включается во все Unix-like-дистрибутивы.
Используя nslookup в интерактивном режиме, можно выполнить передачу зоны DNS, присоединившись к соответствующему DNS-серверу. Рассмотрим конкретные примеры. Посмотрим, какую информацию мы сможем получить от такой крупной компании, как ОАО МТС. Для начала определим DNS-серверы:
Microsoft Windows [версия 6.0.6000]
(C) Корпорация «Майкрософт», 2006. Все права защищены
C:\Windows\system32>nslookup
Default Server: ns.masterhost.ru
Address: 192.168.0.155:53
> set querytype=any
> mts.ru
Server: ns.masterhost.ru
Address: 192.168.0.155:53
Неофициальный ответ:
mts.ru
primary name server = ns.mts.ru
responsible mail addr = mail.mts.ru
serial = 2007022000
refresh = 10800 (3 hours)
retry = 1800 (30 mins)
expire = 604800 (7 days)
default TTL = 86400 (1 day)
mts.ru text =
"v=spf1 ip4:194.54.148.0/24 ip4:81.211.47.0/24 ip4:213.87.4.0/24 ip4:212
.44.140.0/24 ip4:194.54.148.0/22 mx ~all"
mts.ru MX preference = 10, mail exchanger = mx.mts.ru
mts.ru MX preference = 20, mail exchanger = mx2.mts.ru
mts.ru MX preference = 30, mail exchanger = mx3.mts.ru
mts.ru internet address = 81.176.66.38
mts.ru nameserver = ns.mts.ru
mts.ru nameserver = ns2.mts.ru
mts.ru nameserver = ns2.mts.ru
mts.ru nameserver = ns.mts.ru
mx.mts.ru internet address = 81.211.47.1
mx2.mts.ru internet address = 194.54.148.6
mx3.mts.ru internet address = 194.54.148.6
>
Итак, имя первичного DNS-сервера – ns.mts.ru, вторичного – ns2.mts.ru. Далее непосредственно выполняем передачу зоны DNS.
> server ns.mts.ru
Default Server: ns.mts.ru
Address: 81.211.47.1
> ls -d mts.ru
ls: connect: Result too large
*** Can't list domain mts.ru: Unspecified error
DNS-сервер отклонил передачу зоны mts.ru на данный компьютер. Если это
ошибка, проверьте параметры безопасности передачи зоны для mts.ru на DNS-
сервере по IP-адресу 81.211.47.1.
Как видим, сервер отклонил передачу зоны. Что ж, не будем расстраиваться, все-таки МТС — это огромная компания и вопросам безопасности там наверняка уделяют достаточно внимания. Но давайте на всякий случай проверим и вторичный сервер.
> server ns2.mts.ru
Default Server: ns2.mts.ru
Address: 212.44.140.2
> ls -d mts.ru
После ввода последней команды мы, совершенно неожиданно, вместо отказа в передаче зоны получаем список из 864 имен, входящих в домен mts.ru. Приводить весь список я не буду, ограничусь лишь несколькими записями.
dealer A 213.87.4.2
admin.kostroma A 85.113.211.3
gw-inet A 194.54.151.1
partners A 81.176.66.38
service.kuban A 217.74.241.64
vip A 81.176.66.38
Как видно даже из названий, эти данные никак не должны являться публичными. И хотя в переданном файле зоны нет информации о внутренней сети, каждый из 864 хостов представляет потенциальную мишень для злоумышленника.
Разберем еще один пример. Сайт интернет-магазина www.shop77.ru. Тут и масштабы намного меньше, и вопросам безопасности (как мы убедимся далее) уделяют гораздо меньше внимания. Определение DNS-сервера я в этом случае опущу. Он один – ns.shop77.ru. Перейду непосредственно к передаче зоны DNS.
> server ns.shop77.ru
Default Server: ns.shop77.ru
Address: 81.211.17.62
> ls -d shop77.ru
[ns.shop77.ru]
shop77.ru. SOA ns.shop77.ru root.shop77.ru. (2005022205
3600 900 3600000 3600)
shop77.ru. NS ns.shop77.ru
shop77.ru. A 81.211.17.62
shop77.ru. MX 10 mail.shop77.ru
shop77.ru. MX 20 shop77.ru
elec CNAME ns.shop77.ru
hiservice A 192.168.0.19
shop77.ru.IN NS ns.avtoreal.ru
intra CNAME ns.shop77.ru
intra1 A 192.168.0.11
localhost A 127.0.0.1
mail CNAME ns.shop77.ru
need CNAME ns.shop77.ru
ns A 81.211.17.62
shop98 A 192.168.0.19
webdb A 192.168.0.19
www CNAME ns.shop77.ru
shop77.ru. SOA ns.shop77.ru root.shop77.ru. (2005022205
3600 900 3600000 3600)
>
А вот здесь уже и внутренние подробности присутствуют. Так, мы видим, что база данных располагается по адресу 192.168.0.19, так же как и сам магазин.
На этих примерах наглядно видно, что, даже не обладая каким-то специфичным программным обеспечением и навыками, можно собрать достаточно приватной информации, если у вас плохо настроен DNS-сервер, передающий зону DNS всем, кто сделает такой запрос. И хотя сама по себе технология передачи зоны является чисто сервисной функцией DNS-серверов, она может быть использована для сбора информации злоумышленником для составления структуры целевой сети и выявления ее слабых мест.
Дальнейшее изучение структуры целевой сети включает в себя также использование техники обратного DNS-преобразования (reverse DNS sweeping). Для этого используется утилита ghba.c, существующая под Unix-like-платформы в виде исходного кода. Загрузить ее можно по адресу /redir.php?url=www.attrition.org%2Ftools%2Fother%2Fghba.c. Эта утилита является сканером подсетей класса B или С. С помощью нее можно получить информацию о машинах (или устройствах), которые не защищены или спрятаны, но все равно имеют связанные с ними DNS-имена. Следующий пример показывает, как скачать, собрать и использовать эту утилиту. В качестве цели будет использовано адресное пространство сайта ЦРУ www.cia.gov.
# wget /redir.php?url=www.attrition.org%2Ftools%2Fother%2Fghba.c%3C%2Fi%3E
# ls
ghba.c
# cc -o ghba ghba.c
ghba.c: In function 'main':
ghba.c:105: warning: return type of 'main' is not 'int'
# ls
ghba ghba.c
# ./ghba
usage: ghba [-x] [-a] [-f
# ./ghba 198.81.129.0
Scanning Class C network 198.81.129...
198.81.129.100 => www.odci.gov
198.81.129.101 => www2.cia.gov
198.81.129.163 => ain-relay4-hme1.ucia.gov
198.81.129.193 => relay1.ucia.gov
198.81.129.194 => relay2.ucia.gov
198.81.129.195 => relay4.ucia.gov
198.81.129.222 => ex-rtr-129.ucia.gov
198.81.129.230 => res.odci.gov
Ссылки по теме
- DNS zone transfer во Всемирной энциклопедии
Статья получена: hostinfo.ru