Взлом и защита DNS-сервера

UFO (ufobject@mail.ru)

Спецвыпуск Xakep, номер #015, стр. 015-055-1

Представь себе такую ситуацию: лезет твой учитель по информатике во время очередного урока на свой любимый сайт www.microsoft.com, а вместо этого попадает на www.hardporno.ru! Представил? А знаешь, что это? Это результат успешной DNS-атаки. Что, заинтересовался ;)? Тогда слушай сюда.

Служба DNS

Сначала нам с тобой придется разобраться с принципом работы DNS-серверов, а то дальше ничего не будет понятно. Вот, скажем, ты хочешь зайти на какой-нибудь сайт. Что ты делаешь первым делом? Совершенно верно - набираешь адрес, типа www.rulezsite.ru. Твой комп в это время посылает пакет с запросом на DNS-сервер, адрес которого устанавливается при настройке твоей ОС. В пакете содержится буквенный алиас ресурса, набранный тобой (иначе говоря, доменное имя - rulezsite.ru). После получения DNS-запроса DNS-сервер начинает искать в своей базе данных IP-адрес, соответствующий запрошенному тобой домену. Если такого имени в своей базе сервер не находит, он пересылает запрос другому DNS-серверу. Если нужный IP-адрес находится, то он отправляется твоей машине. Теперь браузер знает IP'шник запрошенного тобой ресурса и начинает соединение с ним. На первый взгляд, все логично и правильно, но у этой схемы имеются свои уязвимые места ;).

Атака в тепличных условиях

Первый тип DNS-атаки - это создание обманного DNS-сервера вследствие перехвата запроса. Страшно звучит :)! Но как говорится - "не так страшен Гейтс, как его Windows". Сперва я расскажу про UDP-протокол, по которому работают DNS-сервера. Этот протокол сильно уязвим по сравнению с TCP. Все дело в том, что UDP не предусматривает средства идентификации своих сообщений (в отличие от TCP). Но это еще не все... С каждым переданным запросом в поле "порт отправителя" начальное значение 1023 увеличивается на единицу. Но и это еще не все! В UDP-пакетах существует поле ID, которое является идентификатором DNS-запроса. Если ты юзаешь Windows9x или Linux, то их командный интерпретатор оставляет значение поля ID, равное единице, а вот если у тебя стоит Netscape Нафигатор, то это поле с каждым новым запросом увеличивается на единицу. Также ведет себя и DNS-сервер: увеличивает на единицу поле ID. А вот теперь начинается самое интересное :). Предположим, что некий Василий Пупкин решил перехватить DNS-запрос несчастного пользователя и перевести его трафик на себя (вернув в ложном DNS-ответе свой IP вместо настоящего). Естественно, без ложного DNS-сервера ему никак не обойтись. Вначале ему придется ждать DNS-запроса, который должен быть послан с клиентской тачки (с тачки жертвы). Василий извлекает из перехваченного пакета IP-адрес запросившего хоста. Затем он генерирует пакет, в котором представляется DNS-сервером, который был запрошен удаленным хостом. А как он это делает? Да очень просто. В этом ложном ответе, в поле IP DNS-сервера, Василий ставит свой собственный IP. Теперь запросивший хост принимает Пупкина за настоящий DNS-сервер. Когда Василий получит новый пакет с запросом от хоста, он поменяет в нем IP-адрес отправителя и перешлет этот измененный пакет на настоящий DNS-сервер. В итоге получается, что Вася является как бы посредником между DNS-сервером и обманутым хостом. Теперь настоящий DNS-сервер думает, что сам Вася посылает запросы, а хост считает, что Вася является натуральным и без консервантов DNS-сервером :). Остался только один вопрос: а как же перехватить этот запрос от атакуемого хоста? Перехват возможен только в том случае, если атакующая машина находится на пути основного трафика или в сегменте DNS-сервера. Это основной минус такого типа атак :(.

Содержание  Вперед на стр. 015-055-2

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001