Автор: Бойцев О.М.
Источник: © компьютерная газета
Новейшие версии вредоносного ПО, которое не определяется антивирусами даже с «daily»-базами, и модификации уже существующих вредоносных программ уже давно стали «фоном» современного киберпространства. Вирусописатели всячески изощряются: сегодня уже никого не удивишь вредоносной программой, замаскированной под GPEG-файл; посещение HTML-странички может запросто обернуться подгрузкой на ваш ПК самого настоящего трояна, а выход в Интернет с SP1 — MS Blast'ом, сидящим в самом чреве вашей системы. И тут вопрос даже не в том, что количество вновь появившихся уязвимостей ПО имеет экспоненциальный рост. Тот, кто пишет вредоносное ПО, всегда на шаг впереди того, кто делает от него защиту… В рамках данной статьи на примере известнейшего трояна Back Orifice я постараюсь рассмотреть принцип и особенности работы троянских программ, затронув нестандартные методы поиска и уничтожения вредоносного ПО.
Наш герой — Back Orifice: живая легенда 8 лет спустя…
Без преувеличения будь сказано: с азартным трепетом и чувством глубокого уважения к создателям рассмотрим «анатомию» самой известной и нашумевшей в свое время утилиты — Back Orifice. Подобно тому, как засекреченные документы времен железного занавеса ныне становятся общедоступны, на справедливый суд и критику читателей автор статьи с большим удовольствием представляет сей мануал.
С чего же все началось? Наверняка история создания знаменитого BO была бы неполной без упоминания ее создателей — известнейшей хакерской группы Cult of the Dead Cow (cDc). Основанная в середине 80-х, команда с достоинством прошла огонь, воду и медные трубы и до сих пор процветает и здравствует. В 1993 г. один из участников группы — Drunkfix — создал официальный сайт в сети Интернет, после чего известность хак-группы начала распространятся не только через BBS. Большую заслугу в обретении широкой известности cDc внес один из участников группы — Ratte, — который играл роль своеобразного пресс-атташе… 1 августа 1998 г. на конференции Defcon один из членов группы Sir Dystic представил Back Orifice широкой публике. Как заявил автор, его детище — это лишь подтверждение того, насколько уязвимой может быть MS Windows.
Back Orifice работала (и работает;)) по принципу клиент/сервер и позволяла удаленно администрировать ПК, на котором предварительно установлена серверная часть… Очень скоро BO приобрела статус троянского коня: антивирусные базы пополнились записями типа BackDoor.BOrifice, Trojan.Bo… чему, собственно, удивляться особенно и не приходится, ведь BO с успехом можно использовать и для удаленного управления чужим ПК. Графический интуитивно понятный интерфейс программы и ее внушительные возможности произвели настоящий фурор, после чего в известных кругах установка BO на чужой ПК превратилась во что-то вроде увлекательного соревнования. С выходом в свет новой версии Back Orifice 2000, которая, помимо Win95 и Win98, поддерживала Windows NT и имела открытый код, популярность «народного любимца» достигла своего апогея. Относительно BO начала высказываться и Microsoft: программа, мол, не является прямой угрозой для MS Windows и требует со стороны атакующего установки серверной части на машину жертвы. Так или иначе, а на сегодняшний день знаменитый Back Orifice классифицируется как самый настоящий троян. Согласно современной классификации (использована информация сайт не побоюсь этого слова, наш герой в базах данных различных антивирусных компаний выглядит следующим образом: Backdoor.Win32.BO.a («Лаборатория Касперского»), известен также как Backdoor.BO.a («Лаборатория Касперского»), Orifice.svr (McAfee), W32.HLLP.Clay.dr (Symantec), BackDoor.BOrifice (Doctor Web), Troj/Orifice-A (Sophos), Backdoor: Win32/BOClay (RAV), BKDR_BO.58880 (Trend Micro), Boserve-01 (H+BEDV), W32/Back_Orifice.124928 (FRISK), Win32:Trojan-gen. (ALWIL), BackDoor.BackOrifice (Grisoft), Backdoor.BackOrifice.A (SOFTWIN), Trojan.Bo (ClamAV), Trj/BOr (Panda), Back_Orifice.Dropper (Eset).
Продвигаемся вглубь…
Являясь достаточно мощной утилитой удаленного администрирования, Back Orifice позволяет пользователю контролировать компьютеры при помощи обычной консоли или графической оболочки. А теперь внимание: ни много ни мало крылатая фраза, которая весьма емко отражает возможности программы: «В локальной сети или через Internet BO предоставляет пользователю больше возможностей на удаленном Windows-компьютере, чем имеет сам пользователь этого компьютера»;)). Согласно классификации "Лаборатории Касперского", BO могла вовсе и не попасть в «черный список», если бы не одно но: при запуске серверной части отсутствуют какие-либо предупреждения о запуске: «продвигаясь вглубь», троянец незаметно устанавливает себя в системе и затем берет ее полностью под свой контроль, при этом жертве не выдается никаких сообщений о действиях троянца в системе. Более того, в списке активных приложений ссылка на BO отсутствует…
Attention! A trojan detected
Распространяется BO как пакет, включающий в себя серверную часть (BOSERVE.EXE или bo2k.exe — возможны вариации), клиентскую часть (bo2kgui.exe) и файл конфигурации сервера (bo2kcfg.exe). В дополнение к трем перечисленным компонентам пакет может содержать плагины и документацию. Все три компонента программы написаны на C++ и откомпилированы Microsoft Visual C++. Все программы имеют формат Portable Executable и могут выполняться только в среде Win32.
Как вы уже поняли, основной программой в пакете является BOSERVE.EXE, он же bo2k.exe. Следует отметить, что при установке на целевой ПК сервер можно обнаружить под другими именами вплоть до system, explore и др. в зависимости от фантазии того, кто конфигурировал сервер. Вторым файлом является BOCONFIG.EXE, он же bo2kcfg.exe, назначение которого — первичная настройка сервера. Программа конфигурации позволяет производить самые разнообразные настройки вплоть до склейки сервера с каким-либо другим исполняемым файлом. Зачем это нужно, думаю, объяснять не стоит. И, наконец, то, посредством чего осуществляется удаленное управление серверной частью — клиентская часть — bo2kgui.exe. При запуске серверной части происходит инициализация сокетов Windows (если очень упрощенно, то сокет представляет собой серверный софт, работающий с каким-либо портом) — другими словами, сервер BO настраивает под себя нужные порты, в результате чего открытыми оказываются порт 31337 (кстати, цифра 31337 известна не только благодаря тому, что порт 31337 является дефолтовым портом BO — в околохакерских кругах 31337 означает ни много ни мало "элита";)). Следует учесть, что при заражении BO 31337 порт может молчать, ведь никто не мешает настроить работу сервер/клиент на другой порт… При заражении в системном каталоге Windows появляется файл WINDLL.DLL. Далее троян определяет адреса нескольких Windows API, ищет свою копию в памяти и выгружает ее, если обнаружена старая версия утилиты — попросту говоря, сам себя обновляет. После вышеперечисленного BO, как и любой уважающий себя троян, копируется в системный каталог Windows (c: \windows\system), прописывая себя на автозапуск в следующем ключе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
После того как троянец закрепляется в системе, он начинает слушать 31337 UDP-порт, оставаясь в памяти Windows как скрытое приложение (т. е. без активного окна и ссылки в списке приложений). После того, как сервер получил команды от клиента, на машине жертвы возможно развитие следующего сценария:
— Сервер высылает своему истинному хозяину различную информацию о системе: тип процессора, размер памяти, версия системы, установленные устройства и т. п.;
— Сервер расшаривает диски, делая их видимыми из сети.
Таким образом, удаленный пользователь получает полный доступ к зараженной системе: операции удаления, копирования и т. п. вплоть до форматирования становятся настолько же реальными, как если бы вы работали за своим собственным ПК;). Помимо перечисленного, удаленный пользователь имеет возможность отключать текущего пользователя от сети, подвешивать систему, убивать процессы, получать и отправлять кэшированные пароли, выводить текстовые сообщения, проигрывать звуковые файлы и т. д., и т. п. Вышеперечисленные возможности отнюдь не являются верхом того, на что способен BO: для того, чтобы расширить список функций, достаточно скачать пару новых плагинов (plug-in) — и все;).
Скальпель!..
Если ваш антивирус упорно молчит, а возможность присутствия трояна высока, то самое время прибегнуть к следующим инструментам:
SUPERAntiSpyware — бесплатная для частного пользования программа, которая позволяет удалять с компьютера всевозможные виды вредоносного ПО (spyware, adware, malware, trojans, dialers, worms, keyLoggers, HiJackers и другие), восстанавливать нарушенные записи в сетевых соединениях, на рабочем столе, в системном реестре, повышать общую безопасность ПК, закрывая обнаруженные во время запуска бреши в системе безопасности Windows (сайт).
XoftSpy — это одна из лучших программ для удаления шпионских модулей. Одним из преимуществ XoftSpy является высокая скорость сканирования. Другой плюс — регулярные обновления, что особенно важно для утилиты, основное предназначение которой заключается в обеспечении безопасности пользователя (сайт).
SpywareGuard — после инсталляции программа автоматически помещается в автозагрузку и постоянно находится в оперативной памяти компьютера. Программа не требовательна к системным ресурсам. Настроек в ней практически нет — настраиваются всего несколько функций с возможностью задания пароля на смену настроек в этих функциях. Программа послужит отличным помощником антивирусному монитору и серьезной программе для поиска и устранения шпионских модулей (сайт).
Ad-Aware — это продукт, созданный для обеспечения надежной защиты компьютера от известных угроз: кражи личных данных, агрессивной рекламы, сайтов-паразитов, мошеннических программ, некоторых традиционных троянов, номеронабирателей, вредоносных программ (Malware), браузерных «перехватчиков» (Browser hijackers) и шпионских компонентов. Программа использует технологию идентификации последовательности кодов (Code Sequence Identification — CSI), которая обеспечивает не только защиту от известных троянов, но и превентивную защиту от ранее неизвестных угроз. Для большей защиты Ad-Aware SE Personal Edition также может сканировать дополнительные потоки данных (Alternate Data Streams — ADS) в томах файловой системы Windows NT (NTFS).
Теперь внимание! Проверено автором. Если в процессе работы антивирусов, чистильщиков, сканеров и прочих вы все-таки почувствовали, что экзарцист — это вы, а порции адреналина получает кто-то другой, то непременно, даже не задумываясь, вам обязательно следует «убить тварь» собственными руками…
Для ритуала нам понадобятся:
1) виртуальная DOS-машина (по-нашему просто cmd);
2) редактор реестра regedit.
Поехали!
Запускаем regedit, открываем ветвь
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
(наиболее излюбленное место троянов; NB: данная ветвь — не единственная, где могут сидеть трояны, поэтому не помешает заглянуть еще и сюда:
HKEY_CURENT_USER\Software\Microsoft\Windows\CurrentVersion\Run;
HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Run;
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce)
HKEY_CURENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
При обнаружении записи непрошенного гостя удаляем эту запись. Далее необходимо убить процесс, принадлежащий «чужому», для чего очень полезно «знать своих в лицо»: Explorer, Lsass, Services, System, Winlogon, Alg, Vsmon, Ctfmon, Svchost, Csrss, Smss. Естественно, что помимо перечисленных, в диспетчере задач можно обнаружить и другие, «мирные», процессы — те, которые принадлежат запущенным и резидентно выполняющимся приложениям. Это, например, kavsvc, принадлежащий антивирусу Касперского, zonealarm, принадлежащий брандмауэру, и т. д. Особое внимание следует обратить на так называемые процессы-маскировщики, имитирующие истинные: explore, sys, svshost, winlogin, systrey и т. д. При невозможности остановки «злопроцесса» средствами диспетчера задач можно воспользоваться утилитой Process Explorer и ей подобными. Кстати, вышеприведенная утилита окажется весьма и весьма полезной и «в мирное время», т. к. с ее помощью можно завершить даже те процессы, которые штатными средствами не завершишь;).
«Контрольный выстрел» — именно так можно назвать заключительную часть нашего ритуала: необходимо найти и уничтожить тело. А вот тут-то и самое время вспомнить про старый добрый ревизор, который, в отличие от полифагов, в свежих базах не нуждается. В качестве примера более чем уместно привести программу-ревизор Adinf. Принцип работы Adinf основан на сохранении в специальной базе основных данных о каждом логическом диске в системе. При первом запуске в таблицах запоминаются объем оперативной памяти, образы главного загрузочного сектора, загрузочных секторов, список сбойных кластеров, структура дерева каталогов, длины и контрольные суммы файлов. Когда вирус/троян заражает компьютер, он изменяет объект, в который внедряется исполняемый файл, главный загрузочный сектор, FAT-таблицу. Если ревизор обнаруживает на диске изменения, характерные для действия вируса/трояна, он предупреждает об этом пользователя. Важным отличием ADinf от других существующих программ-ревизоров является доступ к дискам без использования функций операционной системы. Такой метод доступа к дискам позволяет успешно обнаруживать стелс- вирусы (вирусы-невидимки). При условии, что был сделан снимок чистой системы, найти и стереть «лишний» файл не составит особого труда.
Не исключено, что при проведении «ритуала» могут возникнуть нештатные ситуации: файл может активно использоваться системой, и все попытки его удалить успехом не увенчаются. Есть ли выход? Конечно же, есть! Все, что нам надо — это удалить тело из-под другой системы — например, загрузившись из-под Linux LiveCD.
Ну что ж, вот, пожалуй, и все. Перезагрузка системы, после чего последний штрих — проверка открытых портов командой netstat — an. Результат команды — список открытых портов
При обнаружении подозрительного порта… процедуру изгнания повторить…