Платформа ROMULUS доставляет ВПО через MSI и PowerShell
Исследователи обнаружили ROMULUS, многоцелевую платформу доставки ClickFix, которая распространяла ВПО через повторно используемую инфраструктуру промежуточного размещения. В ходе анализа изучили две цепочки: с троянизированным установщиком Stardock Smart DeElevation и с доставкой LegionLoader без MSI.
Панель управления и маршруты доставки
На шести IP-адресах исследователи обнаружили панель входа в ROMULUS с тёмной темой. Аутентификация проходила через /api/login. На одном из серверов, 86.109.75.7, также открывался /stats.htm со статистикой кампании: количеством уникальных установок и запусков, временными шкалами, историей и данными о странах жертв. Платформа поддерживала несколько маршрутов доставки через токенизированные пути, в том числе /s/ для сценариев промежуточного размещения PowerShell и /app/ для троянизированных пакетов MSI.
В маршруте A ROMULUS доставлял троянизированный установщик MSI Stardock Smart DeElevation. Пакет устанавливался в локальный каталог приложений пользователя и с помощью пользовательского действия запускал DeElevate64.exe. Для DLL sideloading использовался легитимный исполняемый файл. Модифицированный DeElevator64.dll добавлял зависимость от вредоносного I++u.dll и перенаправлял выполнение на следующие стадии загрузчика. Эта цепочка совпадала с более ранней кампанией, где применялся тот же пакет Stardock.
Загрузка LegionLoader и связь с управляющим сервером
Маршрут B доставлял LegionLoader без MSI. Обфусцированный сценарий PowerShell скрывал консоль, скачивал зашифрованный архив 7z с orbitflownetwork[.]lol/dl/J8QkZUVJgV.7z и загружал легитимную утилиту 7zr.exe с GitHub. В архиве находилось несколько файлов, в том числе ступенчатый полезный груз.
Первая ступень расшифровывала данные с помощью AES-256 через Windows CryptoAPI, удаляла PKCS#7 и инвертировала байты. Вторая ступень была позиционно-независимым шеллкодом с другим расшифровщиком и ручным загрузчиком PE. Он отображал и запускал PE-файл третьей ступени размером 475 648 байт.
LegionLoader связывался с smashshape[.]com: через /nfront.php регистрировался и получал задачи, а через /nback.php отправлял результаты. Для связи использовался WinHTTP с типом содержимого application/x-www-form-urlencoded, но вместо стандартных полей формы передавались сериализованные бинарные данные, защищённые RC4 и Base64. Сообщения C2 шифровались 31-байтовым ключом RC4. Загружаемое ВПО использовало отдельный двухэтапный процесс RC4 с ключами, которые генерировались во время выполнения и встраивались в код.
ВПО создавало стабильный идентификатор хоста, многократно применяя CRC32 к серийному номеру системного тома. Оно также могло извлекать ключи из файла Local State браузера Chrome, выполнять команды PowerShell, загружать ВПО и возвращать результаты. Оператор ROMULUS и связи между доставляемыми семействами ВПО остаются неизвестными.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



