Red October — анализ вектора доставки Java-эксплойта

После публикации нашего отчета коллеги из компании Seculert обнаружили еще один вектор доставки вредоносного кода, примененный в атаках Red October, и опубликовали в блоге сообщение о его использовании.

В дополнение к документам Office (CVE-2009-3129, CVE-2010-3333, CVE-2012-0158), злоумышленники, по-видимому, использовали для проникновения в сети жертв эксплойт для уязвимости (CVE-2011-3544) в Java (MD5: 35f1572eb7759cb7a66ca459c093e8a1 — ‘NewsFinder.jar’), известный под именем Rhino.

Нам известно, что этот метод использовался в феврале 2012 года. Применение этого эксплойта хорошо согласуется с общим подходом злоумышленников, поскольку эксплойт известный и не новый (не нулевого дня). По всей вероятности, потенциальным жертвам отправляли по электронной почте ссылку на сайт с эксплойтом, и при этом на компьютерах жертв была установлена уязвимая версия Java.

Нам представляется, однако, что группа не использовала этот вектор широко. Когда мы загрузили php-скрипт, отвечающий за загрузку .jar-архива с вредоносным кодом, строка кода, отвечающая за доставку Java-эксплойта, была закомментирована. Кроме того, найти соответствующие ссылки, Java класс и исполняемый код, реализующий вредоносный функционал, в данный момент сложно.

Домен, задействованный в ходе атаки, встречается лишь однажды на публичной ‘песочнице’ по адресу malwr.com (http://malwr.com/analysis/c3b0d1403ba35c3aba8f4529f43fb300), причем только 14 февраля, в тот самый день, когда был зарегистрирован домен hotinfonews.com:

 

 

Кроме вышеупомянутого кратковременного раскрытия информации о компонентах, использованных в данной атаке, соответствующие хеши MD5 и ссылки не были засвечены ни в публичных, ни в частных репозиториях.
Можно предположить, что группа за несколько дней успешно доставила вредоносный код соответствующей жертве или жертвам, после чего необходимость в данном функционале исчезла. Это могло бы означать, что данной группе, про которую известно, что она скрупулезно адаптировала средства, применяемые для проникновения в сеть и сбора данных, к рабочей среде каждой жертвы, потребовалось поменять привычные методы целевого фишинга на Java в начале февраля 2012 года. Затем группа вернулась к целевому фишингу.

Кроме того, следует отметить, что в нашем распоряжении оказался журнал атаки, в котором трем различным компьютерам жертв соответствовал один IP-адрес в США. Каждый из этих компьютеров был связан с институтом экономических исследований на Ближнем Востоке.

Таким образом, представляется, что использование Java-эксплойта Rhino в атаках Red October было ограниченным. Кроме того, функционал, реализованный в серверном PHP-скрипте, который используется для загрузки этого файла на компьютер жертвы, существенно отличается от похожего функционала, реализованного в компонентах Red October, которые, по нашим сведениям, применялись на всем протяжении кампании, продолжающейся уже пять лет.

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

А это — функция для внедрения апплета в HTML-код, передающая зашифрованную строку URL в параметре ‘p’:

Вот код из апплета, получающего на входе зашифрованную строку, загружающего по соответствующему ей URL-адресу файл и записывающего его в ‘javaln.exe’. Следует отметить, что переменные strb и stra содержат те же строки, что и переменные $files и $charset в php-скрипте:

Функция transfer расшифровывает URL, склеенный с дополнительными параметрами, и возвращает полученную строку, в нашем случае «hXXp://www.hotinfonews.com/news/dailynews2.php?id=&t=win». Загружаемое по этому URL содержимое сохраняется на диск и выполняется на заражаемой машине. Функционал данного загружаемого кода описан ниже. Интересно, что процедуры шифрования, примененные в java и php компонентах атаки, значительно отличаются от аналогичного кода, использованного в остальных частях Red October. Возможно, эти компоненты были разработаны независимо от остального кода и использовались только в отдельных случаях.

Второй этап атаки: EXE, загрузчик

Компонент для второго этапа атаки загружается по URL «http://www.hotinfonews.com/news/dailynews2.php» и запускается на выполнение из полезной нагрузки Java эксплойта. Этот компонент также является загрузчиком для следующего этапа атаки.

Известное расположение файла: %TEMP%javaln.exe
MD5: c3b0d1403ba35c3aba8f4529f43fb300

Компонент является файлом формата PE EXE, скомпилирован в Microsoft Visual Studio 2008, дата сборки 2012.02.06. Основной код файла скрыт с помощью обфускатора, также использованного во многих других компонентах Red October.

Часть дизассемблированного кода обфускатораМодуль создает мьютекс MtxJavaUpdateSln и завершает выполнение, если мьютекс уже существует. После этого ожидает 79 секунд, и затем создает один из ключей реестра для обеспечения автоматической загрузки при старте системы:
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] JavaUpdateSln=%full path to own executable%

[HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun] JavaUpdateSln=%full path to own executable%

Затем, после 49-секундной задержки, модуль в бесконечном цикле ожидает рабочего соединения с интернетом. Для этого каждые 67 секунд он пытается послать HTTP POST запрос на следующие сайты:

  • www.microsoft.com
  • update.microsoft.com
  • www.google.com

Если с одним из сайтов удалось установить успешное соединение, модуль переходит к основному циклу.

Цикл взаимодействия с C&C сервером

Каждые 180 секунд модуль посылает HTTP POST запрос к своему C&C серверу. При этом используется жестко зашитый URL:
www.dailyinfonews.net/reportdatas.php

Содержимое POST-запроса имеет следующий вид:

id=%уникальный идентификатор пользователя, полученный из оверлея файла%&
A=%число, показывает успешность записи autorun-ключа реестра%&
B=%0 или 1, показывает наличие прав администратора у пользователя%&
C=%число, уровень привилегий текущего пользователя%

HTTP POST запрос, посылаемый на C&C серверМодуль расшифровывает ответ сервера с помощью алгоритма AMPRNG с жестко зашитым ключом. Затем он проверяет, что в расшифрованных данных по смещению 37 находится сигнатура EXE файла (‘MZ’). Если сигнатура обнаружена, он записывает EXE файл из расшифрованных данных на диск с именем «%TEMP%nvsvc%p%p.exe» (%p зависит от текущего времени) и запускает его на исполнение.

Третий этап атаки: EXE, содержимое неизвестно

На момент написания блога C&C сервер уже недоступен, и у нас нет примеров EXE файлов, которые он возвращал загрузчику. Скорее всего, это были основные дропперы Red October, аналогичные тем, что находятся в документах с эксплойтами для Word и Excel.

Выводы

По мере появления новой информации о Red October и публикации третьими лицами данных по собственным исследованиям атак, становится все более ясно, что эта операция значительно масштабнее, чем считалось ранее.

Не исключено, что в дополнение к описанному здесь Java-эксплойту на протяжении 5 лет активной деятельности преступной группы применялись и другие механизмы доставки вредоносного кода. В частности, мы пока не обнаружили случаев применения PDF-эксплойтов, которые пользуются большой популярностью среди других групп киберпреступников. Это вызывает удивление.

Мы продолжим следить за развитием ситуации и публиковать новые сведения по мере их появления.

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

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

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