Анализ многоэтапной кампании SERPENTINE#CLOUD, проводившейся с октября прошлого года, выявил парадоксальную тенденцию: в то время как конечные полезные нагрузки в виде удалённых троянов (RAT) оставались практически неизменными на протяжении 176 дней, инфраструктура их доставки претерпела пять значительных эволюционных скачков. Это наглядно демонстрирует смещение тактики современных угроз (APT) от разработки уникального вредоносного кода к совершенствованию методов его скрытной доставки и обхода систем защиты.
Описание
Кампания использовала сложную цепочку внедрения, в которой ключевую роль играла гибкая система загрузчиков на Python. Все атаки начинались с одного и того же сценария: пакетный файл (.bat) загружал ZIP-архив через одноразовый туннель Cloudflare. Этот архив содержал среду исполнения Python и один или несколько скриптов-загрузчиков. Каждый такой загрузчик расшифровывал встроенный шелл-код, который, в свою очередь, инициализировал общеязыковую среду выполнения (CLR) платформы .NET для загрузки финальной вредоносной полезной нагрузки. Интересно, что девять семейств RAT в шести параллельных цепочках атак доставлялись через один и тот же конвейер.
Анализ семи волн атак с октября по декабрь показал чёткую тенденцию к усложнению обфускации. Первая волна использовала относительно простые схемы шифрования - двойной XOR и алгоритм RC4 - с инъекцией кода в процесс notepad.exe или выполнением внутри процесса Python. К ноябрю злоумышленники перешли на более стойкое шифрование AES-256-CBC в сочетании с XOR и сменили метод внедрения на так называемую технику Early Bird APC, нацеленную на процесс explorer.exe, что сделало атаку менее заметной.
Однако наиболее значимый скачок произошёл в волнах 4 и 5 (19 ноября). Здесь загрузчики претерпели кардинальные изменения: вместо исходного кода Python использовался скомпилированный байт-код (.pyc), замаскированный под обычный .py-файл. Внедрялся сложный многослойный обфускатор, условно названный аналитиками «Kramer». Его ключевой особенностью стало использование уникальных для каждого файла констант сдвига из области приватного использования Юникода (Private Use Area, PUA). Эти нестандартные, неотображаемые символы эффективно обходят сигнатурные методы обнаружения. Стоимость такой обфускации оказалась высокой - размер файлов вырос в 30 раз, при этом функциональность осталась прежней. Например, загрузчик для трояна Violet RAT достиг размера 20.7 МБ, декодируясь в тот же шаблонный код на 40 строк.
Важнейшим связующим звеном во всех волнах стал фреймворк Donut, который преобразует .NET-сборки в позиционно-независимый шелл-код. Каждый его экземпляр использовал лёгкий блочный шифр Chaskey в режиме CTR для шифрования модулей и обязательно содержал патчи для отключения ключевых функций безопасности Windows: сканирования через интерфейс антивирусного сканирования (AMSI) и политики динамического кода Windows (WLDP). Между версиями Donut также наблюдалась эволюция: в поздних волнах он доставлял не .NET-сборку напрямую, а нативную 64-битную обёртку, что добавляло ещё один уровень сложности для анализа.
Инфраструктура доставки также демонстрировала высокую адаптивность. Злоумышленники использовали девять одноразовых Cloudflare-туннелей, сменяемых от волны к волне, а также резервные серверы на случай недоступности основных. Пакетные стикеры стали умнее: если ранние версии просто завершали все процессы python.exe, то поздние использовали запросы через инструментарий управления Windows (WMI) для точечного поиска и уничтожения только тех процессов Python, которые породили определённые экземпляры explorer.exe. Кроме того, для обеспечения персистентности и поддержания сеанса удалённого доступа в автозагрузку помещались скрипты, имитирующие нажатие клавиш F15 или Shift с заданным интервалом, что не давало системе перейти в спящий режим.
Выводы аналитиков однозначны: внутренние компоненты атаки - сами RAT, такие как DcRat, AsyncRAT, VenomRAT, Violet и инфостилер PureLogs - практически не менялись. Между тем, внешние слои, ответственные за доставку и сокрытие, постоянно эволюционировали, демонстрируя высокий уровень операционной безопасности злоумышленников и их фокус на преодолении современных средств защиты. Это указывает на зрелую кампанию, где управление инфраструктурой и обфускация выделены в отдельные, постоянно совершенствуемые процессы.
С практической точки зрения, для защиты от подобных угроз специалистам по информационной безопасности необходимо уделять повышенное внимание мониторингу аномальной активности, связанной с Python и .NET CLR, особенно процессов, порождающих explorer.exe или манипулирующих памятью с правами на выполнение. Критически важным является анализ поведения, а не только статических сигнатур, поскольку сложная обфускация делает последние неэффективными. Также следует блокировать исходящие подключения к одноразовым доменам вроде "*.trycloudflare.com" в корпоративных сетях, если их использование не санкционировано. Понимание тактик, техник и процедур (TTP), документированных в рамках MITRE ATT&CK, таких как обфускация файлов или информации, инъекция в процессы и отклющение механизмов безопасности, позволяет выстраивать более эффективную многоуровневую защиту.
Индикаторы компрометации
Domains
- avoiding-ended-holiday-encyclopedia.trycloudflare.com
- blowing-paris-indoor-links.trycloudflare.com
- brochure-pot-tested-clubs.trycloudflare.com
- brunette-assembled-america-homepage.trycloudflare.com
- candidates-burlington-hugh-anymore.trycloudflare.com
- fsankmas.it.com
- fsankmas.xyz
- mustang-allowing-them-legislative.trycloudflare.com
- render-seen-sensor-urban.trycloudflare.com
- stomach-cite-personality-money.trycloudflare.com
- tammhdka.shop
- valuation-throws-sixth-disc.trycloudflare.com
MD5
- 29f3b9286beecd8ff405222e182c4226
- 2cd05753d1355e9e95c6001d7d2a64b7
- 2cddb22a1c0ea2c59943e7841bfcc709
- 2faa926e690a4fd4e7c5c1acbb910a28
- 4079c58306a2e15568bb2c006fa65eb5
- 42342683636e4347129ce25e3ad4954b
- 4bf46fa39a5d9a9b94af8552d58bc974
- 55aa4cb824722e9dd8e64d0538bd932b
- 63c77584066e65dc30f81dd14b782886
- 7f6ff3e61f9b57585fe17af90202c515
- 891490ccab1f9eaa16a11be3330d60ee
- 896a01e960d97a791133c51c7bf6629a
- 89713e3f754164d104ea5ae4ee6e17fc
- 8be09bb84bb3f2e8528862201420aa17
- 8fce7db93aba587407f368cb5c138ea1
- 9277a1bd906839af54584d3ac6523caf
- a9c46ef1a21a5799f608742e1a26ff43
- aafd399291d36afb518d4cb22eceb616
- b739245dfae51c8a399b7a189d8cf5c3
- b961ea70e68d7751f371f9c307976343
- bc71d7ebc0f2b0c512b5e8ff016b8840
- c8d885e9eb7a90228ebd5bf34afa49c6
- d69d1f100b74ffa8bcc8eae2394e1bfd
- ee6a79204c207b366e645f62ea493407
- f2eccf363c89098a445d3ed8a047c697
- fd267fde4c228922c177fdda6e358b87