Автоматический анализ образца из MalwareBazaar раскрыл инфраструктуру криптостилера Needle: почти 2000 жертв и критические уязвимости C2

Stealer

Платформа для сбора угроз Caronte, работающая в полностью автоматическом режиме, за считанные минуты превратила единичный вредоносный файл в детальную картину активной кампании по краже криптовалют. Исходным материалом послужил образец, загруженный на общедоступный репозиторий MalwareBazaar. Без участия человека система выполнила бинарную классификацию, извлекла конфигурацию, идентифицировала командный центр (C2), перечислила почти две тысячи жертв и отследила перемещение похищенных средств по блокчейну. Результатом стал доступ к панели управления оператора вредоносного ПО Needle - платформы класса "вредоносное ПО как услуга" (MaaS), специализирующейся на краже криптовалютных кошельков.

Описание

Образец представлял собой исполняемый файл для Windows на языке Rust без отладочных символов, размером 8,9 МБ. Система Caronte определила его семейство как RustyStealer и установила, что распространение ведется через ботнет Phorpiex. Анализ строк в бинарном коде позволил выявить использование фреймворка egui для построения графического интерфейса, а также цели подмены: кошельки Zelcore, Trezor и Ledger. Встроенная конфигурация содержала адрес командного центра "http://130.12.180.135:3000/api/v2" и ключ API "alk_776...fc1". Ключ не был защищен ни шифрованием, ни обфускацией. Более того, этот же ключ используется зараженными машинами для аутентификации на сервере - разделения прав между агентом и администратором не предусмотрено.

На основе извлеченных данных Caronte построила граф угроз из 94 узлов и 135 ребер, сопоставила 40 сигнатур YARA и зафиксировала дополнительные возможности вредоносного ПО: кейлоггинг (перехват нажатий клавиш с помощью функции "GetAsyncKeyState"), закрепление в системе через ключ реестра "Run" и антиотладочные приемы. Сервер C2 размещен в нидерландском дата-центре провайдера Omegatech LTD (ASN 202412), известного предоставлением "пуленепробиваемого" хостинга.

Платформа Needle построена по модульному принципу: оператор приобретает или арендует отдельные компоненты. На момент анализа были активны два модуля - подмена браузерного расширения и десктопный подменщик кошельков. Первый модуль перехватывает или подменяет легитимные расширения для MetaMask, Trust Wallet, Phantom, OKX, TonKeeper, Coinbase, Atomic, Bybit и Binance. Жертва вводит пароль или сид-фразу в поддельный интерфейс, и данные уходят на сервер. По данным API, через браузерный модуль было зафиксировано 111 жертв: 48 пользователей MetaMask, 30 - Trust Wallet, 20 - Phantom, остальные - прочие кошельки. Количество жертв увеличивалось на 3-5 каждые несколько часов в период наблюдения.

Десктопный модуль написан на Rust и имитирует интерфейсы Exodus, Trezor и Ledger. При запуске жертва видит поддельное окно восстановления кошелька и вводит сид-фразу. Если фраза верна и включен автоматический вывод, средства мгновенно перемещаются на адреса оператора. Всего на сервере было зарегистрировано 1821 десктопная сессия - все с признаком "awaitingSeed: true", то есть сид-фразы еще не отправлены. Возможно, кампания находится на ранней стадии, либо жертвы прерывают взаимодействие с поддельным диалогом.

Анализ фронтенда панели управления (React 19, Express.js, nginx 1.29.8) выявил критическую ошибку в аутентификации. Панель представляет собой одностраничное приложение (SPA), которое проверяет наличие токена в локальном хранилище браузера ("localStorage"). Сервер никак не участвует в принятии решения об отображении интерфейса. Достаточно было записать в "localStorage" два значения - структурно валидный токен и объект с ролью администратора - чтобы получить полный доступ к отрисовке панели. Сами API-запросы все равно требовали настоящего токена, но структура панели, список модулей, страницы конфигурации стали полностью видны.

Настоящие данные были получены с помощью того самого ключа агента, извлеченного из бинарного файла. Он позволил выполнять запросы к эндпоинтам без административного токена. Исследователи из компании, разработавшей Caronte, обнаружили полную конфигурацию вывода средств оператора: адреса для Bitcoin, Litecoin, Dogecoin, Solana, TRON и EVM-совместимых сетей. На EVM-адресе находилось около 148 долларов в эфире, которые уже были переведены на три отдельных "холодных" кошелька. На TRON-адресе зафиксировано примерно 60 долларов в USDT и TRX. Адреса для остальных криптовалют не имели транзакций, что согласуется с ранней стадией сбора.

Особую опасность представляет то, что фронтенд-код содержит эндпоинт для изменения конфигурации вывода ("PUT /api/v2/antiledger/settings"), использующий ту же схему аутентификации через ключ агента. Это означает, что любой, кто получил ключ (например, из бинарного файла), потенциально может перенаправить будущие автоматические выводы средств на свои адреса. Исследователи не выполняли запросов на запись, но сам факт такой возможности демонстрирует полное отсутствие разграничения прав для агентского ключа.

Дополнительно на том же хосте, на порту 8181, обнаружена вторая панель, использующая ту же базу данных. Из 1817 запросов к сессиям сид-фраз 1814 совпали, что подтверждает общую базу. Такая архитектура характерна для MaaS-платформ, где несколько партнеров получают доступ к единой инфраструктуре.

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

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

IPv4 Port Combinations

  • 130.12.180.135:3000
  • 130.12.180.135:8080
  • 130.12.180.135:8181

YARA

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