Отчеты о целевых атаках (APT)

Awaken Likho окончательно меняет почерк: переход на собственные бэкдоры TokenBuoy и TokenBuoySH

Введение

APT-группа Awaken Likho, известная также как Core Werewolf, с 2021 года атакует российские и белорусские государственные организации. В большинстве ранее описанных кампаний злоумышленники использовали легитимное программное обеспечение: например, программы удаленного администрирования на начальных этапах заражения (UltraVNC и MeshCentral) или Rclone для эксфильтрации данных.

В 2026 году группа перешла к активной разработке собственного ПО. В июле мы опубликовали исследование о мини-бэкдоре группы на AutoIt, а в этом материале расскажем о выявлении двух новых полноценных бэкдоров (TokenBuoy и TokenBuoySH), используемых злоумышленниками в текущей кампании, которую мы наблюдаем с начала года. В нашем исследовании также была реконструирована вся цепочка заражения — от фишингового письма до эксфильтрации данных.

 

Технические детали

Начальный вектор заражения

Как и в предыдущих кампаниях, заражение начинается с фишингового письма, содержащего вредоносный RAR-архив. Внутри архива находится самораспаковывающийся архив 7-Zip, замаскированный под легитимный PDF-документ с помощью иконки. Этот архив содержит исполняемый файл и PDF-документ со случайными именами и расширениями (например, lD6q.bso3). При распаковке команды конфигурации 7-Zip-архива копируют эти файлы в пользовательские папки и переименовывают их, после чего автоматически запускают. Для затруднения анализа конфигурационные команды перемежаются комментариями из случайного набора символов.

Пример содержимого самораспаковывающегося архива

Пример содержимого самораспаковывающегося архива

 

Пример конфигурации самораспаковывающегося архива с мусорными комментариями

Пример конфигурации самораспаковывающегося архива с мусорными комментариями

Далее — очищенная от комментариев конфигурация этого архива:

Судя по командам конфигурации, один из файлов lD6q.bso3 сохраняется под именем UDkO.pdf и в дальнейшем автоматически открывается системной программой по умолчанию. Это классический документ-приманка для отвлечения внимания пользователя. Второй файл (SylUj.nDd) сохраняется как Vpngard.exe и представляет собой бэкдор, который мы назвали TokenBuoy.

TokenBuoy

TokenBuoy написан на C++. Несмотря на значительный размер (около 1 Мбайт), бэкдор реализует лишь базовый набор функций. При запуске он собирает информацию о системе: список процессов, имя хоста, сетевую конфигурацию, путь к рабочему столу и перечень файлов на нем. Затем бэкдор отправляет эти данные на C2-сервер в POST-запросе на эндпоинт /deviceInfo. Передаваемая информация упаковывается в JSON-объект, который затем кодируется в Base58.

После передачи системной информации бэкдор отправляет GET-запрос на C2-сервер на эндпоинт /actions. В ответ он получает список команд в виде JSON-сообщения, закодированного в Base58. Каждая команда выполняется в новом отдельном потоке, а результат отправляется на C2-сервер POST-запросом на эндпоинт /actionresult.

Каждая команда начинается с восклицательного знака (!). Аргументы команд разделяются пробелами. Список поддерживаемых команд приведен ниже.

Команда Описание
!dir Выводит список каталогов и файлов по указанному пути
!tasklist Получает список запущенных в системе процессов
!ipconfig Собирает информацию о конфигурации сетевых адаптеров в системе
!arp Выводит содержимое таблицы ARP
!netstat Извлекает список активных TCP-соединений с подробной информацией
!terminate Изменяет расширение собственного исполняемого файла и завершает его работу. Затем создает и запускает на диске batch-файл, который удаляет бэкдор и сам себя
!download Загружает файл по указанному URL-адресу и сохраняет его по заданному пути на диске
!payload Загружает и автоматически запускает файл вредоносной нагрузки. Поведение зависит от количества переданных аргументов:
— два аргумента (URL и путь): скачивает файл по указанному URL и сохраняет его по заданному пути- один аргумент (только путь): скачивает файл с жестко заданного URL (https://<C2>/payload), сохраняет его по указанному пути и немедленно запускает

Далее — пример содержимого batch-файла, который запускается командой !terminate из списка выше. Batch-файл засыпает на 3 секунды, чтобы процесс работы бэкдора успел завершиться, потом удаляет основной исполняемый файл бэкдора, опять засыпает на 3 секунды, но используя команду ping в качестве задержки, и в конце удаляет сам себя.

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

TokenBuoySH

Бэкдор TokenBuoySH — это следующий шаг в схеме заражения. Он загружается предыдущим бэкдором с помощью команды !payload. TokenBuoySH также написан на C++ и частично использует тот же код, что и TokenBuoy, но имеет почти в десять раз больший размер из-за добавления в код библиотеки OpenSSH и ее зависимостей.

В ходе исследования было обнаружено, что бэкдор впервые появился в июле 2025 года, но тогда он устанавливался с помощью UltraVNC, а не собственного ПО TokenBuoy.

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

Пример ключа реестра:

Конфигурация ключа реестра:

Если ключ реестра отсутствует, как это должно быть при первом заражении, бэкдор использует базовую конфигурацию, считывая ее из ресурсов исполняемого файла. Однако перед этим выполняется небольшая проверка. Из ресурсов исполняемого файла извлекается JSON, содержащий строку с именем хоста. Имя хоста из JSON сравнивается с именем хоста системы, на которой работает бэкдор. Если значения не совпадают, бэкдор прекращает свою работу. Напомним, что TokenBuoy передает JSON с информацией о системе на C2-сервер вместе с полем host_name. На основе этих данных генерируется проверка в ресурсах TokenBuoySH. Это означает, что для каждого уникального заражения генерируется уникальный образец TokenBuoySH.

Если проверка имени хоста пройдена успешно, конфигурация из ресурсов исполняемого файла сохраняется в указанном выше ключе реестра и бэкдор отправляет серию POST-запросов на C2-сервер. Первый запрос отправляется на эндпоинт /localinfo и содержит системную информацию. Ее пример ниже:

Следующий POST-запрос с телеметрией отправляется на эндпоинт /telemetry. Запрос содержит информацию о следующих параметрах:

  • время с момента последнего ввода (input_time);
  • расстояние, на которое переместился курсор мыши по экрану (mouse_stat);
  • время с момента запуска бэкдора (suspended_time).

После отправки информации о системе и телеметрии конфигурация бэкдора обновляется с помощью отправки GET-запроса на эндпоинт /config. Приведенная выше конфигурация, полученная из ключа реестра, содержит настройки для трех компонентов: HTTP-бэкдора, ReverseSSHBackdoor и ReverseSSHProxy. Эти настройки в дальнейшем сохраняются в описанном выше ключе реестра.

Помимо основной конфигурации, JSON может содержать поля, интерпретируемые как команды для компонента HTTP-бэкдора. Ниже приведен список поддерживаемых команд.

Команда Описание
commands_to_exec Список команд, которые должны быть выполнены с помощью API CreateProcess с перенаправлением канала. Вывод команд будет отправлен обратно на C2-сервер через POST-запрос на эндпоинт /commandlog
permanent_commands_to_exec Список команд, которые следует периодически выполнять с помощью API CreateProcess с перенаправлением каналов. Этот список будет сохранен в ключе реестра вместе с основной конфигурацией бэкдора
download_list Список идентификаторов файлов, которые должны быть загружены с C2-сервер с помощью запроса GET /getfile?id=<ID>
self_destruct Изменяет расширение собственного файла, завершает его выполнение, а также создает и запускает на диске пакетный файл, который удаляет бэкдор и сам пакетный файл. Пакетный файл идентичен тому, который использовался в TokenBuoy
restart Перезапуск
upload_list / upload_exclude Список правил включения/исключения для поиска файлов. Все найденные файлы будут сохранены в ZIP-архив и отправлены обратно на C2-сервер с помощью POST-запроса /putfile

Если в конфигурации присутствует ключ proxySettings, будет запущен обработчик компонента ReverseSSHProxy. А при наличии в конфигурации ключа sshSettings — обработчик компонента ReverseSSHBackdoor. В обоих случаях значение enable должно быть установлено на true.

ReverseSSHBackdoor — это еще один способ связи с C2-сервером и получения команд. В данном случае взаимодействие происходит с использованием SSH. Как и в случае с TokenBuoy, некоторые специальные команды начинаются с символа «!». Если символ отсутствует, результирующая команда выполняется через cmd.exe /c. Далее приведен список поддерживаемых команд.

Команда Описание
!async Запуск указанного приложения с перенаправлением ввода-вывода в канал. Процедура запуска выполняется асинхронно в новом потоке
!download Загрузка данных с C2-сервера в указанное место, используя SSH-канал
!upload Отправка указанного файла с зараженной системы на C2-сервер с помощью SSH-канала
!restart Перезапуск
!terminate Изменение расширения собственного файла, завершение его выполнения, а также создание и запуск на диске пакетного файла, который удаляет бэкдор и сам пакетный файл. Пакетный файл идентичен тому, который использовался в TokenBuoy
!stop_proxy Остановка работы компонента ReverseSSHProxy

Стоит отметить, что бэкдор TokenBuoySH, как и TokenBuoy, не сохраняется в системе автоматически.

Rclone

Одна из ключевых целей Awaken Likho — извлечение документов из зараженных систем. Для этого злоумышленники используют утилиту Rclone, которую они загружают и устанавливают с помощью TokenBuoySH.

Чтобы запустить Rclone с необходимыми параметрами и аргументами, злоумышленники используют следующий VBS-скрипт:

Заключение

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

Мы продолжаем отслеживать активность группы. Базы данных Kaspersky Threat Intelligence Portal (TIP) регулярно пополняются актуальными индикаторами компрометации (IoC), связанными с Awaken Likho.

Индикаторы компрометации

TokenBuoy

06CDE0A91A4CA4C3F30727B2BCE24C5B
1A089B21DC3263D26A04829A5FB26771
1FCF428D35B631A966B75611829AF009
237E091E73C1567CA4A6D38341F64B26
2D1C5D54C9243BF2A0519B8568DF7A8B
3AD49C63B99B567D5333AD4DD5109F98
3F49EFB288D57D8B7BFE08DD206CF217
45D0B9556AF198B50545492B7B0099F4
492A3304C098383F592CAFD254E080C4
5FF0887E111CA85107184BF3866FEE94
86C7AAB6BB2893B000EF5DBC3399184D
8B200E002255FB627366E956196B793C
9CA5504830350A1B163985BDB98F93A1
AE55A5396C99054346DE51D000870E77
C86F2B69D9AE086C5BB5BED01FB3953E
DA27845F5240CB4154E2462DA6EAF53E
EC234B4274385B068AECFBEFF1AD2F1C
FEEE200B00ACDE27F976B032A6C91353

TokenBuoySH

48BBA0752732416B2261FEAE123EB811
5EA25A7D07B27BE91B3A81895BB10BA2
66C5195EDEEFD09905270AC65646164F
8D341C53FFE243739D81B82F5F0572A0
8E2A7C4B53DE6D8C117D982427F62324
F578598D10661D72BE05CF0FED3514BC
21EA1CCEA3919DF1CB535E97BD8979BA
2B6C5E756B6AE7F369DB5190EAD1E2B6
F32CC9623AB73464734465ED8894B765
DEF46199D8E8CD8E49C9280DFFF0B86C

Domains and IPs

TokenBuoy/TokenBuoySH C2

smartcustomerstracker[.]com
thangnhompoongsan[.]com
alictro-store[.]com
valontasboutique[.]info
kalgraphic[.]com
educativalibre[.]net
gokicau[.]com
frockbros[.]net
elitesoul[.]net
sgpsib[.]ru
ntsciz[.]ru
indeksmail[.]ru
markdavidson[.]biz
185.173.37[.]27
185.255.135[.]176
185.102.139[.]30
138.124.76[.]77
95.142.39[.]7
91.212.150[.]141
89.110.98[.]122
82.118.16[.]202
62.113.112[.]160
94.103.88[.]131

Awaken Likho окончательно меняет почерк: переход на собственные бэкдоры TokenBuoy и TokenBuoySH

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

Отчеты

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

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

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

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