Новый механизм закрепления в системе: вредоносное ПО использует скрытый автозапуск Python для развёртывания туннелирующего бэкдора

ransomware

Аналитики в области информационной безопасности столкнулись с изощрённой техникой закрепления вредоносного ПО в системе, которая позволяет злоумышленникам длительное время сохранять доступ к инфраструктуре жертвы. Механизм, обнаруженный в ходе расследования инцидента с программой-вымогателем DragonForce, использует скрытые возможности языка Python для выполнения бэкдора, создающего SOCKS5-туннель для командования и управления. Этот подход демонстрирует эволюцию тактик киберпреступников в сторону использования легитимных инструментов и сложной обфускации для уклонения от обнаружения.

Описание

В ходе стандартного анализа артефактов на заражённых компьютерах специалисты обратили внимание на нетипичное задание в Планировщике задач Windows с именем "523135538". Его функция заключалась в запуске исполняемого файла "pythonw.exe" из нестандартного каталога "C:\ProgramData\cp49s\" без передачи каких-либо аргументов командной строки. Обычно подобное поведение подозрительно, так как легитимные приложения редко запускают интерпретатор Python без указания скрипта. Первоначальная гипотеза о сторонней загрузке DLL (DLL sideloading) не подтвердилась. Вместо этого в той же директории был обнаружен файл "sitecustomize.py". Этот модуль обладает особым свойством в экосистеме Python: он автоматически импортируется и выполняется при каждом запуске любого скрипта или интерпретатора Python в системе. Помещение вредоносного кода в этот файл гарантирует его выполнение независимо от того, как был вызван "pythonw.exe".

Анализ скрипта "sitecustomize.py" раскрыл хитроумный механизм условного запуска полезной нагрузки. Код использовал функцию "Py_GetArgcArgv" из C API Python для определения количества переданных аргументов командной строки. Если аргумент был только один (сам "pythonw.exe"), что соответствовало конфигурации задания планировщика, скрипт автоматически находил и исполнял файл "b5yogiiy3c.dll", расположенный в том же каталоге. Этот файл, несмотря на расширение DLL, на самом деле являлся многослойно обфусцированным скриптом на Python, что и служило следующей стадией атаки.

Основная полезная нагрузка, скрытая в "b5yogiiy3c.dll", была защищена несколькими слоями сложной обфускации, затрудняющей статический анализ. Код использовал переименование функций в случайные строки, сплющивание потока управления (control-flow flattening) и кодирование ключевых фрагментов с помощью Base85 - алгоритма, реже встречающегося в системах обнаружения по сравнению с Base64. После последовательного прохождения трёх слоёв деобфускации исследователям удалось восстановить финальный скрипт. Его функционал был чётко сфокусирован: создание SOCKS5-прокси для туннелирования трафика на внешний сервер управления. Прокси использовал порт 443, маскируясь под обычный HTTPS-трафик. Модульная архитектура бэкдора, включающая классы для управления соединениями, ретрансляции данных и основного управления, указывала на профессиональную разработку и возможность масштабирования.

Согласно отчёту экспертов по угрозам, данный туннелирующий бэкдор известен под названием VIPERTUNNEL и ассоциируется с группировками UNC2165 и EvilCorp. Его часто используют как вторичную нагрузку после первоначального заражения через кампании типа FAKEUPDATES для обеспечения устойчивого доступа к сети жертвы. Такой доступ в дальнейшем может быть монетизирован, в том числе путём продажи другим группам, специализирующимся на ransomware-атаках. В данном случае активность программ-вымогателей была связана с DragonForce, однако прямых доказательств передачи доступа именно через этот экземпляр VIPERTUNNEL обнаружено не было.

Интересно, что аналогичный фреймворк обфускации был обнаружен и в других вредоносных образцах, например, в похитителе учётных данных ShadowCoil, который таргетирует браузеры на основе Chromium и Firefox. Это указывает на возможное использование одних и тех же инструментов разработки или общее происхождение угроз. Примечательной деталью стало наличие в коде ShadowCoil проверки на отладку для Linux (через файл "/proc/self/status"), что является аномалией для вредоноса, ориентированного на Windows. Это может свидетельствовать о кроссплатформенной природе самого фреймворка обфускации или о планах злоумышленников расширить арсенал для атак на Linux-системы в будущем.

Расследование также позволило выявить и проанализировать инфраструктуру злоумышленников. Помимо серверов C2 для VIPERTUNNEL, были обнаружены системы, использующие фреймворк для постэксплуатации Pyramid. Этот инструмент, работающий через HTTP и использующий легитимный "python.exe" для выполнения кода в памяти, трудно обнаружить традиционными EDR-решениями. Уникальной чертой развёртываний Pyramid в данной кампании стала специфическая HTTP-ошибка 401 с заголовком аутентификации "Basic realm="Proxy"", что позволило исследователям эффективно выявлять связанные серверы с помощью поисковых систем по интернет-вещам, таких как Censys.

Анализ временной шкалы развития бэкдора показал четыре основных этапа: от ранних версий с многочисленными ошибками в коде в конце 2023 года до современных, отполированных production-вариантов, наблюдавшихся в конце 2025 года. Эволюция включает отказ от отладочной информации, улучшение архитектуры и внедрение более сложных методов обфускации. Несмотря на возраст кампании, значительная часть инфраструктуры C2 остаётся активной, а используемые техники продолжают обеспечивать низкий уровень обнаружения. Это подчёркивает постоянную угрозу со стороны сложных, многоступенчатых атак, которые используют легитимное ПО и тщательно скрывают свою активность для долгосрочного закрепления в корпоративных сетях.

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

YARA

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