Многослойный загрузчик Eimeria: пять уровней обфускации скрывают C2-канал

information security

Специалисты платформы анализа угроз Triage обнаружили ранее неизвестный вредоносный загрузчик, получивший название Eimeria. Этот образец отличается сложной многоступенчатой архитектурой, включающей пять последовательных уровней запутывания кода. Цепочка заражения начинается с RAR5-архива, а заканчивается установкой WebSocket-соединения с сервером управления, что делает Eimeria одним из самых изощрённых инструментов доставки вредоносной нагрузки, обнаруженных в последнее время.

Описание

Начальный этап атаки - это архив формата RAR5, размещённый на инфраструктуре провайдера Dedik Services Ltd, зарегистрированной в Великобритании, а хост физически находится во Франкфурте-на-Майне. Внутри архива содержатся четыре файла: подписанный исполняемый файл dsclock.exe, библиотеки libcurl.dll, zlibwapi.dll и зашифрованный объект msbuilder64.dll. Названия и структура папки jjez явно указывают на попытку организовать боковую загрузку DLL - уязвимую технику, при которой Windows загружает вредоносную библиотеку из той же директории, где лежит легитимный исполняемый файл.

Файл dsclock.exe не представляет угрозы сам по себе. Он подписан сертификатом Authenticode российской компании Duality Software Co. Ltd. и числится на VirusTotal с 2022 года с нулевым уровнем обнаружения. Это типичная утилита для отображения часов, которая импортирует сетевые функции из libcurl.dll. Но в той же папке лежит zlibwapi.dll - внешне похожий на легитимную библиотеку для работы с алгоритмами сжатия. На самом деле в его секции .text спрятан движок AES-CBC-шифрования с собственной таблицей замен SBOX. Вредоносная DLL умеет перечислять заголовки PE-файлов, выполнять системные вызовы и генерировать криптографически стойкие случайные числа - ничего общего с архивацией.

Именно этот движок расшифровывает третий файл msbuilder64.dll. Первые 16 байт этого блока служат вектором инициализации для AES-128-CBC. После расшифровки получается исполняемый файл PE32+, который представляет собой самораспаковывающийся архив, созданный с помощью утилиты IExpress (стандартной утилиты Windows для создания установщиков). Внутри этого архива спрятаны 26 файлов: 19 из них имеют расширение .potm и напоминают презентации PowerPoint, а семь не имеют расширения. Все эти файлы - пустышки, зашифрованные двоичные данные, которые служат лишь для отвлечения внимания. При запуске IExpress извлекает их на диск, но реальная полезная нагрузка таится в двух дополнительных объектах: Deal.exe и большом файле bMgXiqSim.

Deal.exe - это компилированный скрипт на языке AutoIt, который выполняет полный цикл внедрения кода в процессы Windows. AutoIt интерпретирует pcode-скрипт из 24 773 строк. Сначала загрузчик восстанавливает чистую копию ntdll.dll с диска, перезаписывая участки памяти, где могли бы быть установлены точки перехвата EDR-систем (программ обнаружения конечных точек). Затем он расшифровывает большой шестнадцатеричный блок с помощью алгоритма RC4 при помощи ключа длиной 38 символов. После этого применяет декомпрессию LZNT1 - встроенный механизм Windows для распаковки данных. Полученный чистый модуль вставляется в один из системных процессов - explorer.exe, svchost.exe или taskhostw.exe - через технику сброса отображения памяти и последующей записи в адресное пространство жертвы. Загрузчик умеет определять разрядность целевого процесса и обрабатывать сборки .NET отдельно.

Антианалитические возможности Eimeria впечатляют. Перед запуском вредоносной активности скрипт вставляет 28-секундную паузу. Затем выполняется вычисление числа π с точностью до одной миллионной для обхода эмуляторов. Проверяется реальная продолжительность сна - если она не совпадает с ожидаемой, работа прекращается. Также запускается стресс-тест памяти и процессора для выявления тонких виртуальных машин. После завершения операций чувствительные буферы обнуляются через RtlZeroMemory.

Для закрепления в системе Eimeria добавляет запись в реестр в раздел автозагрузки текущего пользователя, копирует исполняемый файл и скрипт в скрытую системную папку AppData\Local\Material\ReportFootballHost и создаёт задачу в Планировщике заданий с триггером входа в систему. Таким образом, загрузчик будет запускаться при каждом новом сеансе пользователя.

Сервер управления (C2) использует протокол WebSocket и расположен по адресу ws://94.26.90[.]139:3006. В ходе проверки соединения тестовая утилита nc -vz подтвердила, что порт открыт, однако ответных данных загрузчик не получил - видимо, C2 ожидает определённый протокол рукопожатия. DNS не используется, IP-адрес жёстко зашит в коде.

В ходе исследования специалисты отметили, что архитектура Eimeria напоминает загрузчик DarkGate, который также применяет AutoIt, RC4 и RunPE с восстановлением ntdll. Однако отличия существенны: Eimeria использует пять слоёв доставки (RAR5, подписанный EXE, поддельная zlib DLL, IExpress, AutoIt) вместо одного скрипта. Подпись Duality Software Co. Ltd. - легитимный российский сертификат - делает первый этап практически невидимым для антивирусов. Техника сокрытия AES-движка внутри zlib DLL ранее не встречалась. И, наконец, выбор WebSocket вместо HTTP/HTTPS для C2 свидетельствует о низкоуровневой настройке протокола.

Сложность Eimeria указывает на целенаправленную разработку, а не на покупку готового инструмента. Организациям рекомендуется усилить мониторинг боковой загрузки DLL, особенно для файлов, подписанных малоизвестными сертификатами, а также обращать внимание на запуск IExpress из браузерных загрузок. Обнаружение такого загрузчика - серьёзный сигнал для SOC-центров (центров мониторинга информационной безопасности) о необходимости обновления правил YARA и поведенческих анализаторов.

Индикаторы компрометации

IPv4 Port Combinations

  • 94.26.90.139:3006

SHA256

  • 53abc3c2f3e919ecd84724439b4d4fb679857316c6af91987e6db1dde9e8a198
  • 5d69a932a077fee044b193c28e84564143f5c7e51079ab48e88fef74ab0b77b7
  • 62fdad7df8fd7bc2b211c2de06c002831b36987b48a943758432f25006661578
  • 84fdf804149920cb474a030479fda1d5c9a5939388353054169ec692b8f75d3a
  • c872cd101d9c2a773f08558dde7b716161cf977d4aa99c2347c0269423434f8c
  • e155acf50ab0dad1a80f0a67d396d0ad5691fc9e314e4efd1da1dd3180c9632f

YARA

Комментарии: 0