Описание вредоносного ПО

HZ Rat: macOS-бэкдор, атакующий китайских пользователей DingTalk и WeChat

В июне 2024 года мы обнаружили macOS-версию бэкдора HZ Rat, нацеленного на пользователей корпоративного мессенджера DingTalk и социальной сети с функциями мессенджера WeChat. Полученные нами образцы практически в точности повторяют функциональность версии бэкдора для Windows и отличаются только полезной нагрузкой, получаемой в виде shell-скриптов с сервера злоумышленников. В рамках проведенного исследования мы заметили, что некоторые версии бэкдора подключаются к C2 при помощи локальных IP-адресов, что натолкнуло нас на мысль о возможном целевом характере этой угрозы. Это также может свидетельствовать о намерениях злоумышленников использовать бэкдор для дальнейшего продвижения по сети жертвы.

HZ Rat впервые был обнаружен исследователями из DCSO в ноябре 2022 года. Тогда зловред был нацелен на системы под управлением Windows и получал команды в виде PowerShell-скриптов.

Технические подробности

Хотя изначальная точка распространения зловреда нам неизвестна, мы смогли найти установочный пакет для одного из образцов бэкдора. Это файл с именем OpenVPNConnect.pkg:

OpenVPNConnect.pkg на VirusTotal

OpenVPNConnect.pkg на VirusTotal

Он был загружен на VirusTotal в июле 2023 года и на момент исследования не детектировался ни одним вендором, как и другие образцы бэкдора. Установщик представляет собой обертку легитимного приложения OpenVPN Connect, при этом в директории пакета MacOS помимо оригинального клиента содержатся два файла: exe и init.

Структура вредоносного установочного пакета

Структура вредоносного установочного пакета

Система определяет, какой файл запустить при открытии приложения, при помощи файла конфигурации Info.plist. Так, в первую очередь будет запущен файл exe — shell-скрипт, который сначала запускает файл init, а затем приложение OpenVPN:

Содержимое файла exe

Содержимое файла exe

Файл init — это сам бэкдор. В момент запуска он устанавливает соединение с C2 в соответствии со списком из указанных в бэкдоре IP-адресов. В большинстве случаев для подключения использовался порт 8081. Мы также обнаружили образцы бэкдора, подключающиеся к C2 при помощи приватных IP-адресов.

IP-адреса C2 в коде бэкдора

IP-адреса C2 в коде бэкдора

Для общения с C2 используется XOR-шифрование с ключом 0x42. Перед началом сессии бэкдор отправляет случайное четырехбайтовое значение, обозначенное в коде как cookie. Каждое сообщение имеет следующую структуру:

  1. Код сообщения (1 байт);
  2. Длина сообщения (4 байта);
  3. Текст сообщения, где первые 4 байта содержат размер данных.

Исполняемый файл написан на C++, и в нем сохранилась отладочная информация, благодаря чему его легко идентифицировать:

Класс trojan с вредоносной нагрузкой

Класс trojan с вредоносной нагрузкой

Бэкдор поддерживает всего четыре основные команды:

Код Имя функции Описание
3, 8, 9 execute_cmdline Выполнить shell-команду
4 write_file Записать файл на диск
5 download_file Отправить файл на сервер
11 ping Проверить доступность жертвы

В рамках исследования мы смогли получить с управляющего сервера shell-команды, направленные на сбор следующих данных о жертве:

  • Статус защитной функции System Integrity Protection (SIP);
  • Информация о системе и устройстве, в том числе:
    • Локальный IP-адрес;
    • Информация о Bluetooth-устройствах;
    • Информация о доступных Wi-Fi-сетях, имеющихся беспроводных сетевых адаптерах и сети, к которой подключено устройство;
    • Характеристики аппаратного обеспечения;
    • Информация о хранилище данных;
  • Список приложений;
  • Информация о пользователе из WeChat;
  • Информация о пользователе и организации из DingTalk;
  • Пары значений «имя пользователя — веб-сайт» из менеджера паролей Google.
Получение данных из WeChat

Получение данных из WeChat

Из WeChat зловред пытается получить WeChatID, почту и номер телефона жертвы. Эти данные хранятся в открытом виде в файле userinfo.data.

В свою очередь, в DingTalk злоумышленников интересуют более подробные данные жертв, а именно:

  • Название организации и отдела, в котором работает пользователь;
  • Имя пользователя;
  • Адрес корпоративной почты;
  • Номер телефона.

Скрипт пытается получить эти данные из файла orgEmployeeModel. Если этот файл отсутствует, то зловред будет искать номер телефона и почту пользователя в файле sAlimailLoginEmail. В случае повторного провала он будет пытаться найти почту пользователя в одном из файлов кэша приложения DingTalk с названием <дата>.holmes.mapping. Эти файлы также не зашифрованы и хранят данные в открытом виде.

Получение данных из DingTalk

Получение данных из DingTalk

Инфраструктура

На момент проведения исследования четыре управляющих сервера были активны и возвращали вредоносные команды. Как уже упоминалось ранее, в некоторых образцах среди заданных IP-адресов были также и приватные адреса. Вероятно, эти образцы использовались для управления устройством жертвы, в локальной сети которой уже имелся зараженный компьютер с установленным на нем прокси, перенаправляющим подключение на сервер злоумышленника. Обычно это делается для сокрытия присутствия зловреда в сети, так как общаться с управляющим сервером злоумышленника будет только то устройство, на котором стоит прокси.

Некоторые из детектируемых IP-адресов уже встречались в атаках с использованием вредоносных программ, нацеленных на устройства под управлением Windows. Их первые появления датируются 2022 годом — один из адресов фигурировал в атаках HZ Rat того периода.

Практически все обнаруженные нами серверы C2 расположены в Китае. Исключения — два адреса, находящихся в США и Нидерландах.

Мы также обнаружили, что описанный выше установочный пакет, по данным VirusTotal, раньше загружался с одного из доменов, принадлежащих miHoYo — китайскому разработчику компьютерных игр:

На текущий момент достоверно неизвестно, как этот файл попал на легитимный домен и имел ли место взлом компании.

Заключение

Обнаруженные образцы macOS-версии HZ Rat показывают, что злоумышленники, стоящие за предыдущими атаками, до сих пор активны. На момент исследования зловред собирал только данные пользователя, однако его могли применять и для дальнейшего продвижения по сети жертвы — на такой вывод наталкивает наличие в некоторых образцах приватных IP-адресов. Собранная информация о месте работы жертвы и ее контактные данные позволяют злоумышленнику устанавливать слежку за интересующими его лицами и более тщательно готовить будущие атаки. Стоит также отметить, что на момент исследования мы не сталкивались с применением двух из поддерживаемых бэкдором команд — на запись файла на диск и отправку файла на сервер, — поэтому полные намерения злоумышленников остаются неясными.

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

MD5-хэши файлов
Бэкдор
0c3201d0743c63075b18023bb8071e73 — Mach-O 64-bit x86_64 executable
6cc838049ece4fcb36386b7a3032171f — Mach-O 64-bit x86_64 executable
6d478c7f94d95981eb4b6508844050a6 — Mach-O 64-bit x86_64 executable
7a66cd84e2d007664a66679e86832202 — Mach-O 64-bit x86_64 executable
7ed3fc831922733d70fb08da7a244224 — Mach-O 64-bit x86_64 executable
9cdb61a758afd9a893add4cef5608914 — Mach-O 64-bit x86_64 executable
287ccbf005667b263e0e8a1ccfb8daec — Mach-O 64-bit x86_64 executable
7005c9c6e2502992017f1ffc8ef8a9b9 — Mach-O 64-bit x86_64 executable
7355e0790c111a59af377babedee9018 — Mach-O 64-bit x86_64 executable
a5af0471e31e5b11fd4d3671501dfc32 — Mach-O 64-bit x86_64 executable
da07b0608195a2d5481ad6de3cc6f195 — Mach-O 64-bit x86_64 executable
dd71b279a0bf618bbe9bb5d934ce9caa — Mach-O 64-bit x86_64 executable

Вредоносный установочный пакет
8d33f667ca135a88f5bf77a0fab209d4 — Apple software package

IP-адреса C2
111.21.246[.]147
123.232.31[.]206
120.53.133[.]226
218.193.83[.]70
29.40.48[.]21
47.100.65[.]182
58.49.21[.]113
113.125.92[.]32
218.65.110[.]180
20.60.250[.]230

HZ Rat: macOS-бэкдор, атакующий китайских пользователей DingTalk и WeChat

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

 

Отчеты

CloudSorcerer: новая APT-угроза, нацеленная на российские государственные организации

«Лаборатория Касперского» обнаружила новую APT-угрозу CloudSorcerer, нацеленную на российские государственные организации и использующую облачные службы в качестве командных серверов аналогично APT CloudWizard.

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

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

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