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

UFO (ufobject@mail.ru)

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


У нас руки длинные!

Рассмотрим теперь другой способ реализации DNS-атаки - создание ложного DNS-сервера на компьютере Василия Пупкина путем безбожного закидывания атакуемого хоста ложными DNS-ответами. Представь себе, что Василий не попал в сегмент DNS-сервера и не находится на пути основного трафика. Ну и что же теперь ему делать? Не оставлять же все как есть :)! Вот мы ему сейчас и поможем... Помнишь, я рассказывал про недостатки протокола UDP, которым пользуются DNS-сервера? Вот нам сейчас это пригодится. Вот что необходимо для того чтобы сгенерировать DNS-ответ:

1. Совпадение IP-адреса отправителя ответа с IP-адресом DNS-сервера.

2. Должны совпадать имена, содержащиеся в DNS-ответе и DNS-запросе.

3. DNS-ответ должен посылаться на тот же порт, с которого посылался запрос.

4. В пакете DNS-ответа поле ID должно совпадать с полем ID в запросе.

Это основные условия, которые необходимо соблюдать Василию Пупкину для реализации удаленной DNS-атаки. Если с первым и вторым пунктами проблем не возникнет, то с третьим и четвертым траблы будут. Как нам угадать, с какого порта посылался запрос? Естественно, сразу это сделать не получится. Остается только способ грубой силы, то есть - перебор. Эта задача облегчается тем, что науке уже давно известно, что порт отправителя запроса меняется только в положительную сторону, то есть плюсуется. Так как изначальное его значение - 1023, то просто перебираем это значение путем увеличения его на единицу. Вроде как с этим разобрались, но осталась еще одна проблема - поле ID в пакетах DNS-ответа и DNS-запроса. С этим дело обстоит немного полегче. Как уже было сказано ранее, это поле либо равно единице, либо близко к нулю (в случае использования Netscape Нафигатора). Соответственно, проблема решается таким же перебором. Ок, а что теперь-то делать? А вот теперь приступаем к самой атаке. Предположим, что некий Билл решил зайти на свой любимый сайт www.porno.ru. Василий Пупкин никак не может ему этого позволить, так как на этом сайте содержится фотография его девушки в обнаженном виде! Василий начинает в темпе генерировать пакеты с ложным DNS-ответом и посылает их непрерывным потоком на комп к Биллу. Естественно, Василий так и не узнает, когда был послан запрос на DNS-сервер, но ему это и не нужно. После того как Билл послал запрос на DNS-сервер, его комп пытается поймать DNS-ответ, но вместо этого принимает шторм ложных пакетов с хоста Василия. Все неправильно сгенерированные пакеты отметаются компьютером Билла, а принимается только тот пакет, в котором совпали номер порта отправителя и поле ID. Все. Ложный DNS-ответ принят. Теперь Билл будет посылать свои дальнейшие запросы не на DNS-сервер, а на компьютер Пупкина. Василий, в свою очередь, в ложном DNS-ответе может вставить IP-адрес любого ресурса и тем самым направить Билла не на желаемый www.porno.ru, а на любой другой сайт. Вот так вот! Сложно? Это тебе не плюшки со стола тырить :).

Назад на стр. 015-055-1  Содержание  Вперед на стр. 015-055-3