Аналитики раскрыли технические детали нового стилера VVS, нацеленного на пользователей Discord

Stealer

Специалисты по кибербезопасности провели детальный технический анализ вредоносной программы VVS stealer, также известной как VVS $tealer. Этот стилер, написанный на языке Python, предназначен для кражи конфиденциальной информации у пользователей мессенджера Discord, включая учетные данные и токены. Зловред активно разрабатывался и продавался в Telegram-каналах как минимум с апреля 2025 года. Ключевой особенностью угрозы является использование инструмента Pyarmor для обфускации (запутывания) кода, что серьезно затрудняет его статический анализ и обнаружение с помощью сигнатурных методов.

Описание

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

Рекламный ролик VVS, ориентированный на Telegram

VVS stealer обладает широким набором вредоносных функций, рекламируемых его распространителями. Основные возможности включают кражу данных Discord, перехват активных сессий через инъекцию кода и извлечение информации из веб-браузеров, такой как куки, пароли, история посещений и данные автозаполнения. Кроме того, программа обеспечивает себе постоянство (persistence) в системе, прописываясь в автозагрузку, и работает скрытно, отображая ложные сообщения об ошибках.

Технический разбор образца вредоносного ПО с хешем SHA-256 c7e6591e5e021daa30f949a6f6e0699ef2935d2d7c06ea006e3b201c52666e07 показал, что он распространяется в виде пакета PyInstaller. Этот инструмент упаковывает Python-приложение и его зависимости в единый исполняемый файл. Исследователи использовали встроенную утилиту pyi-archive_viewer для извлечения ключевых компонентов, включая файл байт-кода Python и библиотеку времени выполнения Pyarmor. Интересно, что файл __init__.py внутри пакета содержал метаданные: версию Pyarmor 9.1.4 (Pro), уникальный лицензионный номер 007444 и временную метку сборки.

Для восстановления исходного кода аналитики применили декомпилятор Pycdc, способный преобразовывать байт-код Python 3.11 обратно в читаемый исходный код. После этого начался процесс раскрытия обфускации Pyarmor. Полезная нагрузка начинается с заголовка, содержащего сигнатуру файла, версию Python и уникальный лицензионный номер. Криптографические операции выполняются с использованием алгоритма AES-128 в режиме CTR. Вредонос использует режим BCC (ByteCode-to-Compilation), который преобразует ключевые функции Python в машинный код на C, что дополнительно усложняет анализ.

После успешного снятия слоев обфускации исследователи смогли изучить основную логику стилера. Выяснилось, что программа имеет встроенную дату истечения срока действия - 31 октября 2026 года, после которой она самостоятельно завершает работу. Все HTTP-запросы вредонос отправляет с фиксированной строкой User-Agent, имитирующей браузер Chrome.

Основная вредоносная деятельность начинается с поиска зашифрованных токенов Discord, которые имеют префикс dQw4w9WgXcQ:. Программа ищет эти строки в файлах с расширениями .ldb и .log. Для их дешифровки используется ключ, извлеченный из файла Local State с помощью Windows DPAPI, и алгоритм AES в режиме GCM. Полученные токены затем используются для запросов к API Discord с целью сбора исчерпывающей информации о жертве: статуса подписки Nitro, платежных методов, идентификатора пользователя, имени, электронной почты, номера телефона, списка друзей, серверов, статуса двухфакторной аутентификации и даже IP-адреса через внешний сервис. Все собранные данные эксфильтрируются в формате JSON на предустановленные вебхук-эндпоинты.

Отдельная функциональность, реализованная в классе Inj (Injection), отвечает за внедрение в клиент Discord. Вредонос сначала завершает работающие процессы Discord, затем загружает обфусцированный JavaScript-код с удаленного сервера и подменяет им оригинальные файлы в директории приложения. Этот код обеспечивает устойчивое присутствие в приложении, построенном на фреймворке Electron, и позволяет перехватывать сетевой трафик через Chrome DevTools Protocol, а также отслеживать действия пользователя, такие как просмотр резервных кодов, смена пароля или добавление способа оплаты.

Помимо Discord, стилер крадет данные из широкого спектра браузеров, включая Chrome, Edge, Firefox, Opera, Brave и другие. Целями являются сохраненные пароли, куки, история посещений и данные автозаполнения. Извлеченная информация архивируется в ZIP-файл и также отправляется злоумышленникам. Для обеспечения долговременного присутствия в системе программа копирует себя в папку автозагрузки Windows. В качестве маскировки VVS stealer демонстрирует пользователю фальшивое сообщение об ошибке с кодом 0x80070002, предлагая перезагрузить компьютер, что позволяет ему беспрепятственно продолжать свою деятельность.

Появление таких угроз, как VVS stealer, подчеркивает, как легитимные инструменты разработки могут быть обращены во вред. Использование Pyarmor для обфускации делает эту программу серьезным вызовом для традиционных средств защиты. Эксперты отмечают, что защита от подобных угроз требует комплексного подхода, включающего продвинутые системы анализа угроз, такие как Advanced WildFire, фильтрацию URL и DNS, а также платформы для обнаружения и реагирования на инциденты.

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

URLs

  • https://ptb.discord.com/api/webhooks/1360259628440621087/YCo9eVnIBOYSMn8Xr6zX5C7AJF22z26WljaJk4zr6IiThnUrVyfWCZYs6JjSC12IC8c0
  • https://ptb.discord.com/api/webhooks/1360401843963826236/TkFvXfHFXrBIKT3EaqekJefvdvt39XTAxeOIWECeSrBbNLKDR5yPcn75uIqKEzdfs9o2

SHA256

  • 307d9cefa7a3147eb78c69eded273e47c08df44c2004f839548963268d19dd87
  • 7a1554383345f31f3482ba3729c1126af7c1d9376abb07ad3ee189660c166a2b
  • c7e6591e5e021daa30f949a6f6e0699ef2935d2d7c06ea006e3b201c52666e07
Комментарии: 0