Посты о SOC, TI и IR

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

Введение

Мы продолжаем рассказывать об активности финансово мотивированной группировки 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.

Другие опции запуска представлены в справке бэкдора:

Справка HiveMQ-версии бэкдора

В Element-версии бэкдора справка выглядит следующим образом:

Справка 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-версии бэкдора

Зашифрованный конфигурационный файл HiveMQ-версии бэкдора

В зашифрованной части конфигурации HiveMQ-версии бэкдора содержатся следующие параметры:

  • agent_privkey — приватный ключ агента;
  • channel_id — идентификатор канала для связи с брокером;
  • server_pubkey — публичный ключ сервера.
Расшифрованное поле blob в конфигурации HiveMQ-версии бэкдора

Расшифрованное поле blob в конфигурации HiveMQ-версии бэкдора

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

Расшифрованный конфигурационный файл Element-версии бэкдора из реестра

Расшифрованный конфигурационный файл Element-версии бэкдора из реестра

В конфигурации этой версии бэкдора указаны адрес сервера 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:

Ключи реестра:

  • 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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Отчеты

Благотворительность как приманка: Armored Likho расширяет арсенал инструментов для кибершпионажа

Эксперты «Лаборатории Касперского» разбирают новую кампанию Armored Likho, маскирующуюся под благотворительность и доставляющую новый Still Toolkit, нацеленный на кражу данных из Telegram и прослушку.

ToddyCat — ваш скрытый почтовый ассистент. Часть 2

Разбираем Umbrij — новый инструмент APT-группы ToddyCat для компрометации корпоративной переписки в сервисе Gmail. Целью атак стал токен авторизации OAuth, при помощи которого злоумышленники получали доступ к сервисам Google.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике