Введение
Мы продолжаем рассказывать об активности финансово мотивированной группировки Toy Ghouls (также известной как Bearlyfy, Laboo.boo и Feral Wolf), атакующей российские организации с 2025 года. Поначалу злоумышленники использовали лишь инструменты из открытых репозиториев GitHub и утекшие билдеры шифровальщиков Babuk и LockBit, а позднее стали применять собственный шифровальщик GenieLocker. В начале июля 2026 года мы впервые зафиксировали использование группой собственного бэкдора.
Мы обнаружили две версии бэкдора: одна в качестве C2-сервера использует MQTT-брокер HiveMQ, вторая — мессенджер Element. Обе версии содержат bird в названии:
- mqtt-bird-agent 0.1.0 (HiveMQ-версия)
- matrix-bird-agent 0.1.0 (Element-версия)
В этой статье мы разберем, как этот бэкдор доставляется в целевые системы, закрепляется в них и взаимодействует с командным сервером.
Технические детали
Доставка
В новой кампании атакующие доставляют бэкдоры и их конфигурационные файлы в скомпрометированные системы, используя протокол удаленного управления Windows (Windows Remote Management, WinRM). Группа использует такие инструменты с открытым исходным кодом, как Evil-WinRM и WinRM-fs.
Установка
Обнаруженный нами бэкдор может как работать в рамках интерактивной сессии командной строки, так и закрепляться в системе как служба Windows с помощью опции --install или install (в зависимости от версии бэкдора). Опция --service (или service) по умолчанию недоступна и используется как аргумент установленной службы Windows.
Другие опции запуска представлены в справке бэкдора:
|
1 2 3 4 5 6 7 8 9 10 11 |
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 |
Справка HiveMQ-версии бэкдора
В Element-версии бэкдора справка выглядит следующим образом:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 |
Справка Element-версии бэкдора
По умолчанию бэкдор ищет конфигурационный файл config.toml в директории запуска исполняемого файла, а далее по пути %PROGRAMDATA%\SynapseAgent\config.toml (Element-версия) или %PROGRAMDATA%\cplsupport\config.toml (HiveMQ-версия). Если в указанных директориях конфигурация не найдена, полный путь к ней можно указать при помощи опции -c (--config).
Бэкдор принимает на вход как незашифрованный файл конфигурации, так и файл с частично зашифрованными участками. В первом случае после запуска бэкдора файл считывается и частично шифруется функцией seal() (опция --seal HiveMQ-версии) с помощью алгоритма ChaCha20-Poly1305 и ключа на основе значения ключа реестра HKLM\Software\Microsoft\Cryptography\MachineGuid. Таким образом в результате первого запуска бэкдора злоумышленниками конфигурационный файл оказывается привязанным к конкретной машине. При последующих запусках расшифровка конфигурации производится автоматически. Если передаваемая на вход конфигурация была изначально частично зашифрована, она также расшифровывается автоматически.
В случае если расшифровать конфигурацию невозможно, выполнение бэкдора прекращается.
Зашифрованные конфигурационные файлы выглядят следующим образом:
В зашифрованной части конфигурации HiveMQ-версии бэкдора содержатся следующие параметры:
agent_privkey— приватный ключ агента;channel_id— идентификатор канала для связи с брокером;server_pubkey— публичный ключ сервера.
В Element-версии бэкдора конфигурационный файл удаляется сразу после первого запуска, а нужные параметры записываются в ключ реестра HKLM\Software\synapse\Config\SealedConfig. При повторном запуске бэкдора поиск конфигурационного файла будет осуществляться в первую очередь в реестре.
В конфигурации этой версии бэкдора указаны адрес сервера Element, подконтрольного злоумышленникам, идентификатор комнаты (room) и токен для доступа к ней. Если значение параметра access_token пусто, пароль будет запрошен в интерактивном режиме при установке бэкдора. Полученный после успешного создания сессии токен сохраняется в поле blob.
Коммуникация
В начале работы обе версии бэкдора отправляют GET-запрос на URL http://ip-api.com/json, чтобы определить публичный IP-адрес системы и его принадлежность к стране.
В первой версии в качестве сервера управления используется публичный MQTT-брокер HiveMQ — broker.hivemq.com. Бесплатная версия этого брокера поддерживает до 100 одновременных соединений и до 10 ГБ трафика в месяц. Атакующие создали свой кластер и использовали его для получения телеметрии со скомпрометированной системы, а также для отправки команд бэкдору.
- После установки соединения статус системы отправляется с помощью POST-запроса на broker.hivemq.com:8883/[cluster_id]/status. Формат сообщения: {"online":bool,"hostname":"hostname.domain","timestamp":unix_timestamp,"location":{"json"}}.
- С указанным в конфигурационном файле интервалом с помощью POST-запроса отправляются сведения о системе, например загрузка ЦП, размер доступной памяти и другие, на 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, работающего по протоколу Matrix: meet.element[.]tw. На этом сервере они создали комнату, которую использовали для получения сообщений со сведениями об устройстве и отправки команд для выполнения в скомпрометированной системе. Алгоритм коммуникации следующий:
- После успешной установки соединения бэкдор отправляет сообщение типа
m.bird.statusсо статусом системы. Формат сообщения полностью совпадает с форматом в HiveMQ-версии. - С указанным в конфигурационном файле интервалом отправляются сведения о скомпрометированной системе. Тип отправляемого сообщения:
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:. С помощью баз данных мессенджера Element в формате SQLite со скомпрометированной системы нам удалось установить имя аккаунта атакующих, с которого отправлялись команды: panel-bot.
- Установка нового интервала отправки метрик происходит с помощью отправки сообщения, начинающегося с
- Полученные команды выполняются с помощью командной строки Windows.
- Результаты выполнения команды отправляются в сообщении с типом
m.bird.cmd_response. Формат сообщения повторяет формат, использовавшийся в HiveMQ-версии.
Заключение
Мы давно отслеживаем деятельность группировки Toy Ghouls. Ранее мы обнаружили, что злоумышленники пополнили свой арсенал собственным шифровальщиком GenieLocker, а теперь стало известно, что они создали бэкдор для полного контроля над зараженным устройством. Новые инструменты используют нестандартные способы для коммуникации с командным сервером: MQTT-брокер HiveMQ и Matrix-мессенджер Element. Переход от общедоступных проектов с открытым исходным кодом на собственные разработки говорит о том, что группа Toy Ghouls стремится усложнять свои атаки и дольше оставаться незамеченной.
Индикаторы компрометации
Вердикты защитных решений «Лаборатории Касперского»:
- 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
Имена файлов и MD5:
- cplsupport.exe (BFADBEEE63A4F0BF19EC9DEB8FA58F58)
- wtass.exe (7916C33688385525078BEE504C90F359)
- config.toml
Ключи реестра:
- HKLM\Software\synapse\Config\SealedConfig
- HKLM\Software\SynapseAgent\metrics_interval
Названия служб:
- cplsupport (Problem Reports Control Panel)
- wtas (Windows Telemetry Aggregator Service)
Доменные имена:
- meet.element[.]tw
- broker.hivemq.com (является легитимным ресурсом, используемым злоумышленниками)
- ip-api.com (является легитимным ресурсом, используемым злоумышленниками)






У меня тоже есть птички: новые инструменты группировки Toy Ghouls