Flame: Bunny, Frog, Munch и BeetleJuice…

Как уже упоминалось в прошлом блогпосте про Flame, его объем кода и функциональность настолько обширны, что их полный анализ займёт несколько месяцев. Мы планируем по мере обнаружения публиковать наиболее важные и интересные подробности, связанные с его функционалом.

В данный момент мы получаем множество запросов о том, как проверить компьютеры на наличие заражения Flame. Естественно, самый простой ответ (для нас) — это посоветовать использовать Анитвирус Касперского или Kaspersky Internet Security. Наши продукты успешно детектируют и удаляют все возможные модификации главного модуля и дополнительных компонентов Flame.

Однако для тех, кто хочет сам провести тщательную проверку, в конце статьи мы даем необходимые рекомендации и советы.

MSSECMGR.OCX

Основной модуль Flame — это DLL-файл под названием mssecmgr.ocx. Мы обнаружили две модификации этого модуля. На большинстве заражённых машин содержалась «большАя» версия — 6 Мбайт, которая содержит в себе и развёртывает дополнительные модули. «Малая» версия весит всего 900 Кбайт и не содержит дополнительных модулей. После установки малый модуль соединяется к одному из C&C-серверов и пытается загрузить оттуда и установить оставшиеся компоненты.

Mssecmgr может по-разному называться на каждой конкретной заражённой машине в зависимости от метода заражения и текущего состояния зловреда (установка, распространение, обновление). Например, wavesup3.drv, ~zff042.ocx, msdclr64.ocx, etc.

Полный анализ модуля mssecmgr будет представлен в одном из последующих блогпостов.

Первичная активация файла запускается одним из способов извне: либо через инструменты WMI, с использованием MOF-файла, если задействован эксплойт к уязвимости MS10-061, либо с использованием BAT-файла:

s1 = new ActiveXObject(«Wscript.Shell»);
s1.Run(«%SYSTEMROOT%system32rundll32.exe msdclr64.ocx,DDEnumCallback»);

(исходный код MOF-файла — svchostevt.mof)

После активации mssecmgr регистрирует себя в реестре Windows:

HKLM_SYSTEMCurrentControlSetControlLsa

Authentication Packages = mssecmgr.ocx [добавляется к существующим записям]

При следующей загрузке системы модуль автоматически загружается операционной системой.

После обновления реестра Windows mssecmgr разархивирует все дополнительные модули, которые присутствуют в зашифрованном и сжатом ресурсном разделе (ресурс «146») и устанавливает их. Ресурс — это словарь, содержащий параметры конфигурации для mssecmgr и других модулей, сами модули (DLL-файлы) и параметры, которые нужно передать этим модулям, чтобы их корректно загрузить, например ключи расшифровки.

Мы анализируем дополнительные модули; в ближайших блогпостах мы опубликуем дополнительную информацию об их функционале.

После завершения установки mssecmgr загружает доступные модули и запускает несколько потоков выполнения, которые устанавливают канал связи с C&C-серверами и хостом Lua-интерпретатора, и выполняет другие функции в зависимости от конфигурации. Функционал модуля делится на разные «блоки», которые имеют разные пространства имен в конфигурационном ресурсе и разные имена в журнале событий, которые широко используются по всему коду.

Ниже приведено краткое описание доступных модулей. Их имена извлечены из бинарного файла и ресурса 146.

Beetlejuice Bluetooth: составляет список устройств, находящихся вблизи зараженной машины.
Может выполнять функцию «радиомаяка» — включает возможность обнаружения компьютера в настройках Bluetooth и шифрует с помощью base64 статус вредоносной программы для его отображения в информации об устройстве.
Microbe Записывает аудиосигнал с имеющихся аппаратных источников. Составляет перечень всех устройств мультимедиа, записывает полную информацию о конфигурации устройств, пытается выбрать подходящее устройство для записи звука.
Infectmedia Выбирает один из методов заражения внешних устройств, т.е. USB-носителей. Доступные методы: Autorun_infector, Euphoria.
Autorun_infector Создает файл autorun.inf, содержащий вредоносное ПО, и запускает его с помощью специально сформированной команды open. Этот же метод использовался Stuxnet, прежде чем был задействован LNK-эксплойт.
Euphoria Создает директорию с файлами desktop.ini и target.lnk, взятыми из записей LINK1 и LINK2 ресурса146 (отсутствовали в ресурсном файле). Директория используется как ярлык для запуска Flame.
Limbo Создает на других машинах в сетевом домене бэкдор-аккаунты с именем пользователя HelpAssistant, если имеются необходимые права.
Frog Заражает другие компьютеры, используя предварительно созданные учетные записи пользователей. Единственная учетная запись, указанная в конфигурационном ресурсе, — HelpAssistant. Этот аккаунт создается атакой Limbo.
Munch HTTP-сервер, отвечающий на запросы /view.php и /wpad.dat.
Snack Прослушивает сетевые интерфейсы, получает пакеты NBNS и сохраняет их в лог-файле. Имеет опцию, при включении которой стартует только при старте блока Munch. Собранные данные затем используются для распространения вредоносной программы по сети.
Boot_dll_loader Конфигурационный раздел, содержащий список всех дополнительных модулей, которые должны быть загружены и запущены.
Weasel Создает список папок на зараженном компьютере.
Boost Создает список «интересных» файлов по нескольким маскам имен файлов.
Telemetry Функции ведения журнала.
Gator При появлении доступа в интернет устанавливает соединение с командными серверами, загружает новые модули и выгружает на сервер собранные данные.
Security Выявляет программы, которые могут помешать работе Flame, т.е. антивирусы и сетевые экраны.
Bunny
Dbquery
Driller
Headache
Gadget
Назначение этих модулей на данный момент неизвестно.

 

Дополнительные модули устанавливаются в директорию %windir%system32:

Дополнительные модули, загруженные с командных серверов, устанавливаются в ту же папку.

Модули Flame создают множество файлов данных, содержащих подробные журналы выполнения программы, а также собранную информацию: снимки экрана, списки процессов, списки аппаратных ресурсов и т.д.

Эти файлы сохраняются в директории %windir%temp под следующими именами:

В директории %windir%system32 могут также присутствовать следующие необязательные файлы:

Кроме того, в папке %windir% может присутствовать следующий файл:

Flame хранит свои постоянные данные в файлах различных форматов. Все данные шифруются с применением нескольких алгоритмов и ключей. Некоторые файлы представляют собой базы данных, построенные с помощью встроенной библиотеки SQLite3. Эти базы содержат данные, полученные как в результате кражи, так и в результате распространения программы. Мы представим более подробную информацию об этих файлах в будущих публикациях.

Имена директории, используемые дополнительными компонентами Flame, могут слегка различаться в зависимости от типа установки и конфигурационных опций, содержащихся в ресурсе 146:

Эти директории могут содержать следующие файлы:

dstrlog.dat
lmcache.dat
mscrypt.dat (or wpgfilter.dat)
ntcache.dat
rccache.dat (or audfilter.dat)
ssitable (or audache)
secindex.dat
wavesup3.drv
(a copy of the main module, mssecmgr.ocx, in the MSAudio directory)

Flame может также создавать или загружать файлы со следующими именами:

В результате мы можем предложить метод быстрой «ручной» проверки вашей системы на наличие заражения Flame:

  1. Выполните поиск файла ~DEB93D.tmp. Его присутствие в системе означает, что компьютер заражен или был заражен Flame.
  2. Проверьте ключ реестра HKLM_SYSTEMCurrentControlSetControlLsa Authentication Packages. Если вы найдете в нем mssecmgr.ocx или authpack.ocx, значит, ваш компьютер заражен Flame.
  3. Проверьте наличие следующих папок. Если они есть — вы заражены.
  4. Запустите поиск по остальным именам файлов, данным выше. Они все уникальны, и их наличие будет означать весьма высокую вероятность зараженности вашего компьютера Flame.

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *