Исследователи 360 Advanced Threat Intelligence зафиксировали новую атаку группировки APT-C-36 (известной как Blind Eye) в мае 2026 года. Ключевой особенностью кампании стало использование загрузчика, скомпилированного с помощью технологии .NET Ahead-of-Time (AOT). Этот метод позволяет преобразовать управляемый код в нативные машинные инструкции, что существенно затрудняет обнаружение и анализ вредоносной нагрузки.
Описание
APT-C-36 действует с 2018 года и ориентирована преимущественно на государственные учреждения, финансовые и страховые организации в Колумбии, а также в Эквадоре, Чили и Панаме. В своей деятельности группа традиционно применяет фишинговые письма с вредоносными вложениями, а в качестве финальной полезной нагрузки использует удалённый доступ DCRat - расширенную версию AsyncRAT.
В ходе новой атаки злоумышленники распространяли файл с названием "AJUSTE TRANSACCIONAL APLICADO CORRECTAMENTE DE MANERA EXITOSA" (в переводе с испанского - "Транзакционная корректировка успешно применена"), что указывает на банковскую тематику. При открытии документа из него извлекались шесть файлов, образующих связку "белый" исполняемый файл с легитимной подписью и вредоносная динамическая библиотека.
Легитимный Executable-файл представлял собой утилиту Scalar - систему управления версиями Git от Microsoft. Вредоносная библиотека libwinpthread-1.dll маскировалась под стандартную реализацию POSIX-потоков из набора MinGW-w64. Этот DLL и выступал в роли загрузчика, который, как полагают аналитики, является вариантом QuirkyLoader - загрузчика, распространяемого по модели MaaS (malware-as-a-service).
Особенность данного загрузчика заключается в применении .NET AOT-компиляции. В отличие от классических .NET-сборок, которые содержат промежуточный язык (IL) и метаданные, AOT-компиляция превращает код в нативный машинный код. В результате бинарный файл внешне не отличается от программы, написанной на C или C++, и не содержит высокоуровневых признаков .NET, что делает его малозаметным для статического анализа и многих средств защиты.
Загрузчик предоставлял более сорока экспортируемых функций, включая стандартные для библиотек POSIX (sem_wait, sem_post и другие). При запуске он выполнял несколько последовательных этапов: расшифровку строк конфигурации, загрузку модулей и API-функций, дешифровку полезной нагрузки и её инъекцию в легитимный процесс.
На этапе конфигурации загрузчик расшифровывал строки, описывающие режим работы. Например, параметр "GATE: features=startup; hide_console; elevated=False; session0=False" указывал на настройку автозагрузки, скрытие окна консоли, запуск без прав администратора и в сеансе пользователя. Строка "PH: epRva=0xCB8E0000003 base=0x1010000 pref=0x400000t.NET\\Framework\\v4.0.30319\\AddInProcess32.exe" свидетельствовала о подготовке к инъекции в процесс AddInProcess32.exe, входящий в состав .NET Framework.
Для загрузки системных модулей загрузчик применял двухэтапное дешифрование: сначала base64, затем модифицированный алгоритм ChaCha20. Аналогичным образом расшифровывались имена API-функций с помощью XOR-ключа 0x7C91. Полученный перечень включал такие вызовы, как CreateProcessW, WriteProcessMemory, VirtualProtectEx, NtCreateSection, NtMapViewOfSection, ResumeThread и другие, необходимые для внедрения кода.
Полезная нагрузка - клиент DCRat - хранилась в зашифрованном виде внутри секции .reloc библиотеки. Загрузчик обнаруживал её по маркеру "_hBerichte". Дешифровка проводилась в два шага: сначала применялся шифр Цезаря, преобразующий шестнадцатеричные символы (0-9, A-F) в символы из набора P, Q, R, S, T, U, V, W, X, Y, Z, [, \, ], ^, _. Затем выполнялось повторное дешифрование тем же модифицированным ChaCha20, что использовался для модулей.
После расшифровки загрузчик создавал новый процесс AddInProcess32.exe в приостановленном состоянии с помощью CreateProcessInternalW. Затем последовательно вызывались NtMapViewOfSection, Wow64GetThreadContext, WriteProcessMemory и ResumeThread. При этом загрузчик не использовал традиционный метод NtUnMapViewofSection для опустошения памяти процесса, а модифицировал поле ImageBaseAddress в PEB (блоке параметров процесса) с помощью WriteProcessMemory. Это заставляло восстановленный поток начинать выполнение с адреса вредоносной полезной нагрузки. Такой подход снижал количество подозрительных вызовов API и повышал скрытность.
Для обеспечения закрепления в системе загрузчик создавал каталог %userprofile%\AppData\Roaming\ASUS App Service, копировал туда исходные файлы и настраивал автозагрузку.
Конечная полезная нагрузка - DCRat, версия 1.0.7, клиент с именем "thes". В ходе анализа были извлечены его конфигурационные параметры: сервер управления располагался по адресу 45.92.1[.]165 на порту 8091, использовался AES-ключ "0GZXnqnFDFw2tjwIKLItj3AIskBV9Ebs". Дополнительные флаги указывали, что установка в систему отключена (install=false), антивирусное обнаружение и завершение процессов не активированы (anti=false, Anti process=false), функция BSOD не задействована. Группа в конфигурации обозначена как "ZMUYER", а HWID - "419F8C8DF79EB02CC879".
DCRat предоставляет злоумышленникам широкий спектр возможностей: запись с веб-камеры, отправка информации о системе, управление файлами, удалённый доступ к командной строке, кража паролей и многое другое. Данный троян является развитием AsyncRAT и активно используется Blind Eye на протяжении нескольких лет.
Принадлежность кампании к APT-C-36 подтверждается рядом признаков. Во-первых, тема фишингового письма характерна для испаноязычных жертв в Колумбии. Во-вторых, DCRat является излюбленным инструментом группировки. В-третьих, загрузчик используется в рамках модели MaaS: злоумышленники практически не модифицируют его, заменяя только зашифрованную полезную нагрузку и упаковывая в "белую" обёртку. Такое поведение полностью соответствует тактике Blind Eye.
Использование .NET AOT-компиляции в загрузчике представляет собой эволюцию методов обхода защиты. Технология, изначально разработанная для повышения производительности .NET-приложений, теперь применяется в целях маскировки вредоносного кода. Предоставленный анализ 360 AIT показывает, что данный загрузчик способен успешно обходить как сигнатурные, так и поведенческие детекторы, особенно на ранних стадиях заражения.
Организациям, работающим в странах Латинской Америки, особенно в финансовом и государственном секторах, следует усилить мониторинг входящих почтовых сообщений с темами, связанными с банковскими транзакциями. Дополнительную защиту может обеспечить блокировка исполняемых вложений, содержащих библиотеки DLL с экспортируемыми функциями POSIX, а также контроль запуска процессов AddInProcess32.exe из временных или подозрительных каталогов. Группа Blind Eye продолжает адаптировать свои инструменты, сочетая коммерческие загрузчики с проверенным удалённым доступом DCRat, и в ближайшее время можно ожидать новых модификаций.
Индикаторы компрометации
IPv4 Port Combination
- 45.92.1.165:8091
MD5
- a0c50071c7aaba7e12b975c1952a790b
- e53822b99b9848b73a1297270d0f6dd0