После публикации нашего отчета коллеги из компании 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:
1 2 3 4 5 6 7 8 9 10 11 |
Domain Name: HOTINFONEWS.COM Registrant: Privat Person Denis Gozolov (gozolov@mail.ru) Narva mnt 27 Tallinn Tallinn,10120 EE Tel. +372.54055298 Creation Date: 14-Feb-2012 Expiration Date: 14-Feb-2013 |
Кроме вышеупомянутого кратковременного раскрытия информации о компонентах, использованных в данной атаке, соответствующие хеши 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%
Затем, после 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-эксплойтов, которые пользуются большой популярностью среди других групп киберпреступников. Это вызывает удивление.
Мы продолжим следить за развитием ситуации и публиковать новые сведения по мере их появления.
Red October — анализ вектора доставки Java-эксплойта