29 марта специалисты из CrowdStrike опубликовали отчет об атаке на цепочку поставок, осуществленной через популярное VoIP-решение 3CXDesktopApp. С того момента ИБ-сообщество начало анализировать атаку и делиться своими выводами. На сегодня известно следующее:
- Инфекция распространяется через MSI-установщики 3CXDesktopApp. Установщик для macOS также был заражен троянцем.
- Вредоносный установочный пакет содержит зараженную библиотеку dll, которая расшифровывает шелл-код из оверлея библиотеки d3dcompiler_47.dll и выполняет его.
- Расшифрованная полезная нагрузка извлекает URL-адреса командного сервера из файлов иконок, хранящихся в репозитории GitHub (репозиторий уже удален).
- После этого полезная нагрузка подключается к одному из командных серверов, скачивает стилер и запускает его.
- Стилер собирает системную информацию и историю браузера, а затем отправляет их на командный сервер.
Изучая имеющиеся отчеты об атаке на 3CX, мы задались вопросом: последовали ли за стилером дополнительные импланты или компрометация ограничилась только им? В поисках ответа мы решили проанализировать телеметрию этой кампании. На одном из компьютеров мы обнаружили DLL-библиотеку guard64.dll, загруженную в инфицированный процесс 3CXDesktopApp.exe. Что интересно, мы занялись изучением этой DLL-библиотеки 21 марта, примерно за неделю до обнаружения атаки на цепочку поставок. Библиотека DLL с таким же именем использовалась в недавних развертываниях бэкдора, который мы назвали Gopuram и отслеживаем с 2020 года. Три года назад мы расследовали инцидент с заражением криптовалютной компании из Юго-Восточной Азии. Тогда мы обнаружили, что вместе с Gopuram на компьютерах жертв присутствовал бэкдор AppleJeus, приписываемый корейскоговорящей APT-группе Lazarus.
За последние годы мы зафиксировали всего несколько случаев компрометации Gopuram, но в марте 2023 года число заражений начало расти. Оказалось, что это было напрямую связано с атакой на цепочку поставок 3CX. Как мы выяснили, злоумышленники целенаправленно атаковали криптовалютные компании, внедряя на зараженные системы следующие файлы:
- C:\Windows\system32\wlbsctrl.dll, вредоносная библиотека (MD5: 9f85a07d4b4abff82ca18d990f062a84);
- C:\Windows\System32\config\TxR\<GUID профиля аппаратного обеспечения>.TxR.0.regtrans-ms, зашифрованная полезная нагрузка с шелл-кодом.
После внедрения библиотека wlbsctrl.dll будет загружаться службой IKEEXT при каждом запуске системы посредством подмены DLL (DLL hijacking). Также мы обнаружили DLL-библиотеки с именами ualapi.dll и ncobjapi.dll, динамически загружаемые легитимными процессами spoolsv.exe и svchost.exe соответственно.
Библиотека wlbsctrl.dll отвечает за расшифровку и выполнение шелл-кода из каталога C:\Windows\System32\config\TxR. Для расшифровки используется API-функция CryptUnprotectData, которая применяет различные для каждой системы ключи шифрования, что затрудняет исследователям расшифровку полезной нагрузки файла в отсутствие физического доступа к компьютерам жертв.
Фрагмент кода функции загрузки с применением CryptUnprotectData
Библиотека загружает компонент, представляющий собой основной модуль Gopuram. Как уже упоминалось, его имя в директории экспорта — guard64.dll. Задача основного модуля состоит в подключении к командному серверу и запросе команд. Набор команд бэкдора позволяет злоумышленникам взаимодействовать с файловой системой и создавать процессы на зараженной машине. Кроме того, Gopuram способен запускать модули, выполняемые в памяти. Как и импланты из кампании 3CX, модули Gopuram представляют собой DLL-файлы со встроенной функцией экспорта DllGetClassObject. На данный момент мы увидели девять модулей:
Название модуля | Описание |
Ping | Пингует хост, указанный в аргументе. |
Connect | Подключается к заданному хосту через сокет и ждет отправки данных сервером. |
Registry | Манипулирует реестром (перечисляет, добавляет, удаляет и экспортирует ключи). |
Service | Управляет службами (создает, перечисляет, запускает, останавливает и удаляет). |
Timestomp | Изменяет временные метки файлов. |
Inject | Внедряет полезную нагрузку через системные вызовы путем сопоставления шелл-кода с удаленным процессом и создания удаленного потока. |
KDU | Утилита драйвера ядра (Kernel Driver Utility) для обхода проверки подписи драйвера. Позволяет загрузить неподписанный драйвер (MD5: F684E10FF1FFCDD32C62E73A11382896). Драйвер собирает информацию об установленных антивирусных фильтрах и записывает ее в файл C:\Windows\System32\catroot2\edb.chk.log. |
Update | Шифрует предоставленную полезную нагрузку и записывает ее в файл C:\Windows\System32\config\TxR\<GUID профиля аппаратного обеспечения>.TxR.0.regtrans-ms. |
Net | Частично реализует функционал команды net: управление пользователями, группами, сессиями и сетевыми ресурсами. |
Новые случаи заражения Gopuram позволили нам связать кампанию 3CX с APT-группой Lazarus со средней или высокой степенью уверенности. Вывод о причастности Lazarus основан на следующих фактах:
-
В ходе расследования атаки на криптовалютную компанию в Юго-Восточной Азии в 2020 году мы обнаружили, что Gopuram сосуществует в одной системе с бэкдором AppleJeus. Этот бэкдор приписывается APT-группе Lazarus.
-
Бэкдор Gopuram фигурировал в атаках на криптовалютные компании, что соответствует интересам APT-группы Lazarus.
-
При поиске дополнительных имплантов с тем же шелл-кодом загрузчика, что в имплантах 3CX, был обнаружен образец в мультисканерном сервисе (MD5: 933508a9832da1150fcfdbc1ca9bc84c), который загружает полезную нагрузку и взаимодействует с командным сервером wirexpro[.]com. Этот же сервер входит в список индикаторов компрометации для кампании AppleJeus, составленный Malwarebytes.
Первые байты шелл-кода загрузчика из кампаний 3CX и AppleJeus
Следует отметить, что шелл-код, используемый в данной атаке, основан на открытом исходном коде, которым ранее пользовались и другие киберпреступники, включая SilentBreak. Однако сочетание этого шелл-кода с константой 0xF558F4DA, которая является хешем ROR13 для строки DllGetClassObject, можно считать более уникальным индикатором.
-
При исследовании вредоносного файла MSI (MD5: ec3f99dd7d9dbce8d704d407b086e84f), загруженного в мультисканерный сервис, мы обнаружили следующие два события:
-
Было замечено, что библиотека dll, извлекаемая из MSI, запускает в памяти полезную нагрузку, которая обращается к домену oilycargo[.]com. Множество исследователей ранее приписывали это доменное имя группе Lazarus.
-
По данным нашей телеметрии, мы определили, что исполняемый файл AvBugReport.exe, содержащий dll, также включает в себя полезную нагрузку основного модуля Gopuram, guard64.dll.
-
Эти четыре факта указывают на то, что группа Lazarus, по всей видимости, несет ответственность за развертывание бэкдора Gopuram.
Согласно нашей телеметрии, зараженное ПО 3CX было установлено в разных странах по всему миру, чаще всего в Бразилии, Германии, Италии и Франции. Бэкдор Gopuram был развернут на менее чем десяти зараженных машинах, что указывает на хирургическую точность его операторов. Стоит также отметить особый интерес злоумышленников к криптовалютным компаниям.
Заключение
Как оказалось, вместе со стилером в рамках атаки на цепочку поставок 3CX распространялась и другая вредоносная полезная нагрузка. Организаторы атаки также внедряют на целевых системах полнофункциональный модульный бэкдор Gopuram. Мы считаем, что Gopuram является основным имплантом и последней полезной нагрузкой в цепочке атаки. Наше расследование кампании 3CX еще далеко от завершения. Мы продолжим анализ развернутых имплантов, чтобы подробнее изучить инструментарий, который использовался в атаке на цепочку поставок.
Индикаторы компрометации Gopuram
Хеши MD5
9f85a07d4b4abff82ca18d990f062a84
96d3bbf4d2cf6bc452b53c67b3f2516a
Пути к файлам
C:\Windows\System32\config\TxR\<GUID профиля аппаратного обеспечения>.TxR.0.regtrans-ms
C:\Windows\system32\catroot2\edb.chk.log
Для подписчиков TIP доступны дополнительные индикаторы компрометации и правила YARA для обнаружения компонентов Gopuram. Свяжитесь с нами по адресу intelreports@kaspersky.com для получения более подробной информации.
Не только стилер: бэкдор Gopuram распространялся посредством атаки на цепочку поставок 3CX