В май 2026 года была выявлена новая кампания по кибершпионажу, осуществляемая группировкой Armored Likho (также называемой Eagle Werewolf). Эта кампания направлена на компрометацию частных лиц и организаций различных секторов экономики в России, включая крупные корпорации, государственные учреждения, информационно-технологические фирмы и образовательные организации. Злоумышленники использовали поддельное приложение, которое имитировало сервис для перечисления благотворительной помощи подопечным благотворительных организаций. Однако основной интерес представляют не способы первоначального проникновения в систему, а вредоносные модули, которые применяются атакующей группой для проведения кибершпионажа.

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

В ходе проведённого исследования были обнаружены новые инструменты для проведения кибершпионажа, разработанные на языке программирования Rust, — набор Still Toolkit. Один из его компонентов, Still Sync, предназначен для хищения данных сеансов мессенджера Telegram и получения несанкционированного доступа к учётной записи потерпевшего. Используя полученные данные, злоумышленники могут автоматически выгружать из аккаунта переписку, мультимедийные материалы и иную информацию через API мессенджера.

Второй компонент набора, Still Audio, функционирует как имплант для скрытого аудиоконтроля. Он осуществляет анализ входящего аудиосигнала, автоматически определяет наличие речи и осуществляет запись разговоров, которые затем передаются на командный сервер.

В данной статье рассматриваются методы первоначального внедрения вредоноса, механизм функционирования компонентов Still Toolkit и технические особенности их работы.

Программные решения исследовательской организации обнаруживают данную угрозу под обозначением Trojan.Win64.Agent.*, HEUR:Backdoor.Win32.Generic.

Предыстория

Вредоносная активность группировки Armored Likho освещалась неоднократно: в ноябре 2024 года, в феврале и июле 2026 года. Текущая операция демонстрирует значительное сходство с ноябрьской и февральской кампаниями, когда использовались вредоносные загрузчики, распространяемые под видом документов и программ, связанных с активацией спутникового интернета или благотворительностью. В текущей операции в качестве приманки также используется благотворительная тематика. Вместе с этим, проведённое исследование выявило множество новых инструментов, свидетельствующих об увеличении возможностей атакующей стороны.

Первоначальное внедрение

Начало цепи заражения представляет собой приложение, которое имитирует программу для передачи благотворительной помощи подопечным благотворительных организаций. На момент проведения исследования способ его распространения остаётся неизвестным. Однако в ходе работы удалось получить несколько образцов, которые выдавали себя за программы трёх различных благотворительных фондов: «ЗаЩИТа», «Братское сердце» и «Защитники Отечества».

На самом деле приложение представляет собой загрузчик. Оно написано на языке Rust с использованием известного фреймворка Tauri и имеет графический интерфейс для введения в заблуждение пользователя. При запуске отображается окно входа, в котором требуется ввести пароль, предположительно предоставленный злоумышленниками.

После введения корректного пароля пользователь видит каталог товаров, которые можно отправить как благотворительную помощь. Информация о товарах и их разделах загружается с сервера orderapiserver[.]info через API-точки public/categories и public/products. Наличие интерактивного каталога создает впечатление, что приложение является настоящим. Пока пользователь просматривает товары, загрузчик скрытно выполняет расшифровку и запуск полезной нагрузки для последующего этапа атаки.

Анализ показал, что механизм расшифровки полезной нагрузки и запуска последующих фаз не изменился по сравнению с февральской кампанией. Однако были обнаружены новые инструменты для кибершпионажа — Still Toolkit, состоящий из двух компонентов: Still Sync и Still Audio.

Still Sync

Still Sync представляет собой программный модуль для кражи информации, разработанный на языке Rust и предназначенный для похищения данных сеансов мессенджера Telegram. Однако его функциональность этим не ограничивается. Используя полученные данные, этот модуль может войти в аккаунт потерпевшего и через API мессенджера выгрузить переписку и медиа-файлы.

С точки зрения конструкции, Still Sync представляет собой асинхронное приложение, построенное на основе библиотеки Tokio. Для обмена данными с командным сервером используется gRPC, а сериализация сообщений осуществляется посредством FlatBuffers. В качестве протокола передачи поддерживаются HTTP и HTTPS — выбор между ними зависит от URL-адреса командного сервера.

Принцип функционирования

При запуске Still Sync злоумышленники устанавливают несколько переменных окружения системы. Перед началом вредоносной деятельности модуль извлекает из них параметры конфигурации:

  • STILL_SYNC_ADDR — адрес командного сервера. По умолчанию применяется URL https://tg4service[.]com:443;
  • STILL_SEND_PATH — путь к папке tdata;
  • STILL_TELEGRAM_PASSCODE — пароль для расшифровки папки tdata, если на компьютере жертвы включена защита данных мессенджера.

Кроме того, Still Sync поддерживает несколько параметров командной строки:

  • --console — работает как консольное приложение. При отсутствии этого параметра модуль создает системную службу TReload для продолжения работы в фоновом режиме;
  • --version — выводит информацию о версии программы и завершает работу;
  • --firefly — активирует поток отслеживания программы. Информация об ошибках сохраняется в скрытый файл bin в той же папке, где находится основной исполняемый файл;
  • --db — включает режим отладки с детальным логированием.

После запуска вредоносный код начинает процедуру регистрации устройства на командном сервере. Для этого Still Sync собирает следующую информацию о системе потерпевшего:

  • серийный номер материнской платы;
  • идентификационный номер процессора;
  • UUID операционной системы;
  • серийный номер BIOS;
  • имя компьютера в сети.

Собранные данные объединяются в одну строку с использованием двоеточия как разделителя. Полученная строка затем хэшируется посредством алгоритма SHA-256, а результирующий хэш сохраняется в параметре sysmarker. Следует отметить, что идентичный алгоритм используется и в других инструментах Armored Likho, например в AquilaRAT.

Пакет, содержащий всю собранную информацию и версию модуля, затем сохраняется в сериализованном виде и отправляется POST-запросом на адрес /still.rpc.Sync/RegisterMachine. В ответ сервер возвращает идентификатор machine_id, который впоследствии используется для идентификации в последующих запросах. После успешного завершения регистрации Still Sync отправляет POST-запрос с параметром machine_id на адрес /still.rpc.Sync/GetMachineSettings. В ответ сервер передает следующие параметры:

  • enabled — инициирует вредоносную деятельность на скомпрометированном устройстве;
  • scan_portable — активирует расширенное сканирование при поиске папки tdata. Эта функция рассматривается более подробно далее;
  • fetch_telegram — при включении этого параметра Still Sync пытается получить доступ к мессенджеру и получить данные. Эта функция рассматривается более подробно далее;
  • download_channels — при отключении этого параметра диалоги в каналах пропускаются при выгрузке данных из мессенджера.

Для этих параметров не предусмотрены значения по умолчанию, поэтому Still Sync не выполняет никаких вредоносных действий до тех пор, пока процедуры регистрации и получения параметров не будут успешно завершены.

Сбор данных мессенджера Telegram

До начала похищения данных сеанса мессенджера Still Sync ищет папку tdata, если переменная STILL_SEND_PATH не установлена. Перечень папок для поиска включает как стандартные, так и нестандартные директории, если активирована опция scan_portable:

  • C:\Users\<username>\AppData\Roaming\Telegram Desktop\ — стандартная папка установки Telegram Desktop;
  • C:\Users\<username>\AppData\Local\Packages\<package_folder>\LocalCache\Roaming\ — папка установки через магазин приложений Microsoft. Папка пакета определяется по имени, содержащему строку ramMessengerLLP.TelegramMessenge;
  • C:\ — используется для расширенного поиска (при активации опции scan_portable).

Затем Still Sync отправляет POST-запрос со списком файлов из папки tdata на адрес /still.rpc.Sync/CheckFiles. В ответ сервер возвращает следующие значения:

  • snapshot_id — идентификатор, присваиваемый сервером текущему снимку данных;
  • present — перечень путей к файлам, которые уже находятся на сервере.

Таким образом командный сервер предотвращает повторную загрузку уже полученных файлов. Кроме того, если Still Sync не может получить доступ к файлам стандартными методами, он использует три резервных способа, основанных на использовании привилегии SeBackupPrivilege:

  • открытие файлов посредством функции CreateFileW с параметром FILE_FLAG_BACKUP_SEMANTICS;
  • создание резервной копии через служба теневого копирования и чтение файлов из неё;
  • если предыдущие способы завершаются неудачей, Still Sync пытается скопировать файл посредством утилиты Robocopy в режиме резервного копирования.

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

  • информацию о пользователе, такую как имя пользователя, номер телефона, имя и фамилия;
  • информацию о закрытых чатах, группах или каналах. Она может включать название и ID чата, перечень участников и т. д.;
  • переписку из личных чатов, групп и каналов (при активации опции download_channels);
  • медиа-файлы размером менее 250 МБ следующих типов: фотографии, документы, стикеры и контакты.

Still Audio

Still Audio представляет собой модуль для скрытого аудиоконтроля, разработанный на языке Rust. Его основная функция состоит в анализе входящего аудиосигнала и осуществлении записи голоса при выполнении определенных условий, о которых будет рассказано в следующем разделе. По конструкции Still Audio во многом воспроизводит Still Sync и использует одинаковые механизмы обмена данными с командным сервером.

При запуске Still Audio выполняет несколько последовательных действий:

  • извлекает файл libmp3lame.dll, хранящийся в исполняемом файле. Это библиотека для кодирования аудиоданных;
  • если параметр командной строки --console отсутствует, модуль создает системную службу с именем auxhost, подключается к ней и продолжает работу в фоновом режиме;
  • во время работы в фоновом режиме создает файл logfile.log для записи логов.

Следующим этапом Still Audio получает адрес командного сервера. Как и Still Sync, URL хранится в переменной окружения, в данном случае STILL_AUDIO_SYNC_ADDR. При отсутствии такой переменной используется значение STILL_SYNC_ADDR, что показывает совместимость двух модулей. При отсутствии обеих переменных применяется URL по умолчанию — https://srwinservice[.]com.

Кроме того, Still Audio использует технику Dead Drop Resolver как резервный способ получения адреса командного сервера. Если текущий сервер остается недоступным в течение трёх дней, инструмент пытается получить актуальный адрес командного сервера из репозитория на платформе GitHub. В исследованном образце был обнаружен следующий URL страницы, содержащей информацию о командном сервере: hxxps://raw.githubusercontent[.]com/mmarln/pi-mono/refs/heads/main/packages/pods/src/array12.json

Репозиторий, являющийся копией известного проекта, содержит адрес сервера, закодированный с помощью кодирования Base64 и зашифрованный алгоритмом Blowfish в режиме ECB с использованием ключа 5c8e153228edd3c6cbf75684 (строка в нижнем регистре). Точно такой же алгоритм и ключ используются в ранних образцах AquilaRAT.

Получив актуальный адрес командного сервера, модуль Audio запускает процедуру регистрации, аналогичную регистрации в Still Sync, но с использованием другой адреса — /still.rpc.Audio/RegisterAudioMachine. Также, в отличие от Still Sync, помимо информации о системе модуль Audio передает перечень доступных устройств ввода звука.

В ответ сервер возвращает параметры для модуля:

  • machine_id — уникальный идентификатор текущего устройства;
  • vad_threshold — пороговое значение для алгоритма VAD (обнаружение голосовой активности). Указывается в виде десятичной дроби и представляет собой долю от максимального уровня звука, который способно воспринимать устройство ввода. Голосовой активностью считается уровень звука выше порогового значения. По умолчанию vad_threshold составляет 0,02;
  • max_silence_duration — количество аудиосемплов со значением VAD ниже установленного порога, после которого запись считается завершённой;
  • max_buffer_size — максимальный размер буфера для записываемых аудиоданных;
  • active_device — имя устройства ввода, выбранного для записи из списка доступных устройств.

Процесс осуществления прослушки

Still Audio работает с сырыми аудиосемплами, поступающими прямо от устройства ввода. Для выявления голосовой активности инструмент реализует алгоритм на основе среднеквадратичного значения (Root Mean Square, далее RMS) — лёгкий способ обработки сигнала, позволяющий отличать речь от тишины посредством оценки средней мощности аудиосигнала во времени. При этом модуль не использует сторонние библиотеки, а реализует все вычисления самостоятельно.

Рассчитанное значение RMS сравнивается с параметром vad_threshold. Если RMS больше или равно этому порогу, начинается запись аудио. При этом, чтобы избежать потери начальной части записи, Still Audio использует pre-buffer — буфер ограниченного объема, в котором сохраняются семплы, предшествующие текущему моменту записи. Сигналом к прекращению записи является последовательность из max_silence_duration (по умолчанию — 320) семплов, для которых значение RMS остается ниже установленного порога. Например, при использовании обычной гарнитуры с частотой дискретизации 44,1 кГц запись будет остановлена примерно после 7 мс тишины.

Также следует отметить, что модуль Audio не пытается скрыть факт использования микрофона и его имя видно в параметрах операционной системы. Так, исследуемый образец сохранялся на диске с именем файла IntAudio.exe. В примере ниже он отображается в перечне программ, использующих микрофон, как Intel Audio:

Перед отправкой на сервер записанные сырые аудиосемплы кодируются посредством библиотеки libmp3lame. Для передачи файлов с записями используется POST-запрос к /tgfrg, а для идентификации устройства в запрос добавляется заголовок Client-Id, содержащий значение machine_id, полученное на этапе регистрации.

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

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

  • использование одних и тех же хостинг-провайдеров с номерами AS: 149440, 202448, 215311;
  • схожие шаблоны наименования доменов, имитирующие системные функции операционной системы и механизмы обновления.

Жертвы

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

Атрибуция

В ходе текущей кампании применялись как новые инструменты, так и семейства вредоносного программного обеспечения, описанные в исследовании февраля 2026 года.

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

  • идентичная архитектура загрузчиков в февральской и текущей кампаниях, включая использование библиотеки Tauri для создания графического интерфейса, схожий обработчик ввода от пользователя, полезную нагрузку с заголовком ICRYPTMP и одинаковый формат многоключевого шифрования;
  • совпадение алгоритма и ключа шифрования, использовавшихся в AquilaRAT из предыдущей кампании и в модуле Still Audio текущей кампании для реализации техники Dead Drop Resolver;
  • одинаковая логика формирования значения sysmarker в старых образцах AquilaRAT и в инструментарии Still из текущей кампании. Алгоритмы совпадают вплоть до команд PowerShell, используемых для сбора информации о системе;
  • значительное сходство инфраструктуры, включая применяемые хостинг-провайдеры и шаблоны наименования доменов, описанные в разделе «Инфраструктура».

Итоговые выводы

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

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

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