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

Обзор эксплойтов

Крис Касперски

Хакер, номер #096, стр. 096-060-1


Урожай принято собирать по осени, и собирать действительно есть что. Никто не может сказать, что эта осень не оправдала своих надежд: имеет место очередная порция дыр в MS Windows, MS Office, IE 7, mozill'e, OpenSSL (затронувший в том числе и маршрутизаторы CISCO). Один баг интереснее другого, я разрывался на части, желая рассказать обо всем… И вот, отобрал, на мой взгляд, самые интересные дыры.

WarFTPD: отказ в обслуживании через format string

Brief

Это древний (или, скорее, исторический), могучий, не требовательный к ресурсам и к тому же абсолютно бесплатный ftp-сервер, созданный норвежским парнем по имени Jarle Aase (Ярле Осэ). Он очень часто используется в качестве ftp-серверов для домашних сетей, один из которых стоит у меня дома (ftp://nezumi.org.ru), раздавая в часы пик десятки тысяч файлов в день. Вот только падает иногда. В причинах этих падений разобрался испанский хакер Joxean Koret (joxeankoret perro yahoo punto es), выяснивший, что при попытке обработки аргумента, содержащего спецификатор %s, сервер вываливается по ошибке доступа на инструкции 431540h MOV CL, [EAX], очевидно, вылетающей за границы строки, не заканчивающейся нулем. Возможность засылки shell-кода крайне сомнительна, но ее нельзя исключать на все 100%. Ошибке подвержены следующие ftp-команды: CWD, CDUP, DELE, NLST, LIST и SIZE. Подробности смотри на www.securityfocus.com/bid/20944.

Targets

War FTP Daemon 1.82, 1.82.00-RC11.

Exploits

Для сокрушения сервера ему достаточно передать команду cdup %s*256, однако следует помнить, что это команда сервера, а не клиента! В частности, ms ftp.exe такой команды в своем арсенале не имеет и тупо говорит: «Недопустимая команда». Для чистоты эксперимента мы должны использовать telnet, сеанс работы с которым в случае с W2K/XP выглядит так:

Ручной завал сервера через telnet

$telnet.exe 127.66.76.17 21

220-nezumi ftp

WarFTPd 1.82.00-RC11 Win32 (Sep 22 2006) Ready

(C)opyright 1996 - 2006 by Jarle (jgaa) Aase - all rights reserved.

220 Please enter your user name.

<CTRL-]> ; // переключаемся в режим настройки терминала

SET LOCAL_ECHO ON ; // включаем режим эха

<ENTER> ; // возвращаемся в режим терминала

user WASM

230 User WASM logged in from host 127.69.69.69 (127.69.69.69)

cdup %s*256 ; // вводим команду, роняющую сервер

Готовый exploit с комментариями можно найти на www.forbiddenweb.org/topic/129579/index.html.

Solution

Более ранние версии (например, WarFTPd 1.82.00-RC10 от 25 января 2005 года) не имеют этой дыры, поэтому до выхода официальной заплатки рекомендуется использовать их.

AVP: локальное повышение текущего уровня привилегий

Brief

Известный антивирус Евгения Касперского (еще раз прошу не путать эту личность со мной) неожиданного оказался вирусом! Ошибка проектирования в движке перехватчика NDIS-TDI запросов (и на черта антивирусу лезть в NDIS, это же не брандмауэр какой-то?) привела к возможности передачи некорректных параметров из адресного пространства в ядро с захватом ядерных привилегий, ошибочно классифицированных на security focus как SYSTEM (смотри securityfocus.com/bid/20635). Для реализации атаки достаточно передать устройству KLIN или KLICK (соответствующих драйверам KLIN.SYS и KLICK.SYS) IOCTL-код с номером 80052110h, а вместе с ним - указатель на специальным образом сконструированный IRP-пакет с shell-кодом на борту. Честь открытия дыры принадлежит 24-летнему испанскому хакеру, владельцу уникального ресурса www.reversemode.com по прозвищу Ruben Santamarta, рапортовавшему о проблеме в компанию iDefense Labs (labs.idefense.com/intelligence/vulnerabilities/ display.php?id=425) и очень обижающемуся, когда его принимают за японца. В одном из своих exploit'ов он прямо так и написал: «I AM NOT Japanese :P». Кстати, аналогичная ошибка была обнаружена в драйвере SAVRT.SYS от Symantec AntiVirus версий 8x-9x.

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