Введение

Финансово мотивированная киберпреступная группа Toy Ghouls (также известная как Bearlyfy, Laboo.boo и Feral Wolf) продолжает атаковать российские организации с 2025 года. На ранних этапах злоумышленники применяли свободно распространяемые утилиты из репозиториев GitHub и скомпрометированные сборщики вирусов Babuk и LockBit. Позже в своем арсенале они использовали самостоятельно созданный вирус GenieLocker. В июле 2026 года специалисты зафиксировали первое применение группой собственного удаленного агента.

Исследователи выявили две модификации удаленного агента, отличающиеся каналом управления. В первой версии используется публичный MQTT-брокер HiveMQ, во второй — мессенджер Element на основе протокола Matrix. Обе версии содержат слово bird в названии:

  • mqtt-bird-agent 0.1.0 (MQTT-вариант)
  • matrix-bird-agent 0.1.0 (Matrix-вариант)

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

Технические характеристики

Внедрение

При проведении последней атаки злоумышленники используют протокол Windows Remote Management (WinRM) для доставки удаленных агентов и их конфигурационных данных на скомпрометированные компьютеры. В своих действиях группа применяет открытые утилиты Evil-WinRM и WinRM-fs.

Интеграция в систему

Обнаруженный агент поддерживает два режима работы: интерактивный режим командной строки и режим системной службы Windows. Для установки в качестве системной службы используются параметры --install либо install (в зависимости от версии). Параметр --service (или service) недоступен по умолчанию и применяется только для установленной системной службы.

Другие параметры работы агента показаны в справке:

C:\cplsupport.exe -h
Bird Agent - MQTT server monitor
Usage: cplsupport.exe [OPTIONS]

Options:
-c, --config <CONFIG> Path to config.toml config file
--install Install as a system service
--uninstall Uninstall the system service
--seal Encrypt sensitive config fields in-place using a machine-bound key
-h, --help Print help
-V, --version Print version

Справка для MQTT-варианта

Справка для Matrix-варианта имеет следующий вид:

C:\wtass.exe -h
Matrix monitoring agent

Usage: wtass.exe [OPTIONS] [COMMAND]

Commands:
  install    Register this agent with the Matrix homeserver and panel
  uninstall  Remove this agent's service and credentials
  service    Run as a Windows service (internal)
  help       Print this message or the help of the given subcommand(s)

Options:
  -c, --config <CONFIG>
  -h, --help             Print help
  -V, --version          Print version

Справка для Matrix-варианта

По умолчанию агент ищет конфигурационный файл config.toml в каталоге запуска, затем в папке %PROGRAMDATA%\SynapseAgent\config.toml (Matrix-версия) или %PROGRAMDATA%\cplsupport\config.toml (MQTT-версия). Пользователь может указать полный путь к конфигурации через параметр -c (--config).

Агент обрабатывает как открытый конфигурационный файл, так и файл с частично зашифрованными данными. При первом запуске файл частично шифруется функцией seal() (опция --seal в MQTT-версии) с использованием алгоритма ChaCha20-Poly1305 и ключа из параметра реестра HKLM\Software\Microsoft\Cryptography\MachineGuid. Это привязывает конфигурацию к конкретному компьютеру. При последующих запусках расшифровка производится автоматически. Если конфигурация уже содержит зашифрованные части, они также расшифровываются автоматически.

Если расшифровка конфигурации невозможна, работа агента останавливается.

Зашифрованный конфигурационный файл MQTT-варианта включает следующие параметры:

  • agent_privkey — приватный криптографический ключ агента;
  • channel_id — уникальный идентификатор канала для связи с брокером;
  • server_pubkey — открытый криптографический ключ сервера.

В Matrix-варианте конфигурационный файл удаляется при первом запуске, а требуемые параметры сохраняются в реестре под ключом HKLM\Software\synapse\Config\SealedConfig. При последующих запусках поиск конфигурации начинается с реестра.

Конфигурация Matrix-варианта содержит адрес сервера Element, контролируемого злоумышленниками, идентификатор чата и токен доступа. Если токен доступа пуст, пароль запрашивается интерактивно при установке. Полученный токен сохраняется после успешной аутентификации.

Способ взаимодействия

При начальной работе оба варианта отправляют GET-запрос на адрес http://ip-api.com/json для определения публичного IP и его территориальной принадлежности.

Первый вариант использует открытый MQTT-брокер HiveMQ — broker.hivemq.com. Его бесплатный тариф поддерживает до 100 одновременных подключений и 10 ГБ трафика ежемесячно. Преступники создали собственный кластер для получения информации с зараженных компьютеров и передачи команд агенту.

Процесс взаимодействия в MQTT-варианте:

  • После подключения отправляется статус системы через POST-запрос на broker.hivemq.com:8883/[cluster_id]/status в формате: {'online':bool,'hostname':'hostname.domain','timestamp':unix_timestamp,'location':{json}}.
  • С регулярностью, указанной в конфигурации, передаются данные о производительности системы на broker.hivemq.com:8883/[cluster_id]/metrics3 в формате: {'cpu_percent':float,'mem_used_bytes':int,'mem_total_bytes':int,'disk_used_bytes':int,'disk_total_bytes':int,'load_1m':float,'load_5m':float,'load_15m':float,'uptime_secs':int,'hostname':'hostname.domain','timestamp':unix_timestamp}.
  • Агент периодически отправляет GET-запросы на broker.hivemq.com:8883/[cluster_id]/cmd/req для получения команд. Формат ответа сервера: {'cmd_id':int,'command':'str','timeout_secs':int}.
  • Полученные команды выполняются через PowerShell.exe в скрытом режиме с параметрами -NonInteractive -NoProfile -Command.
  • Результаты отправляются на broker.hivemq.com:8883/[cluster_id]/cmd/res в формате: {'stdout':'str','stderr':'str','exit_code':int,'duration_ms':int}.

Во втором варианте управление осуществляется через личный сервер Element (meet.element[.]tw), работающий по протоколу Matrix. На сервере создана приватная комната для получения информации с компьютеров и отправки команд.

Процесс взаимодействия в Matrix-варианте:

  • После подключения агент отправляет сообщение вида m.bird.status со статусом системы в том же формате, что и в MQTT-варианте.
  • С регулярностью из конфигурации передаются данные о системе с типом сообщения m.bird.metrics. Названия полей немного изменены: {'cpu_percent_x100':float,'mem_used_bytes':int,'mem_total_bytes':int,'disk_used_bytes':int,'disk_total_bytes':int,'load_1m_x100':float,'load_5m_x100':float,'load_15m_x100':float,'uptime_secs':int,'hostname':'hostname.domain','timestamp':unix_timestamp}.
  • Поддерживаются два типа входящих сообщений:
    • Изменение интервала отправки метрик через сообщение, начинающееся с config:set_interval (от 5 до 3600 секунд). Значение сохраняется в реестре под HKLM\Software\SynapseAgent\metrics_interval.
    • Команды для выполнения передаются в сообщениях, начинающихся с cmd:. Анализ базы данных Matrix показал, что команды отправлялись с аккаунта panel-bot.
  • Команды выполняются через командный интерпретатор Windows.
  • Результаты передаются в сообщении типа m.bird.cmd_response в том же формате, что в MQTT-варианте.

Выводы

Команда исследователей давно наблюдает за деятельностью Toy Ghouls. Ранее было установлено, что группа расширила инструменты собственным вирусом-шифровальщиком GenieLocker, а теперь обнаружилось создание собственного удаленного агента для полного управления зараженными компьютерами. Новые инструменты используют нестандартные методы взаимодействия с центром управления: открытый MQTT-брокер и Matrix-мессенджер. Переход от использования открытого кода к собственным разработкам указывает на намерение преступников повысить сложность атак и снизить вероятность обнаружения.

Признаки компрометации

Классификация защитных систем компании:

  • HEUR:Backdoor.Win64.Suptoml.gen
  • HEUR:Trojan.Script.Zapchast.conf
  • Backdoor.Win64.Agent.smgdvy
  • Trojan.Script.Zapchast.abwm
  • Trojan.Win64.Agent.smgsfo
  • Trojan.Script.Zapchast.abwo

Исполняемые файлы и их хеши:

  • cplsupport.exe (BFADBEEE63A4F0BF19EC9DEB8FA58F58)
  • wtass.exe (7916C33688385525078BEE504C90F359)
  • config.toml

Ключи системного реестра:

  • HKLM\Software\synapse\Config\SealedConfig
  • HKLM\Software\SynapseAgent\metrics_interval

Наименования служб Windows:

  • cplsupport (Problem Reports Control Panel)
  • wtas (Windows Telemetry Aggregator Service)

Используемые адреса:

  • meet.element[.]tw
  • broker.hivemq.com (легитимный ресурс, используемый злоумышленниками)
  • ip-api.com (легитимный ресурс, используемый злоумышленниками)