Исследователи ESET обнаружили ранее не задокументированную APT-группу, связанную с Китаем, которую мы назвали GopherWhisper. Группа использует широкий спектр инструментов, в основном написанных на языке Go, а также инжекторы и загрузчики для развертывания и запуска различных бэкдоров из своего арсенала. В ходе наблюдаемой кампании злоумышленники нацелились на правительственную организацию в Монголии.
GopherWhisper злоупотребляет легитимными сервисами, в частности Discord, Slack, Microsoft 365 Outlook и file.io, для связи с командно-контрольным сервером (C&C) и вывода данных. Важно отметить, что после того, как мы идентифицировали несколько токенов API Slack и Discord, нам удалось извлечь большое количество сообщений C&C из этих сервисов, что дало нам глубокое понимание деятельности группы.
В этом блоге обобщены результаты нашего исследования набора инструментов GopherWhisper и трафика C&C, которые можно найти в нашей технической документации по этой теме.
Ключевые моменты публикации в блоге:
- Исследователи ESET обнаружили новую APT-группу, связанную с Китаем, которую мы назвали GopherWhisper и которая атаковала правительственную организацию в Монголии.
- В набор инструментов группы входят настраиваемые бэкдоры на языке Go — LaxGopher, RatGopher и BoxOfFriends, инжектор JabGopher, инструмент для вывода данных CompactGopher, загрузчик FriendDelivery и бэкдор на C++ SSLORDoor.
- GopherWhisper использует Discord, Slack, Microsoft 365 Outlook и file.io для связи с командно-контрольным сервером и выноса данных.
- Мы проанализировали C&C-трафик из каналов Slack и Discord злоумышленников, получив информацию о внутренних операциях группы и ее действиях после взлома.
Множество бэкдоров
Мы обнаружили эту группу в январе 2025 года, когда нашли ранее не задокументированный бэкдор, который мы назвали LaxGopher, в системе одного из государственных учреждений в Монголии. Проведя более тщательное расследование, нам удалось обнаружить еще несколько вредоносных инструментов, в основном различные бэкдоры, все развернутые той же группой. Большинство этих инструментов, включая LaxGopher, написаны на языке Go.
Поскольку набор обнаруженного нами вредоносного ПО не имеет сходств в коде, связывающих его с каким-либо известным злоумышленником, и не было совпадений в тактиках, техниках и процедурах (TTP) с какой-либо другой группой, мы решили отнести эти инструменты к новой группе. Мы решили назвать ее GopherWhisper, поскольку большинство инструментов группы написано на языке программирования Go, талисманом которого является сурок (gopher), а также на основании имени файла whisper.dll — вредоносного компонента, который загружается сбоку.
Внедренное нами вредоносное ПО состоит из следующих компонентов:
- JabGopher: инжектор, который запускает бэкдор LaxGopher, замаскированный под файл whisper.dll. Он создает новый экземпляр svchost.exe и внедряет LaxGopher в память процесса svchost.exe.
- LaxGopher: бэкдор на языке Go, взаимодействующий с частным сервером Slack для получения C&C-сообщений. Он выполняет команды через cmd.exe и публикует результаты обратно в канал Slack, настроенный в коде. LaxGopher также может загружать дополнительное вредоносное ПО на скомпрометированную машину.
- CompactGopher: инструмент для сбора файлов на языке Go, используемый операторами для быстрого сжатия файлов из командной строки и автоматической передачи их на файлообменник file.io. Это один из полезных грузов, развертываемых LaxGopher.
- RatGopher: бэкдор на языке Go, взаимодействующий с частным сервером Discord для получения C&C-сообщений. При успешном выполнении команды результаты публикуются обратно в настроенный канал Discord.
- SSLORDoor: бэкдор, написанный на C++, использующий OpenSSL BIO для связи через необработанные сокеты на порту 443. Он может перечислять диски и запускать команды на основе входных данных C&C, в основном связанные с открытием, чтением, записью, удалением и загрузкой файлов.
Опираясь на знания, полученные в ходе анализа, нам удалось обнаружить еще два инструмента GopherWhisper, которые вновь были задействованы против того же монгольского государственного учреждения:
- FriendDelivery: вредоносный файл DLL, выступающий в качестве загрузчика и инжектора, который запускает бэкдор BoxOfFriends.
- BoxOfFriends: бэкдор на языке Go, использующий REST API почты Microsoft 365 Outlook из Microsoft Graph для создания и изменения черновиков электронных писем для связи с C&C-сервером.
Схематический обзор арсенала GopherWhisper представлен на рисунке 1.
Раскрытие сообщений
Как упоминалось во введении, GopherWhisper характеризуется широким использованием легитимных сервисов, таких как Slack, Discord и Outlook, для связи с командно-контрольным сервером. В ходе нашего расследования нам удалось извлечь тысячи сообщений Slack и Discord, а также несколько черновиков электронных писем из Microsoft Outlook. Это дало нам глубокое понимание внутренней работы группы.
Анализ временных меток сообщений Slack и Discord показал, что большая их часть отправлялась в рабочее время, т. е. с 8:00 до 17:00 по UTC+8 (см. рис. 2 и рис. 3), что соответствует стандартному времени Китая. Кроме того, локаль для настроенного пользователя в метаданных Slack также была установлена на этот часовой пояс. Поэтому мы полагаем, что GopherWhisper — это группа, связанная с Китаем.
По результатам нашего расследования, серверы группы в Slack и Discord сначала использовались для тестирования функциональности бэкдоров, а затем, без очистки журналов, также использовались в качестве командных серверов для бэкдоров LaxGopher и RatGopher на нескольких скомпрометированных машинах.
Канал LaxGopher в Slack
Сообщения, которые мы собрали, показали, что C&C-связь LaxGopher в основном использовалась для отправки команд по перечислению дисков и файлов.
Кроме того, среди сообщений в Slack было обнаружено несколько интересных ссылок на репозитории GitHub с вредоносным кодом, как показано в таблице 1. Исходя из исходного кода каждого репозитория, мы предполагаем, что эти репозитории могли использоваться в качестве учебного материала и справочника во время разработки.
Таблица 1. Репозитории GitHub, обнаруженные в тестовых загрузках от операторов
| Репозиторий | Описание |
| https://github.com/kardianos/service | Установка, запуск и связанные действия по обслуживанию демонов для всех операционных систем с помощью Go. |
| https://github.com/NHAS/stab | Внедрение локальных и удаленных процессов Go для x86 и x64. |
| https://github.com/kirinlabs/utils | Утилиты шифрования и сжатия Go, среди прочего. |
| https://github.com/wumansgy/goEncrypt | Различные методы шифрования, реализованные на Go. |
Канал RatGopher в Discord
Помимо C&C-связи, канал RatGopher в Discord также содержал исходный код на Go, который, возможно, был ранней версией бэкдора.
Кроме того, нам удалось получить подробную информацию о компьютерах операторов, поскольку они часто использовали их для запуска процессов перебора в тестовых целях. Это показало нам, среди прочего, что один из операторов использовал виртуальную машину на базе VMware и что эта машина была загружена и установлена в момент, который очень хорошо совпадает с часовым поясом UTC+8.
Обмен сообщениями в Microsoft 365 Outlook
Помимо переписки в Slack и Discord, нам также удалось извлечь электронные письма, использовавшиеся для связи между бэкдором BoxOfFriends и его C&C-сервером через Microsoft Graph API. Там мы заметили, что приветственное письмо от Microsoft, отправленное при создании учетной записи, так и не было удалено. Это сообщение подтвердило, что учетная запись barrantaya.1010@outlook[.]com была создана11 июля 2024 года, всего за 11 дней до создания DLL-файла FriendDelivery — загрузчика, используемого для запуска BoxOfFriends —22 июля 2024 года.
Заключение
Наше расследование GopherWhisper выявило APT-группу, использующую разнообразный набор инструментов, включающий пользовательские загрузчики, инжекторы и бэкдоры. Анализируя C&C-сообщения, полученные из каналов Slack и Discord, управляемых злоумышленниками, а также черновики писем Outlook, мы смогли получить дополнительную информацию о внутренней работе группы и ее действиях после взлома.
Подробный анализ набора инструментов и полученного C&C-трафика см. в нашем полном техническом документе.
Полный список индикаторов компрометации (IoC) можно найти в техническом документе и в нашем репозитории GitHub.
