Новая кампания целевых атак использует ИИ-генерируемый код и многоступенчатую схему заражения с подменой DLL

information security

Специалисты по информационной безопасности столкнулись с новой, технически сложной кампанией, предположительно, целевых атак. Её отличительной чертой является использование пакетного скрипта, сгенерированного с помощью языковой модели (LLM), и изощрённой многоступенчатой цепочки заражения, основанной на подмене динамических библиотек (DLL Hijacking). Атака нацелена на пользователей Windows и маскируется под легитимные документы, что повышает её опасность для неосторожных сотрудников.

Описание

Инцидент был зафиксирован 20 марта 2025 года, когда группа исследователей MalwareHunterTeam обнаружила и опубликовала образец вредоносного ZIP-архива, загруженного из Камбоджи. Архив получил название "CNP_MFA_Meeting_Documents.zip" («Документы для совещания CNP_MFA»), что указывает на попытку выдать его за официальные материалы, возможно, связанные с государственными или финансовыми структурами. Внутри архива находился файл ярлыка (LNK) "Meeting_Staff_List.lnk" и скрытая папка "Resources". Эта папка содержала вложенный архив "Resources.zip" и пакетный файл "R.bat", что свидетельствует о многоэтапном подходе злоумышленников.

Как подробно описано в аналитическом отчёте исследователей, цепочка заражения начинается с запуска ярлыка LNK. При его выполнении запускается скрытый и закодированный в base64 сценарий PowerShell, единственная задача которого - распаковать исходный архив и запустить пакетный файл "R.bat". Этот файл представляет собой ключевой элемент атаки. Его код изобилует комментариями и демонстрирует структуру, типичную для сценариев, сгенерированных языковыми моделями, что может указывать на автоматизацию процесса создания вредоносного ПО со стороны атакующих.

Логика "R.bat" выстроена с расчётом на надёжное выполнение даже в неидеальных условиях. Сначала скрипт пытается с помощью PowerShell распаковать вложенный архив "Resources.zip" в новую папку "Notepad++" в каталоге "%AppData%" пользователя. Если эта попытка терпит неудачу - что может произойти на устаревших системах, например, Windows 7 - скрипт автоматически загружает с официального сайта установщик архиватора 7-Zip и использует его для распаковки. После успешного извлечения файлов скрипт запускает исполняемый файл "Notepad++.exe", создаёт в планировщике заданий Windows (Task Scheduler) задачу с именем «Notepad++» для его автоматического запуска каждые 15 минут, начиная с 6:00 утра, и завершает работу, удаляя исходные архив и сам пакетный файл для скрытия следов.

На этом этапе жертве может показаться, что запустилась легитимная утилита для обновления популярного текстового редактора Notepad++, так как файл "Notepad++.exe" действительно является подписанной программой WinGup, предназначенной для проверки обновлений. Однако именно здесь вступает в силу техника подмены DLL. Злоумышленники подложили в ту же папку вредоносную библиотеку с именем "libcurl.dll", которую легитимный WinGup пытается загрузить в процессе своей работы. Вредоносная логика реализована внутри этой библиотеки.

Исследование кода "libcurl.dll" показало, что он использует простой XOR-алгоритм со скользящим ключом для шифрования строк, что затрудняет статический анализ. При загрузке библиотека создаёт новый поток, который выполняет последовательность сложных действий. Сначала он расшифровывает и загружает вторую библиотеку - "curl.dll". Важно отметить, что эта библиотека не имеет отношения к известному проекту cURL, а содержит всего две функции: "checkper" (проверить закрепление) и "setper" (установить закрепление). Их задача - обеспечить устойчивое присутствие вредоносного кода в системе через добавление в автозагрузку реестра Windows (Run key) под именем «WinGup».

После установки закрепления вредоносная библиотека удаляет файл "curl.dll" с диска, чтобы замести следы, и расшифровывает URL-адрес для загрузки финальной полезной нагрузки. Адрес ведёт на домен "easyboxsync[.]com", который, согласно данным [анализа сетевой инфраструктуры], зарегистрирован относительно недавно и использует сервис Cloudflare для маскировки истинного расположения сервера. Далее "libcurl.dll" загружает с этого адреса зашифрованный шелл-код, используя в качестве пользовательского агента строку «downloader», и расшифровывает его с помощью алгоритма AES и ключа длиной 16 байт, используя библиотеку Crypto++. К сожалению, на момент анализа исследователям не удалось получить образец этого финального шелл-кода, что оставляет открытым вопрос о конечных целях атаки - будь то кража данных, шпионаж или удалённое управление системой.

Эта кампания демонстрирует ряд признаков целевой, а не массовой атаки. На это указывает тематическая приманка, связанная с документами совещаний, попытки тщательной очистки следов на каждом этапе, а также использование сложной, многоступенчатой схемы с резервными методами выполнения (например, загрузка 7-Zip). Подобные техники часто ассоциируются с деятельностью групп повышенной сложности. Для специалистов по защите данный инцидент служит важным напоминанием о необходимости многоуровневого контроля. Эффективными мерами противодействия подобным атакам могли бы стать: блокировка выполнения PowerShell-скриптов из непроверенных источников, строгие политики контроля целостности приложений (Application Control), предотвращающие запуск неподписанного кода из папок пользователя вроде "%AppData%", а также тщательный мониторинг создания запланированных задач и необычных сетевых подключений, особенно к новым или подозрительным доменам. Внимание к деталям, вроде файлов LNK из непроверенных архивов, остаётся критически важной первой линией обороны.

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

URLs

  • https://live.easyboxsync.com/resources/gup/notepad

SHA256

  • 1f8c7a202ac9f64efbedb420b6160ef4f9852f6ff1aa36abaa64bfb76b142e15
  • 23d76c49128994d83f878fd08829d003c2ffcd063d03ec7ff1fe4fe41ffb36c3
  • 2707ba2dc931da049f70c31b0654714121fac908475dc084cb4ab808f9dd5308
  • 28ff75c0ac4434cdc4f0b21567ac1f06979c2426f8623d157473ac079bf8792a
  • 7e0da1399ff99e41493db489159668db566b6b00cd367e770619b774ec515809
  • a2c128fc040ed2db7634134f0577b3267164b71f692fc9b37c08e48b168d89e6
  • badd970fab64c072e5ab0a81865de0988c1b12165a076bcdbee8a9cb8e101675
Комментарии: 0