Исследования GReAT

Стилер Arkanix: инструмент для кражи данных на C++ и Python

Введение

В октябре 2025 года мы обнаружили на форумах даркнета несколько сообщений с рекламой ранее неизвестного стилера, который его авторы называют Arkanix Stealer. Он распространялся по модели «вредоносное ПО как услуга» (MaaS), при этом клиенты получали не только сам имплант, но и доступ к панели управления с возможностью конфигурирования полезных нагрузок и просмотра статистики. Среди имплантов был замечен общедоступный инструмент постэксплуатации под названием ChromElevator. Для его доставки использовалась нативная версия стилера, написанная на C++ и обладающая широким набором возможностей — от сбора информации о системе до кражи данных криптовалютных кошельков. Помимо нее, мы обнаружили реализацию того же стилера на Python, поддерживающую динамическое изменение собственной конфигурации. Версия на Python часто распространялась в упакованном виде, что позволяло злоумышленникам распространять ее разными способами. Отдельно стоит отметить, что кампания Arkanix фактически представляла собой разовую операцию: на момент написания статьи партнерская программа, судя по всему, уже была свернута.

Решения «Лаборатории Касперского» детектируют эту угрозу как Trojan-PSW.Win64.Coins.*, HEUR:Trojan-PSW.Multi.Disco.gen и Trojan.Python.Agent.*.

Техническая информация

Предыстория

В октябре 2025 года на различных форумах даркнета были обнаружены посты с рекламой стилера, который автор назвал Arkanix Stealer. В них подробно описывались возможности зловреда и содержалась ссылка на Discord-сервер, который выступал в качестве основного канала общения между автором и потенциальными клиентами.

Пример рекламного поста стилера Arkanix

Пример рекламного поста стилера Arkanix

В ходе дальнейшего исследования открытых источников мы выявили набор имплантов, связанных с этим стилером.

Начальное заражение

Начальный вектор заражения достоверно неизвестен. Тем не менее названия некоторых файлов скриптов-загрузчиков, которые нам удалось получить, а именно steam_account_checker_pro_v1.py, discord_nitro_checker.py и TikTokAccountBotter.exe, позволяют с высокой степенью уверенности утверждать, что для первичного заражения использовался фишинг.

Python-загрузчик

MD5 208fa7e01f72a50334f3d7607f6b82bf
Имя файла discord_nitro_code_validator_right_aligned.py

Для загрузки и выполнения Python-версии стилера Arkanix применялся скрипт, написанный на Python. Мы обнаружили такие скрипты как в виде исходного кода, так и упакованные с помощью PyInstaller или Nuitka. У них общий вектор исполнения, и все они частично обфусцированы. Многие из них также служат приманкой и при беглом просмотре создают впечатление, что содержат легитимный код. Некоторые действительно обладают полезной функциональностью, тогда как другие лишь загружают стилер. Кроме того, встречались образцы без какой-либо обфускации, в которых стилер запускался в отдельном потоке с использованием встроенного в Python модуля threading.

Разновидности Python-загрузчиков для запуска следующего этапа

Разновидности Python-загрузчиков для запуска следующего этапа

После выполнения загрузчик сначала устанавливает требуемые пакеты, в частности requests, pycryptodome и psutil, используя менеджер пакетов pip и модуля subprocess. В среде Microsoft Windows он также устанавливает pywin32. В некоторых проанализированных образцах эта процедура выполняется дважды. Загрузчик не валидирует вывод команды установки модулей и сразу отправляет POST‑запрос на hxxps://arkanix[.]pw/api/session/create, чтобы зарегистрировать только что скомпрометированную систему в панели управления, передавая заранее определенный набор параметров, — даже если установка завершилась неудачей. После этого стилер отправляет GET-запрос на hxxps://arkanix[.]pw/stealer.py и выполняет загруженную полезную нагрузку.

Python-версия стилера

MD5 af8fd03c1ec81811acf16d4182f3b5e1
Имя файла

В ходе исследования нам удалось получить образец стилера Arkanix, написанный на Python и загруженный с конечной точки hxxps://arkanix[.]pw/stealer.py загрузчиком предыдущего этапа.

Возможности стилера (или «функции» — в оригинале features, как их называет сам автор) в этой версии настраиваемые. Стандартная конфигурация уже прописана в самом файле скрипта. Для динамического обновления списка функций стилер отправляет GET‑запрос на hxxps://arkanix[.]pw/api/features/{payload_id}. Таким образом, возможности зловреда можно настраивать через панель управления. Список функций идентичен описанному в отчете GDATA.

Конфигурируемые параметры

Конфигурируемые параметры

Прежде чем приступить к выполнению функций, отвечающих за извлечение информации, стилер отправляет запрос на hxxps://arkanix[.]pw/upload_dropper.py, сохраняет полученный ответ в файл %TEMP%\upd_{случайное_8-байтовое_имя}.py и выполняет его. Нам не удалось получить содержимое этого скрипта, который сами злоумышленники называют дроппером.

В основной функции сбора данных по завершении каждого этапа обработки вся обнаруженная информация сериализуется в формат JSON и сохраняются по заранее заданному пути, например %LOCALAPPDATA\Arkanix_lol\%info_class%.json.

Ниже приведено подробное описание реализации функций сбора данных в Python-версии стилера.

Сбор информации о системе

Стилер Arkanix собирает различные данные о скомпрометированной системе. В частности, следующие:

  • версия ОС;
  • информация о центральном и графическом процессорах;
  • объем оперативной памяти;
  • разрешение экрана;
  • раскладка клавиатуры;
  • часовой пояс;
  • установленное ПО;
  • антивирусное ПО;
  • наличие VPN-решений.

Для сбора информации используются стандартные консольные команды. Единственное исключение — данные о VPN-соединении. Чтобы их получить, стилер отправляет запрос на hxxps://ipapi[.]co/json/ и проверяет, относится ли соответствующий IP-адрес к набору известных VPN-сервисов, прокси-серверов или выходных узлов Tor.

Кража данных из браузеров

Стилер способен извлекать различные типы данных из браузеров. Всего он поддерживает 22 браузера — от широко распространенного Google Chrome до Tor Browser. Список браузеров, в отличие от других параметров, строго прописан в коде и не может быть изменен во время выполнения. У Arkanix есть отдельный модуль-граббер для браузера Chrome (о нем речь пойдет ниже), однако собирать информацию из браузеров может и сам стилер. В частности, он извлекает следующие данные:

  • историю браузера (URL-адреса, количество посещений и время последнего посещения);
  • данные автозаполнения (адреса электронной почты, номера телефонов, почтовые адреса и данные банковских карт);
  • сохраненные пароли;
  • файлы cookie;
  • данные OAuth2 (из браузеров на базе Chromium).

Вся информация расшифровывается с использованием Windows DPAPI или AES (в зависимости от ситуации), после чего она просеивается на наличие релевантных ключевых слов. Среди браузерных данных стилер ищет исключительно ключевые слова, связанные с банковскими и платежными сервисами (например, revolut, stripe и bank) и криптовалютой (например, binance, metamask и wallet). Кроме того, стилер может извлекать данные из определенных криптовалютных браузерных расширений, список которых встроен в код.

Фрагмент списка расширений, из которых стилер извлекает данные

Фрагмент списка расширений, из которых стилер извлекает данные

Сбор информации из Telegram

Сбор данных из Telegram начинается с принудительного завершения процесса Telegram.exe с помощью команды taskkill. Затем, если для параметра telegram_optimized установлено значение False, зловред упаковывает в ZIP-архив все содержимое каталога tdata, который обычно расположен по пути %APPDATA%\Roaming\Telegram Desktop\tdata, и передает его атакующему. В противном случае стилер избирательно копирует и упаковывает в ZIP-архив только те подкаталоги, которые содержат ценные данные, например историю сообщений. Полученный архив отправляется на конечную точку /delivery под именем tdata_session.zip.

Извлечение данных из Discord

Стилер имеет две функции, связанные с сервисом Discord: для кражи учетных данных и для автоматического распространения. Первая функция извлекает учетные данные как из стандартного, так и из сторонних клиентов. Если обнаружен клиент на базе Chromium, стилер запускает тот же механизм эксфильтрации данных, который применяется для кражи учетных данных из браузеров.

Функция автоматического распространения настраиваемая (ее можно отключить). Стилер получает через API Discord список друзей и каналов пользователя и рассылает сообщение, заданное злоумышленником. При этом стилер не позволяет прикреплять файлы к отправляемым сообщениям.

Сбор данных о VPN-сервисах

Функция сбора данных о VPN-сервисах проверяет наличие в системе известных VPN-решений, затем извлекает учетные данные из файлов, расположенных по заранее заданным путям, с помощью регулярных выражений. Поддерживаются следующие VPN-решения:

  • Mullvad VPN
  • NordVPN
  • ExpressVPN
  • ProtonVPN

Кража файлов

Стилер собирает определенные файлы независимо от заданной конфигурации. Скрипт проходит по заранее определенному списку путей, связанных с текущим пользователем (например, «Рабочий стол», «Загрузки» и т. п.), и ищет файлы документов и медиаданных по их расширениям. Кроме того, в скрипте предусмотрен фиксированный список имен файлов, подлежащих эксфильтрации. Извлеченные файлы упаковываются в ZIP-архив и позднее асинхронно передаются на командный сервер. Примечательно, что в списке имен файлов встречаются слова на французском языке, например motdepasse («пароль»), banque («банк»), seecret («секрет») и compte («учетная запись»).

Другие полезные нагрузки

Нам удалось определить дополнительные модули, загружаемые с командного сервера (то есть они не были встроены в скрипт стилера), однако не удалось их получить. Описание модулей приведено в таблице ниже. В столбце «Подробности» указана информация, которую мы вывели из основного кода стилера.

Название модуля Конечная точка для загрузки Подробности
Граббер для Chrome /api/chrome-grabber-template/{payload_id}
Патчер кошельков /api/wallet-patcher/{payload_id} Проверяет, установлены ли криптовалютные кошельки Exodus и Atomic
Сборщик дополнительных данных /api/extra-collector/{payload_id} Использует такие параметрам конфигурации, как collect_filezilla, collect_vpn_data, collect_steam и collect_screenshots
HVNC /hvnc Сохраняется в каталог автозагрузки (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\hvnc.py) для автоматического запуска после загрузки системы

Скрипты патчера кошельков и сборщика дополнительных данных поступают с командного сервера в зашифрованном виде. Для их расшифровки используется алгоритм AES-GCM в сочетании с PBKDF2 (HMAC и SHA-256). Расшифрованная дополнительная полезная нагрузка представляет собой шаблон с подстановочными полями, которые заменяются соответствующими значениями, после чего файл сохраняется во временной папке под именем, часть которого генерируется случайным образом.

Код расшифровки данных и подстановки значений в шаблон

Код расшифровки данных и подстановки значений в шаблон

После завершения всех операций стилер удаляет себя с накопителя вместе с папкой артефактов (в рассматриваемом случае — Arkanix_lol).

Нативная версия стилера

MD5 a3fc46332dcd0a95e336f6927bae8bb7
Имя файла ArkanixStealer.exe

В ходе анализа нам удалось добыть как релизную, так и отладочную версии нативной реализации стилера — обе они были загружены на общедоступные ресурсы. Ключевые различия между этими версиями приведены ниже.

  • Релизная версия упакована с помощью VMProtect, однако виртуализация кода в ней не применяется.
  • Отладочная версия обменивается данными с Discord-ботом, выступающим в роли командного сервера, тогда как релизная версия взаимодействует с ранее упомянутым доменом arkanix[.]pw.
  • Отладочная версия ведет подробное логирование, по-видимому, для последующей отладки стилера.

Интересно, что в нативном варианте имя стилера явно указано в полях ресурса VersionInfo. Сведения об именовании совпадают между отладочной версией и некоторыми образцами релизной версии импланта.

Сведения о версии

Сведения о версии

После запуска стилер выполняет ряд контрмер, чтобы убедиться, что его процесс не запущен в песочнице или отладочной среде. После успешного прохождения этих проверок образец модифицирует функции AmsiScanBuffer и EtwEventWrite, чтобы предотвратить срабатывание любых нежелательных системных событий.

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

Сведения об RDP-соединениях

Стилер может собирать данные об известных RDP-соединениях, устанавливаемых скомпрометированным пользователем. Он ищет файлы .rdp в папке %USERPROFILE%\Documents и извлекает из них полный адрес сервера, имя пользователя, пароль и порт.

Файлы игровых клиентов

Стилер нацелен на геймеров и может извлекать учетные данные из клиентов популярных игровых платформ, включая:

  • Steam
  • Epic Games Launcher
  • net
  • Riot
  • Origin
  • Unreal Engine
  • Ubisoft Connect
  • GOG

Создание скриншотов

Нативная версия, в отличие от разновидности на Python, способна делать скриншоты каждого монитора с помощью WinAPI-функции capCreateCaptureWindowA.

Напоследок отметим, что этот образец обменивается данными с командным сервером через те же конечные точки, что и Python-версия. Однако в этом случае вообще все данные шифруются по той же схеме AES-GCM + PBKDF2 (HMAC и SHA-256), частично реализованной в варианте на Python. В некоторых проанализированных образцах использовался ключ arkanix_secret_key_v20_2024. Примечательно также, что образец, написанный на C++, явно указывает значение ArkanixStealer/1.0 в качестве User-Agent.

Инструмент для извлечения браузерных данных на этапе после компрометации

MD5 3283f8c54a3ddf0bc0d4111cc1f950c0
Имя файла

Этот имплант встроен в раздел ресурсов версии, написанной на C++, без какого-либо шифрования или обфускации. Стилер извлекает полезную нагрузку во временную папку под случайно сгенерированным именем, состоящим из шестнадцатеричных символов (0–9 и A–F), а затем запускает ее с помощью WinAPI-функции CreateProcess. Полезная нагрузка представляет собой общедоступный проект ChromElevator без каких-либо модификаций. Если вкратце, этот инструмент состоит из двух компонентов: инъектора и основной полезной нагрузки. Инъектор инициализирует механизм прямого вызова системных функций, создает экземпляр процесса целевого браузера в приостановленном режиме и внедряет в него расшифрованный код посредством системных вызовов Nt. Внедренная полезная нагрузка затем расшифровывает мастер-ключ браузера и эксфильтрует различные данные, включая cookie-файлы, сохраненные учетные данные и веб-данные.

Инфраструктура

Нам удалось выявить два домена, использованных злоумышленниками в ходе кампании Arkanix. Хотя трафик с этих доменов проходил через Cloudflare, нам удалось определить реальный IP-адрес одного из них — arkanix[.]pw. Для второго домена удалось установить только IP-адрес Cloudflare.

Домен IP-адрес Первое обнаружение ASN
arkanix[.]pw 195.246.231[.]60 9 октября 2025 г.
arkanix[.]ru 172.67.186[.]193 19 октября 2025 г.

На обоих серверах также размещалась панель управления стилером, через которую злоумышленники могли отслеживать своих жертв. Содержимое панели было скрыто за страницей входа. Ближе к концу нашего исследования панель перестала работать без каких-либо пояснений или уведомлений.

Страница входа в панель управления стилером

Страница входа в панель управления стилером

Реклама стилера

В ходе исследования кампании мы обратили внимание на ссылку в форумных постах с рекламой стилера, ведущую на Discord-сервер под названием Arkanix. Этот сервер выступал в роли форума, где авторы стилера публиковали различный контент, а пользователи могли задавать вопросы о работе зловреда. В основном пользователи выражали авторам благодарность и интересовались, когда та или иная обещанная функция будет добавлена в стилер. Авторы же публиковали более разнообразный контент. Они налаживали коммуникацию с потенциальными покупателями, используя те же маркетинговые приемы, что и легальные компании. Например, они подогревали интерес аудитории, предлагая участвовать в опросах о функциях, которые стоит или не стоит добавлять, таких как внедрение в Discord-клиент и склейка с легитимным приложением (биндинг).

Голосования по функциям

Голосования по функциям

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

Криптор Arkanix

Криптор Arkanix

В качестве дополнительной меры продвижения авторы стилера Arkanix решили внедрить реферальную программу для привлечения новых клиентов. По их обещаниям, рефереры получали бы дополнительный час использования премиум-лицензии для работы с панелью, а привлеченные рефералы получали бы семь дней бесплатного пробного использования премиум-плана. Согласно форумным постам, премиум-предложение включало следующие возможности:

  • нативный стилер на C++;
  • внедрение в криптовалютные кошельки Exodus и Atomic;
  • увеличение лимита на генерацию полезных нагрузок (до десяти);
  • приоритетная поддержка.
Реферальная программа и соответствующие элементы интерфейса в панели управления

Реферальная программа и соответствующие элементы интерфейса в панели управления

Скриншот проекта стилера в Visual Studio, опубликованный на Discord-сервере, позволил нам сделать некоторые технические выводы. Начнем с того, что автор проекта, судя по всему, говорит на немецком языке.

Реферальная программа и соответствующие элементы интерфейса в панели управления

Реферальная программа и соответствующие элементы интерфейса в панели управления

На том же скриншоте видны общеизвестные признаки использования ИИ-ассистента при разработке, такие как наличие файла utils.cpp в проекте. Эту гипотезу также подтверждают общая структура кода, наличие комментариев и подробное логирование отладочных данных.

Примеры кода с признаками генерации с помощью LLM

Примеры кода с признаками генерации с помощью LLM

Выводы

Стилеры всегда представляли серьезную угрозу для конфиденциальности пользовательской информации. Arkanix не является исключением — этот стилер нацелен на широкий круг пользователей, от геймеров и поклонников криптовалют до клиентов онлайн-банкинга. Он собирает обширный набор сведений, включая специфические персональные данные. Несмотря на широкую функциональность, в его коде заметны признаки генерации с помощью LLM, что, по всей видимости, позволило значительно сократить время и затраты на разработку. Это также говорит в пользу того, что Arkanix скорее представляет собой одноразовую кампанию для быстрого получения финансовой выгоды, чем долгосрочную угрозу. Панель управления и чат в Discord прекратили работу в декабре 2025 года без каких-либо пояснений или намеков на дальнейшую разработку и возрождение проекта.

Отдельно отметим, что авторы Arkanix стремились быть ближе к своим клиентам: они создали форум, где публиковали подробности о ходе разработки, проводили опросы и даже внедрили реферальную программу, обещая бонусы тем, кто «приведет друга». Такой подход делает Arkanix ближе по духу к разработчикам общедоступного ПО, а не сомнительных стилеров из даркнета.

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

Хэш-суммы файлов
Дополнительные индикаторы компрометации доступны клиентам сервиса Threat Intelligence. Для получения более подробной информации свяжитесь с нами по адресу crimewareintel@kaspersky.com.

752e3eb5a9c295ee285205fb39b67fc4
c1e4be64f80bc019651f84ef852dfa6c
a8eeda4ae7db3357ed2ee0d94b963eff
c0c04df98b7d1ca9e8c08dd1ffbdd16b
88487ab7a666081721e1dd1999fb9fb2
d42ba771541893eb047a0e835bd4f84e
5f71b83ca752cb128b67dbb1832205a4
208fa7e01f72a50334f3d7607f6b82bf
e27edcdeb44522a9036f5e4cd23f1f0c
ea50282fa1269836a7e87eddb10f95f7
643696a052ea1963e24cfb0531169477
f5765930205719c2ac9d2e26c3b03d8d
576de7a075637122f47d02d4288e3dd6
7888eb4f51413d9382e2b992b667d9f5
3283f8c54a3ddf0bc0d4111cc1f950c0

Домены и IP-адреса
arkanix[.]pw
arkanix[.]ru

Стилер Arkanix: инструмент для кражи данных на C++ и Python

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

Продолжение операции «Форумный тролль»: российских политологов атакуют при помощи отчетов о плагиате

Эксперты GReAT «Лаборатории Касперского» обнаружили новую волну кибератак APT-группы «Форумный тролль», нацеленную на российских ученых-политологов, доставляющую на устройства фреймворк Tuoni.