Banshee переродился? Анализ свежего MacOS-стилера, переписанного на Rust

Инфостилеры, нацеленные на macOS, продолжают активно развиваться, что делает их мониторинг особенно важным. Не так давно в открытом доступе оказался исходный код инфостилера “Banshee”, написанный на Objective-C. Это позволило исследователям изучить его механизмы работы, а также обнаружить его возможного преемника – новую версию, написанную на Rust.

15 января 2025 года команда исследователей Kandji обнаружила новый образец инфостилера на VirusTotal. Программа демонстрирует схожее поведение с “Banshee” и ориентирована на кражу данных из браузеров, криптокошельков и расширений. Однако новый вариант передаёт файлы на локальный хост, что может свидетельствовать о стадии тестирования или ранней разработки.

Исследователи провели детальный анализ кода. Одним из первых признаков сходства стало использование аналогичных имён функций в Rust-приложении и в утекшим коде “Banshee”. Rust-компилятор добавляет уникальные идентификаторы к именам функций, но после их удаления сопоставление показало значительное совпадение. В частности, функция mac_os_stealer::main() в новом инфостилере использует механизм передачи аргументов при запуске, аналогичный тому, что применялся в оригинальном “Banshee”.

В коде нового образца присутствует команда killall Terminal, идентичная той, что была найдена в утекшем Objective-C коде. Эта команда завершает работу терминала, возможно, скрывая следы вредоносной активности. Также в новом инфостилере реализована проверка на запуск в виртуальной машине с использованием команды

b”system_profiler SPHardwareDataType | grep ‘Model Identifier'”

Если в результате проверки обнаруживается строка “Virtual”, программа реагирует аналогично коду “Banshee”.

Ещё одним интересным аспектом стало использование метода sysctl() для выявления работающего отладчика. Этот механизм применяется во многих инфостилерах и позволяет вредоносному ПО избегать анализа.

В ходе анализа исследователи установили, что инфостилер собирает информацию о системе, запуская несколько команд, определяющих версию ОС, тип оборудования и объем оперативной памяти. Затем программа создаёт временную директорию и вызывает функцию send_data(), подготавливая данные для передачи. В коде этой функции также обнаружены следы шифрования перед отправкой данных.

Интересно, что в этом варианте инфостилера конечная точка передачи данных настроена на 127.0.0.1:3030, что подтверждает гипотезу о тестировании программы. Такой подход обычно встречается в ранних стадиях разработки вредоносного ПО.

Дальнейший анализ показал, что инфостилер ориентирован на извлечение данных из браузеров, включая Chrome, Firefox, Microsoft Edge и Yandex. В коде также найдены идентификаторы расширений для работы с криптовалютными кошельками. Сравнение с утекшим кодом “Banshee” подтвердило их полное совпадение.

После извлечения данных программа сохраняет их в папке “Browsers”, а информация о криптокошельках отправляется в директорию “Wallets”. Эти файлы, вероятно, в дальнейшем пересылаются на сервер управления.

Исходя из полученных данных, можно с высокой долей уверенности сказать, что новый инфостилер на Rust является адаптированной версией “Banshee”. Раскрытие подобных угроз подчёркивает важность непрерывного мониторинга и анализа вредоносного ПО. Злоумышленники адаптируются к новым условиям, поэтому методы защиты и выявления угроз должны развиваться с аналогичной скоростью.

Public Release.