Введение
Финансово мотивированная киберпреступная группа 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 (легитимный ресурс, используемый злоумышленниками)
