В данной статье рассмотрим молодого представителя класса загрузчиков ВПО – 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: Сценарий закодирован с помощью base64: Декодированный сценарий выглядит следующим образом: Функционал сценария можно разделить на 2 основных блока: Сбор информации о заражённой системе (версия ОС, имя компьютера, имя пользователя, архитектура процессора). К собранной информации добавляется версия ВПО (в рассматриваемом образце версия – 1.0.0). Общение с управляющим сервером и запуск дополнительной полезной нагрузки. Получение дополнительной полезной нагрузки осуществляется с помощью закодированного PowerShell-сценария. Ниже представлен декодированный код данного сценария: К сожалению, получить полезную нагрузку archive.zip во время анализа не удалось. Первый запрос отправляется на сервер для регистрации устройства: В ответе от сервера возвращается уникальный идентификатор хоста, который генерируется на сервере на основе ранее собранных системных данных: Все запросы к серверу отправляются в бесконечном цикле с передачей сгенерированного идентификатора, закодированного в 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-Detokenizer. Основные отличия KiXtart-версии ВПО MirrorBlast от версии, реализованной на языке Rebol, заключаются в изменении набора системных данных, собираемых ВПО для регистрации на сервере C2, а также упрощении самого механизма взаимодействия с сервером.  В отличие от версии, реализованной на языке Rebol, данный сценарий собирает и отправляет информацию о запущенных процессах. Данный вариант MirrorBlast не содержит параметра с указанием версии ВПО. Отправка данных осуществляется в закодированном виде:  Ниже представлены декодированные данные: В процессе анализа ВПО было решено собрать более подробную информацию о домене С2. Ниже представлена Whois-запись домена: Электронный адрес ctouma2@gmail.com, использованный для регистрации домена, ранее уже был использован во вредоносной кампании группировки TA505 для регистрации другого домена в зоне ".su".  После заражения устройства ВПО используется злоумышленниками в качестве "маяка". MirrorBlast отправляет запросы на управляющий сервер, пока не будет получена команда на сохранение и запуск дополнительной полезной нагрузки. Получить дополнительную полезную нагрузку с управляющего сервера в процессе анализа образца, к сожалению, не удалось. Однако использование нестандартных языков программирования для разработки ВПО может указывать на принадлежность MirrorBlast продвинутой группе злоумышленников, на что косвенно указывает и пересечение в сетевой инфраструктуре с одной из вредоносных кампаний группировки TA505. 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