MirrorBlast. Гляжусь в тебя, как в зеркало…

от автора

В данной статье рассмотрим молодого представителя класса загрузчиков ВПО – MirrorBlast. Первый образец попал мне в руки в конце сентября. Отличительной особенностью данного ВПО является наличие версий, в создании которых злоумышленники применили самобытный набор инструментов. ВПО MirrorBlast на текущий момент представлено в виде двух реализаций: Rebol-сценарий (контекстно-зависимый объектный язык программирования, созданный специально для распределённых вычислений в Web) и сборка на KiXtart (полусвободный проприетарный сценарный язык для Windows). Представленный набор технологий выделяет данное ВПО на фоне хорошо известных загрузчиков. Не менее интересна цепочка заражения MirrorBlast.

Рисунок 1 – Цепочка заражения
Рисунок 1 – Цепочка заражения

Обнаруженные образцы загрузчика MirrorBlast распространялись злоумышленниками в рамках классических массовых вредоносных рассылок:

Рисунок 2 – Вредоносное письмо
Рисунок 2 – Вредоносное письмо

Все обнаруженные письма в качестве вложений содержали XLS-документ со встроенным макросом:

  • XLS (вариант Rebol): 7fc2fed914bdc1d7f49bd36d6196fffe818156bd05f48c73ad68021f7723cd4b

  • XLS (вариант KiXtart): d6c487b1fb3d31851921b343f3d131f7cb4c0469a60484037a6fa8cfbdc29dea

Рисунок 3 – XLS-вложение
Рисунок 3 – XLS-вложение

Выполнение встроенных сценариев осуществлялось при открытии пользователем вредоносного документа. Для противодействия детектированию вложенный JS-сценарий хранится в перевёрнутом виде:

Рисунок 4 – Вложенный сценарий
Рисунок 4 – Вложенный сценарий

Ниже представлен деобфусцированный код сценария:

Рисунок 5 – Деобфусцированный сценарий
Рисунок 5 – Деобфусцированный сценарий

При запуске сценария осуществляется загрузка MSI-файла с управляющего сервера и его запуск с использованием техники LOLbin («Living off the land») с помощью легитимной утилиты MSIEXEC.

  • MSI (вариант Rebol): 61f1b9c62af8cabeb930ac0046adf6844be88896bfb3a5bd659a0d061c559791

  • MSI (вариант KiXtart): 83e4c90dc8bc1c53a4000bef83a355c4e36d2a1ba4a5d0982bc5b9b350278f1f

На момент анализа MSI-файлы имели низкий процент детектирования антивирусными решениями:

Рисунок 6 – Вердикт VirusTotal
Рисунок 6 – Вердикт VirusTotal

MSI-установщик содержит вредоносный сценарий и подписанный исполняемый файл интерпретатора для выполнения сценария:

Rebol-сценарий: 2de2bb951191a895f0bab7a6e65daecdb5164886ac592901fe3cd8646c4a6f5c

Рисунок 7 – MSI-установщик Rebol
Рисунок 7 – MSI-установщик Rebol

KiXtart-сценарий: d0d415dbe02e893fb1b2d6112c0f38d8ce65ab3268c896bfc64ba06096d4d09a

Рисунок 8 – MSI-установщик KiXtart
Рисунок 8 – MSI-установщик KiXtart

При выполнении MSI-установщика осуществлялся запуск вредоносного сценария с помощью соответствующего интерпретатора. При выполнении может осуществляться закрепление в системе через добавление ключа раздел реестра Run (в некоторых обнаруженных образцах данный функционал отсутствовал). Ниже представлен пример запуска Rebol-версии ВПО MirrorBlast:

Рисунок 9 – Запуск сценария MirrorBlast
Рисунок 9 – Запуск сценария MirrorBlast

Rebol-версия сценария

Сценарий закодирован с помощью base64:

Рисунок 10 – Закодированный Rebol-сценарий
Рисунок 10 – Закодированный Rebol-сценарий

Декодированный сценарий выглядит следующим образом:

Рисунок 11 – Декодированный Rebol-сценарий
Рисунок 11 – Декодированный Rebol-сценарий

Функционал сценария можно разделить на 2 основных блока:

  • Сбор информации о заражённой системе (версия ОС, имя компьютера, имя пользователя, архитектура процессора). К собранной информации добавляется версия ВПО (в рассматриваемом образце версия – 1.0.0).

  • Общение с управляющим сервером и запуск дополнительной полезной нагрузки.

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

Рисунок 12 – Вложенный PowerShell-сценарий
Рисунок 12 – Вложенный PowerShell-сценарий

К сожалению, получить полезную нагрузку archive.zip во время анализа не удалось.

Общение с сервером C2:

Первый запрос отправляется на сервер для регистрации устройства:

Рисунок 13 – Регистрация заражённого устройства на сервере С2
Рисунок 13 – Регистрация заражённого устройства на сервере С2

В ответе от сервера возвращается уникальный идентификатор хоста, который генерируется на сервере на основе ранее собранных системных данных:

Рисунок 14 – Передаваемые на сервер данные
Рисунок 14 – Передаваемые на сервер данные

Все запросы к серверу отправляются в бесконечном цикле с передачей сгенерированного идентификатора, закодированного в base64 в качестве GET-параметра. Идентификатор сохраняется на зараженном устройстве в следующей директории:

Рисунок 15 – Файл с уникальным идентификатором устройства
Рисунок 15 – Файл с уникальным идентификатором устройства

После регистрации устройства отправляется запрос, в ответе на который сервер C2 возвращает список активных управляющих серверов:

Рисунок 16 – Получение списка доступных серверов C2
Рисунок 16 – Получение списка доступных серверов C2

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

Рисунок 17 – Получение команды сервера
Рисунок 17 – Получение команды сервера

В случае получения значения «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 имеет зашифрованную и сжатую структуру и не содержит код сценария в открытом виде:

Рисунок 18 – KiXtart-сценарий
Рисунок 18 – KiXtart-сценарий

Для восстановления исходного кода сценария можно воспользоваться следующим общедоступным инструментом: Kixtart-Detokenizer.

Основные отличия KiXtart-версии ВПО MirrorBlast от версии, реализованной на языке Rebol, заключаются в изменении набора системных данных, собираемых ВПО для регистрации на сервере C2, а также упрощении самого механизма взаимодействия с сервером.

Рисунок 19 – Расшифрованный KiXtart-сценарий
Рисунок 19 – Расшифрованный KiXtart-сценарий

В отличие от версии, реализованной на языке Rebol, данный сценарий собирает и отправляет информацию о запущенных процессах. Данный вариант MirrorBlast не содержит параметра с указанием версии ВПО. Отправка данных осуществляется в закодированном виде:

Рисунок 20 – Отправка данных о системе на C2
Рисунок 20 – Отправка данных о системе на C2

Ниже представлены декодированные данные:

Рисунок 21 – Декодированные данные
Рисунок 21 – Декодированные данные

Интересное совпадение

В процессе анализа ВПО было решено собрать более подробную информацию о домене С2. Ниже представлена Whois-запись домена:

Рисунок 22 – Whois-запись домена C2
Рисунок 22 – Whois-запись домена C2

Электронный адрес ctouma2@gmail.com, использованный для регистрации домена, ранее уже был использован во вредоносной кампании группировки TA505 для регистрации другого домена в зоне «.su».

Вместо заключения

После заражения устройства ВПО используется злоумышленниками в качестве «маяка». MirrorBlast отправляет запросы на управляющий сервер, пока не будет получена команда на сохранение и запуск дополнительной полезной нагрузки. Получить дополнительную полезную нагрузку с управляющего сервера в процессе анализа образца, к сожалению, не удалось. Однако использование нестандартных языков программирования для разработки ВПО может указывать на принадлежность MirrorBlast продвинутой группе злоумышленников, на что косвенно указывает и пересечение в сетевой инфраструктуре с одной из вредоносных кампаний группировки TA505.

MITRE ATT&CK Matrix

Tactic

Technique

Technique Name

Initial Access

T1566.001

Phishing: Spearphishing Attachment

Execution

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

Persistence

T1547.001

Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder

Defense Evasion

T1112

Modify Registry

T1218.007

Signed Binary Proxy Execution: Msiexec

Discovery

T1012

Query Registry

T1082

System Information Discovery

T1424

Process Discovery

T1033

System Owner/User Discovery

Command and Control

T1132.001

Data Encoding: Standard Encoding

T1071.001

Application Layer Protocol: Web Protocols


ссылка на оригинал статьи https://habr.com/ru/articles/585096/


Комментарии

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

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