В июне 2024 года мы обнаружили macOS-версию бэкдора HZ Rat, нацеленного на пользователей корпоративного мессенджера DingTalk и социальной сети с функциями мессенджера WeChat. Полученные нами образцы практически в точности повторяют функциональность версии бэкдора для Windows и отличаются только полезной нагрузкой, получаемой в виде shell-скриптов с сервера злоумышленников. В рамках проведенного исследования мы заметили, что некоторые версии бэкдора подключаются к C2 при помощи локальных IP-адресов, что натолкнуло нас на мысль о возможном целевом характере этой угрозы. Это также может свидетельствовать о намерениях злоумышленников использовать бэкдор для дальнейшего продвижения по сети жертвы.
HZ Rat впервые был обнаружен исследователями из DCSO в ноябре 2022 года. Тогда зловред был нацелен на системы под управлением Windows и получал команды в виде PowerShell-скриптов.
Технические подробности
Хотя изначальная точка распространения зловреда нам неизвестна, мы смогли найти установочный пакет для одного из образцов бэкдора. Это файл с именем OpenVPNConnect.pkg:
Он был загружен на VirusTotal в июле 2023 года и на момент исследования не детектировался ни одним вендором, как и другие образцы бэкдора. Установщик представляет собой обертку легитимного приложения OpenVPN Connect, при этом в директории пакета MacOS помимо оригинального клиента содержатся два файла: exe и init.
Система определяет, какой файл запустить при открытии приложения, при помощи файла конфигурации Info.plist. Так, в первую очередь будет запущен файл exe — shell-скрипт, который сначала запускает файл init, а затем приложение OpenVPN:
Файл init — это сам бэкдор. В момент запуска он устанавливает соединение с C2 в соответствии со списком из указанных в бэкдоре IP-адресов. В большинстве случаев для подключения использовался порт 8081. Мы также обнаружили образцы бэкдора, подключающиеся к C2 при помощи приватных IP-адресов.
Для общения с C2 используется XOR-шифрование с ключом 0x42. Перед началом сессии бэкдор отправляет случайное четырехбайтовое значение, обозначенное в коде как cookie. Каждое сообщение имеет следующую структуру:
- Код сообщения (1 байт);
- Длина сообщения (4 байта);
- Текст сообщения, где первые 4 байта содержат размер данных.
Исполняемый файл написан на C++, и в нем сохранилась отладочная информация, благодаря чему его легко идентифицировать:
Бэкдор поддерживает всего четыре основные команды:
Код | Имя функции | Описание |
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 зловред пытается получить WeChatID, почту и номер телефона жертвы. Эти данные хранятся в открытом виде в файле userinfo.data.
В свою очередь, в DingTalk злоумышленников интересуют более подробные данные жертв, а именно:
- Название организации и отдела, в котором работает пользователь;
- Имя пользователя;
- Адрес корпоративной почты;
- Номер телефона.
Скрипт пытается получить эти данные из файла orgEmployeeModel. Если этот файл отсутствует, то зловред будет искать номер телефона и почту пользователя в файле sAlimailLoginEmail. В случае повторного провала он будет пытаться найти почту пользователя в одном из файлов кэша приложения DingTalk с названием <дата>.holmes.mapping. Эти файлы также не зашифрованы и хранят данные в открытом виде.
Инфраструктура
На момент проведения исследования четыре управляющих сервера были активны и возвращали вредоносные команды. Как уже упоминалось ранее, в некоторых образцах среди заданных IP-адресов были также и приватные адреса. Вероятно, эти образцы использовались для управления устройством жертвы, в локальной сети которой уже имелся зараженный компьютер с установленным на нем прокси, перенаправляющим подключение на сервер злоумышленника. Обычно это делается для сокрытия присутствия зловреда в сети, так как общаться с управляющим сервером злоумышленника будет только то устройство, на котором стоит прокси.
Некоторые из детектируемых IP-адресов уже встречались в атаках с использованием вредоносных программ, нацеленных на устройства под управлением Windows. Их первые появления датируются 2022 годом — один из адресов фигурировал в атаках HZ Rat того периода.
Практически все обнаруженные нами серверы C2 расположены в Китае. Исключения — два адреса, находящихся в США и Нидерландах.
Мы также обнаружили, что описанный выше установочный пакет, по данным VirusTotal, раньше загружался с одного из доменов, принадлежащих miHoYo — китайскому разработчику компьютерных игр:
1 |
hxxp://vpn.mihoyo[.]com/uploads/OpenVPNConnect.zip. |
На текущий момент достоверно неизвестно, как этот файл попал на легитимный домен и имел ли место взлом компании.
Заключение
Обнаруженные образцы 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