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

Новый прокси-троянец для macOS распространяется с пиратским ПО

Одним из традиционных способов доставки вредоносных программ на устройство жертвы всегда были взломанные версии программного обеспечения. Часто пользователи не готовы платить за все необходимое им ПО, поэтому они исследуют просторы интернета в поисках «бесплатного сыра». Для злоумышленников они — отличная цель, ведь если пользователь ищет взломанную программу, он готов и скачать установочный файл с сомнительного ресурса, и по доброй воле отключить защиту, а значит, его достаточно легко заманить в ловушку и убедить установить вредоносное ПО.

Недавно мы обнаружили взломанные приложения, распространяемые с пиратских сайтов и содержащие прокси-троянец. Этот класс вредоносного ПО злоумышленники могут использовать как для получения прибыли с организации сети прокси-серверов, так и для совершения различных преступлений от лица жертвы: от атак на сайты, компании и других пользователей до покупки оружия, наркотиков и прочих незаконных товаров.

Postinstall-скрипт

В отличие от оригинальных, не взломанных версий приложений, которые обычно распространяются в виде образа диска, их зараженные варианты распространялись в виде .PKG-установщиков. Такие файлы в macOS обрабатываются специальной утилитой Installer и имеют возможность выполнять скрипты на этапах до и после непосредственной установки приложения. В собранных нами примерах скрипты запускались только после установки программы.

Содержимое вредоносного скрипта

Содержимое вредоносного скрипта

Из кода скрипта становится понятно, что в папке /Contents/Resources/ файла-установщика помимо ресурсов взломанного приложения находятся два подозрительных файла: WindowServer и p.plist. Скрипт удаляет файлы ~/Library/Application Support/WindowServer и ~/Library/LaunchAgents/GoogleHelperUpdater.plist, сохраняет на их место те самые файлы из папки с ресурсами и выдает им права администратора. Так как установщик, как это часто бывает, требует права администратора для своей работы, скрипт, запущенный текущим процессом установщика, их наследует.

Файл p.plist (или GoogleHelperUpdater.plist) — это файл конфигурации. Из его содержимого понятно, что он мимикрирует под один из конфигурационных файлов Google и выполняет единственную задачу — автозапуск файла WindowServer, путь к которому обозначен как ${VAR}, после загрузки операционной системы под видом системного процесса.

Содержимое файла p.plist

Содержимое файла p.plist

WindowServer

WindowServer — бинарный файл универсального формата. Мы нашли несколько версий этого приложения — самая ранняя была впервые загружена на VirusTotal 28 апреля 2023 года. При этом ни одну из версий антивирусные вендоры не пометили как вредоносную:

Запустившись, троянец создает файлы логов и пытается получить IP-адрес C&C-сервера через сервис DNS-over-HTTPS (DoH), таким образом скрывая DNS-запрос от средств мониторинга трафика и делая его неотличимым от обычного HTTPS-запроса:

Начало программы (MD5: 063d956b55da0d18f3f732c2bbd4bc28)

Начало программы (MD5: 063d956b55da0d18f3f732c2bbd4bc28)

Пример GET-запроса из функции получения IP-адреса C&C (MD5: 063d956b55da0d18f3f732c2bbd4bc28)

Пример GET-запроса из функции получения IP-адреса C&C (MD5: 063d956b55da0d18f3f732c2bbd4bc28)

Получив ответ, он создает соединение с C&C-сервером register[.]akamaized[.]ca посредством протокола WebSocket, отправляя ему свою версию и ожидая в ответ команду и соответствующее ей сообщение. Ниже представлен список поддерживаемых программой команд:

Номер команды Назначение
0x34 Выполнить обработку сообщения
0x35 Приостановить обработку команд
0x36 Продолжить обработку команд
0x37 Завершить обработку команд
0x38 Ожидать следующую команду

В рамках исследования нам не удалось дождаться ответа от сервера, который содержал бы какую-либо команду кроме 0x38. Однако, проанализировав код программы, можно сделать вывод, что вместе с командой 0x34 должно прийти сообщение, содержащее следующие данные: адрес, по которому необходимо установить соединение, протокол и пересылаемое сообщение. Клиент поддерживает создание соединения как по протоколу TCP, так и по UDP:

(MD5: 063d956b55da0d18f3f732c2bbd4bc28)

(MD5: 063d956b55da0d18f3f732c2bbd4bc28)

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

  • В отличие от своих предшественников, самая новая из известных нам версий программы не проверяет свою версию и не может обновиться. Хотя сама функция обновления присутствует, она нигде не вызывается.
    Отрывок из функции обновления программы (MD5: 063d956b55da0d18f3f732c2bbd4bc28)

    Отрывок из функции обновления программы (MD5: 063d956b55da0d18f3f732c2bbd4bc28)

  • В более старших версиях IP-адрес C&C-сервера получается через обычный DNS-запрос, а не DoH.
  • Все версии троянца пишут логи в файлы log.txt и dbg.dmp, при этом не подчищая их после завершения своей работы и не имея механизмов, позволяющих злоумышленникам проанализировать их. Таким образом, установить возможное присутствие вредоносной программы в системе можно, не только проверив известные нам пути, но и выполнив поиск ключевых тегов по всем текстовым файлам.

Версии для других платформ

Помимо приложений для macOS мы также обнаружили несколько образцов, выполняющих подключение к тому же C&C-серверу, созданных для платформ Android и Windows. Они также являются прокси-троянцами и скрытно поставляются вместе со взломанным ПО.

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

MD5:
Прокси-троянцы:
063d956b55da0d18f3f732c2bbd4bc28 — WindowServer
f6d1aa43d40727104f0517c91b117f72 — WindowServer
f40affab8ee804a49893fd1df3710622 — WindowServer

Postinstall-скрипты:
2a4fff0b167654edc7f62a747ea13067
0049c3960ab98e11db3872a98078b7a6
ed7fd28bc482d9a822d78f515d18e93c
a0fe67385390bab476d9b716f4097907

Plist-файлы:
0049c3960ab98e11db3872a98078b7a6 — GoogleHelperUpdater.plist
2a4fff0b167654edc7f62a747ea13067 — GoogleHelperUpdater.plist

PKG-файлы:
7b4b44bf6c3d8eb31f14206c0d76c321 — 4K Image Compressor.pkg
00cbaee9a21dd0ca13ecbeca30ef9b26 — 4K Video Downloader Pro v4.24.3 macOS.pkg
3432f1cb6be21938be87ad0b12202423 — Aiseesoft Mac Data Recovery.pkg
af7b3ac1adc4f4d563c75e8583c0f239 — Aiseesoft Mac Video Converter Ultimate.pkg
ec1698e7900210c642a2772e8d040f8c — allavsoft.pkg
0c369d305e101381dfbd2f277417ca69 — AnyMP4 Android Data Recovery for Mac.pkg
6f58024bfe61351035711f33a2133c40 — AweCleaner.pkg
9b83fc25080d542a9fd71bbe0678e593 — Downie 4.pkg
338f882d4fc0c2cc96eca6edb1d6a6f0 — FonePaw Data Recovery.pkg
b35db7dd042ca92ad7180f6a1e2bdad8 — iNet Network Scanner.pkg
e06b0fef08b711f8ba307d1c13cc1b97 — MacDroid.pkg
7934bede64f6473576e400aefafae2b3 — MacX Video Converter Pro.pkg
0003a4d2207462e24fbc711fa1b84533 — MouseBoost Pro.pkg
b5a334d92906f8a85cc86c582d3232bf — MWeb Pro.pkg
3627fa05f7fb975a4be8392a14474757 — NetShred X.pkg
01675deeb459c0cec6eb6b409698c42a — NetWorker Pro.pkg
d874167ece5528e9e997b60906940afa — Path Finder.pkg
f5cceb3eea65d0f7ae5a6b62d07cb869 — Patternodes.pkg
311b665dad3d6ea77225b5a6529a8f0c — Perfectly Clear Workbench.pkg
0e59a269fa6a34cc6fab8873e79e8011 — Print to PDF.pkg
d9e4e16ec9206ba427d280a955248829 — Project Office X.pkg
206ff97436f3c229502040128bd39bbe — Rocket Typist.pkg
59033b56c99c49a392ed7e653d296375 — Sketch.pkg
d933d00c01d1e0fd2df960e166a1e4b5 — SponsorBlock.pkg
704f2606b0a12e42046c95e530bf5f38 — SystemToolkit.pkg
1920e42d286080cc1ed6272db859e7b5 — TransData.pkg
b056054c992a386144304f1f3470234c — Vellum.pkg
11fc6ec7cdb93f23c9756a788a4204bc — VideoDuke.pkg
a2d5f2c28b2b79cf29942f8bdd847a72 — Wondershare UniConverter 13.pkg
19d3fcff714d7ffa1e325d46f6ddb8b2 — SQLPro Studio.pkg
128068daf917c2df36bccdec97c3b66a — WinX HD Video Converter for Mac.pkg
63086d31bb186abb294a5a737f235098 — Artstudio Pro.pkg
9297a3753ddff6dae048a2a75a42e529 — Magic Sort List.pkg
7f2d204f197e1205f74de603cba40010 — FoneLab Mac Data Retriever.pkg
98c185a785f2ac075849336001bc5b9c — Apeaksoft Video Converter Ultimate for Mac.pkg

Образцы для Android:
d605b5673ca89a767662a4a83662eaa0 — s276.apk
fb3c42ca1ff0ba96ac146c1672357994 — Swipis_v2.6.1[Mobile].apk

Образец для Windows:
a408e30bbd449367291366d337d54f82 — wsclient.exe

URL:
register[.]akamaized[.]ca:6101/strvn

Новый прокси-троянец для macOS распространяется с пиратским ПО

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

 

  1. Дмитрий Дружбин

    Добрый день. А не могли подробнее уточнить про WindowServer. Дело в том, что так называется штатный процесс систем macOS, отвечающий за графический интерфейс. Получается, этот скрипт переписывает его? Или просто мимикрирует под него? Спасибо!

    1. Securelist

      Добрый вечер, Дмитрий!

      Скрипт не перезаписывает системные файлы, а только помещает троянца в /Library/Application Support/WindowServer/. Таким образом, как вы сказали, он просто мимикрирует под системный процесс, чтобы его было сложнее найти.

Отчеты

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

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

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

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

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