В данной статье рассмотрим молодого представителя класса загрузчиков ВПО – MirrorBlast. Первый образец попал мне в руки в конце сентября. Отличительной особенностью данного ВПО является наличие версий, в создании которых злоумышленники применили самобытный набор инструментов. ВПО MirrorBlast на текущий момент представлено в виде двух реализаций: Rebol-сценарий (контекстно-зависимый объектный язык программирования, созданный специально для распределённых вычислений в Web) и сборка на KiXtart (полусвободный проприетарный сценарный язык для Windows). Представленный набор технологий выделяет данное ВПО на фоне хорошо известных загрузчиков. Не менее интересна цепочка заражения MirrorBlast.
Обнаруженные образцы загрузчика MirrorBlast распространялись злоумышленниками в рамках классических массовых вредоносных рассылок:
Все обнаруженные письма в качестве вложений содержали XLS-документ со встроенным макросом:
XLS (вариант Rebol): 7fc2fed914bdc1d7f49bd36d6196fffe818156bd05f48c73ad68021f7723cd4b
XLS (вариант KiXtart): d6c487b1fb3d31851921b343f3d131f7cb4c0469a60484037a6fa8cfbdc29dea
Выполнение встроенных сценариев осуществлялось при открытии пользователем вредоносного документа. Для противодействия детектированию вложенный JS-сценарий хранится в перевёрнутом виде:
Ниже представлен деобфусцированный код сценария:
При запуске сценария осуществляется загрузка MSI-файла с управляющего сервера и его запуск с использованием техники LOLbin ("Living off the land") с помощью легитимной утилиты MSIEXEC.
MSI (вариант Rebol): 61f1b9c62af8cabeb930ac0046adf6844be88896bfb3a5bd659a0d061c559791
MSI (вариант KiXtart): 83e4c90dc8bc1c53a4000bef83a355c4e36d2a1ba4a5d0982bc5b9b350278f1f
На момент анализа MSI-файлы имели низкий процент детектирования антивирусными решениями:
MSI-установщик содержит вредоносный сценарий и подписанный исполняемый файл интерпретатора для выполнения сценария:
Rebol-сценарий: 2de2bb951191a895f0bab7a6e65daecdb5164886ac592901fe3cd8646c4a6f5c
KiXtart-сценарий: d0d415dbe02e893fb1b2d6112c0f38d8ce65ab3268c896bfc64ba06096d4d09a
При выполнении MSI-установщика осуществлялся запуск вредоносного сценария с помощью соответствующего интерпретатора. При выполнении может осуществляться закрепление в системе через добавление ключа раздел реестра Run (в некоторых обнаруженных образцах данный функционал отсутствовал). Ниже представлен пример запуска Rebol-версии ВПО MirrorBlast:
Rebol-версия сценария
Сценарий закодирован с помощью base64:
Декодированный сценарий выглядит следующим образом:
Функционал сценария можно разделить на 2 основных блока:
Сбор информации о заражённой системе (версия ОС, имя компьютера, имя пользователя, архитектура процессора). К собранной информации добавляется версия ВПО (в рассматриваемом образце версия – 1.0.0).
Общение с управляющим сервером и запуск дополнительной полезной нагрузки.
Получение дополнительной полезной нагрузки осуществляется с помощью закодированного PowerShell-сценария. Ниже представлен декодированный код данного сценария:
К сожалению, получить полезную нагрузку archive.zip во время анализа не удалось.
Общение с сервером C2:
Первый запрос отправляется на сервер для регистрации устройства:
В ответе от сервера возвращается уникальный идентификатор хоста, который генерируется на сервере на основе ранее собранных системных данных:
Все запросы к серверу отправляются в бесконечном цикле с передачей сгенерированного идентификатора, закодированного в base64 в качестве GET-параметра. Идентификатор сохраняется на зараженном устройстве в следующей директории:
После регистрации устройства отправляется запрос, в ответе на который сервер C2 возвращает список активных управляющих серверов:
Следующий запрос отправляется с целью получения кода команды для выполнения полезной нагрузки на хосте:
В случае получения значения "3" будет выполнен PowerShell-сценарий, загружающий полезную нагрузку. На момент проведения анализа сервер C2 возвращал значения "0" и "-1".
Путь |
Назначение |
http://c2_address/p/r?x=base64<system_info> |
Регистрация устройства |
http://c2_address/p/m?x=base64<UUID> |
Получение cписка адресов доступных C2 |
http://c2_address/p/p?x=base64<UUID> |
Получение команды на скачивание и дополнительной полезной нагрузки |
http://c2_address/p/d?x=base64<UUID> |
Скачивание полезной нагрузки |
KiXtart-версия сценария
Файл KiXtart имеет зашифрованную и сжатую структуру и не содержит код сценария в открытом виде:
Для восстановления исходного кода сценария можно воспользоваться следующим общедоступным инструментом: Kixtart-Detokenizer.
Основные отличия KiXtart-версии ВПО MirrorBlast от версии, реализованной на языке Rebol, заключаются в изменении набора системных данных, собираемых ВПО для регистрации на сервере C2, а также упрощении самого механизма взаимодействия с сервером.
В отличие от версии, реализованной на языке Rebol, данный сценарий собирает и отправляет информацию о запущенных процессах. Данный вариант MirrorBlast не содержит параметра с указанием версии ВПО. Отправка данных осуществляется в закодированном виде:
Ниже представлены декодированные данные:
Интересное совпадение
В процессе анализа ВПО было решено собрать более подробную информацию о домене С2. Ниже представлена Whois-запись домена:
Электронный адрес ctouma2@gmail.com, использованный для регистрации домена, ранее уже был использован во вредоносной кампании группировки TA505 для регистрации другого домена в зоне ".su".
Вместо заключения
После заражения устройства ВПО используется злоумышленниками в качестве "маяка". MirrorBlast отправляет запросы на управляющий сервер, пока не будет получена команда на сохранение и запуск дополнительной полезной нагрузки. Получить дополнительную полезную нагрузку с управляющего сервера в процессе анализа образца, к сожалению, не удалось. Однако использование нестандартных языков программирования для разработки ВПО может указывать на принадлежность MirrorBlast продвинутой группе злоумышленников, на что косвенно указывает и пересечение в сетевой инфраструктуре с одной из вредоносных кампаний группировки TA505.
MITRE ATT&CK Matrix
Tactic |
Technique |
Technique Name |
Initial Access |
T1566.001 |
Phishing: Spearphishing Attachment |
|
T1204.002 |
User Execution: Malicious File |
T1059.001 |
Command and Scripting Interpreter: PowerShell |
|
T1059.003 |
Command and Scripting Interpreter: Windows Command Shell |
|
T1059.005 |
Command and Scripting Interpreter: Visual Basic |
|
– |
Command and Scripting Interpreter: KiXtart |
|
– |
Command and Scripting Interpreter: Rebol |
|
|
|
Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
|
T1112 |
Modify Registry |
T1218.007 |
Signed Binary Proxy Execution: Msiexec |
|
|
T1012 |
Query Registry |
T1082 |
System Information Discovery |
|
T1424 |
Process Discovery |
|
T1033 |
System Owner/User Discovery |
|
|
T1132.001 |
Data Encoding: Standard Encoding |
T1071.001 |
Application Layer Protocol: Web Protocols |