Тот, кто пишет вредоносное ПО, всегда на шаг впереди того, кто делает от него защиту. В рамках данной статьи на примере известнейшего трояна Back Orifice я постараюсь рассмотреть принцип и особенности работы троянских программ, затронув нестандартные методы поиска и уничтожения вредоносного ПО
Автор: Бойцев О.М.
Источник: © компьютерная
газета
Новейшие версии вредоносного
ПО, которое не определяется антивирусами даже с «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:windowssystem), прописывая себя на автозапуск в следующем ключе
реестра:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices
После
того как троянец закрепляется в системе, он начинает слушать 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_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun (наиболее
излюбленное место троянов; NB: данная ветвь — не единственная, где могут
сидеть трояны, поэтому не помешает заглянуть еще и
сюда:
HKEY_CURENT_USERSoftwareMicrosoftWindowsCurrentVersionRun;
HKEY_USERS.DefaultSoftwareMicrosoftWindowsCurrentVersionRun;
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunonce)
HKEY_CURENT_USERSoftwareMicrosoftWindowsCurrentVersionRunonce;
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunServices
При
обнаружении записи непрошенного гостя удаляем эту запись. Далее необходимо
убить процесс, принадлежащий «чужому», для чего очень полезно «знать своих
в лицо»: 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. Результат команды — список открытых
портов
При обнаружении подозрительного порта… процедуру изгнания
повторить…