Фалшиво изтегляне на портфейл за криптовалута разпространява нова версия на PamStealer сред потребителите на Mac. Атаката започва с убедителен уебсайт, чийто инсталатор приканва посетителите да следват инструкции.

Стартирането на маскирания файл задейства скрита верига, която може да прихване паролата за вход в Mac и други лични данни. Това е третият известен вариант на PamStealer.

Вместо просто да скрие вредната си програма в първоначалното изтегляне, той разчита на обмен в реално време с контролиран от атакуващите сървър, за да отключи следващия етап.

Тази промяна прави зловредния код по-труден за изследване от анализаторите без наличието на сървъра. Анализатори от Jamf Threat Labs идентифицираха новия вариант след проследяване на по-ранна активност на PamStealer.

От Jamf посочват в доклад, споделен с Cyber Security News (CSN), че примамката вече се представя за портфейл с поддръжка на множество блокчейни вместо за инструмента за клипборд, използван в по-ранната кампания на PamStealer Maccy, докато методът на зловредния софтуер за проверка на пароли остава същият.

В контролиран тест изследователите са наблюдавали как софтуерът за кражба на данни сглобява и качва архив със събраната информация. В доклада не се посочва брой на жертвите или финансови загуби, така че потвърденото въздействие се ограничава до наблюдаваното поведение. Въпреки това комбинацията от кражба на пароли, извличане на данни от браузъри и траен достъп създава сериозни рискове за всеки, който стартира инсталатора.

Фалшиво приложение за крипто портфейл разпространява зловредния софтуер PamStealer

Сайтът на тема портфейли предлага нещо, което изглежда като обичайно изтегляне за Mac. Вместо това неговият дисков образ съдържа компилиран скрипт с почти невидимо име: показва се само разширението на файла.

Тъй като Finder обикновено скрива разширенията, елементът може да изглежда като обикновен документ, докато не се отвори в Script Editor и потребителят не последва инструкциите за стартирането му.

Това действие на потребителя е от решаващо значение. Подобно на фалшивите инструкции за помощни програми, насочени към Mac, тази атака зависи от убеждаването на жертвата да стартира злонамерената последователност, вместо от експлоатирането на софтуерна уязвимост.

След като бъде стартиран, скриптът декодира друг скрипт и го стартира във фонов режим, оставяйки видимия редактор на заден план, докато заразяването продължава.

Wavel, фалшив инсталатор на приложения (Източник – Jamf)
Wavel, фалшив инсталатор на приложения (Източник – Jamf)

Фоновият скрипт изтегля малък инструмент за декриптиране и изисква от сървъра на атакуващите материалите, необходими за отключване на криптирано приложение.

При всяко стартиране се осъществява нов обмен, така че изследователите не могат просто да извлекат скритата програма от първоначалното изтегляне и да я анализират офлайн. Дроперът също така премахва карантинния флаг на изтегления инструмент и прилага ad hoc подпис преди стартирането му.

След разархивирането на зловредния код скриптът го инсталира като вграден Mac компонент. Той за кратко смущава процесите, които обикновено биха показали известие за нов фонов елемент.

След това задача за вход стартира отново зловредния софтуер при влизане в системата и го проверява многократно, докато механизми за възстановяване могат да възстановят части, премахнати от потребител или защитник.

Кражба на пароли и устойчивост

Основният софтуер за кражба на данни вече е написан на Swift, заменяйки базирания на Rust компонент от първата версия. Той показва познато изглеждащ прозорец за въвеждане на парола за Mac, последван от фалшиво предупреждение за повредено приложение.

Когато някой въведе парола, зловредният софтуер проверява дали тя е правилна чрез стандартния механизъм на системата за валидиране при вход, преди да я използва за достъп до защитена информация.

Зловредният софтуер може да извлича елементи от Keychain и да копира базата данни на потребителския ключодържател (login keychain). Той също така се прицелва в бази данни с идентификационни данни в 17 браузъра, включително няколко по-малки браузъра извън обичайните популярни решения.

Както и при други фалшиви инсталатори за Mac, убедителното изтегляне е само първата стъпка; същинските щети настъпват, когато поверителните материали бъдат събрани и изпратени.

Кодираният в UTF-16BE изходен код на JXA (Източник – Jamf)
Кодираният в UTF-16BE изходен код на JXA (Източник – Jamf)

Изследователите са открили и процедури за събиране на системни данни, история на командния ред (shell history) и снимката на потребителския профил. Помощни приложения за всеки браузър се опитват да получат достъп до съхраняваните тайни, маскирайки се като съответния браузър.

В теста в изолирана среда програмата е пакетирала събраните данни и е изпратила получения архив към контролирана от атакуващите инфраструктура, доказвайки, че веригата за кражба може да бъде завършена успешно.

Премахването може да бъде затруднено от съхранено резервно копие и тригери за възстановяване, прикрепени към нови сесии на командния ред и активност в Git. Потребителите на Mac трябва да проверяват изтеглянията и да избягват неочаквани скриптове.

Специалистите по киберсигурност могат да конфигурират контроли за заплахи и уеб трафик, за да блокират и докладват подобна активност, да проверяват механизмите за устойчивост и да сменят компрометираните пароли от чисто устройство, след като Mac бъде защитен.

Индикатори за компрометиране (IoCs):-

ТипИндикаторОписание
Domainwavel[.]appФалшив уебсайт за примамка с крипто портфейл.
URLhxxps://y32me8[.]com/Wavel.dmgИзтегляне на дисков образ.
File nameWavel.dmgРазпространяван дисков образ.
File name.scptКомпилиран скрипт в дисковия образ.
File nameWavel.applescriptИме на скрипта, наблюдавано по време на анализа.
SHA-256ed980f2fa0642b1a5ba0bca65f5b3baee8a7b3f5d149bf295aa4ac7a70b92cecХеш на компилирания скрипт.
Domainwavel.apple03cloudstore[.]comСървър за доставяне на злонамерен код и управление.
URLhxxps://wavel.apple03cloudstore[.]com/pkgunpackИзтегляне на инструмента за декриптиране.
File namepkgunpackИнструмент за декриптиране.
SHA-256484129123e8509acdc733d44e9a53c1cafa5afc1e2a28d49a55d0e209806d898Хеш на инструмента за декриптиране.
URLhxxps://wavel.apple03cloudstore[.]com/4e7a12e1c294f377/CoreUpdate.pkg.encИзтегляне на криптирания злонамерен код.
URLhxxps://wavel.apple03cloudstore[.]com/v1/loader/dekКрайна точка за обмен на ключове за злонамерения код.
URLhxxps://wavel.apple03cloudstore[.]com/v1/loader/logДокладвана крайна точка на сървъра.
URLhxxps://wavel.apple03cloudstore[.]com/v1/assetКрайна точка за качване на откраднати данни.
URLhxxps://wavel.apple03cloudstore[.]com/v1/asset/1789753519-10913-1182Дестинация за качване, наблюдавана в изолираната среда.
Build public keyI6VuXPzLJfPEXgVRO5ycNXdMWHWvMAkrLMV6OpEuwDw=Вграден публичен ключ X25519.
Upload tokenbe7ac520b804f933db0dc789431034eaae7b14c7ff7ff65605d736e9d5873163Токен, използван в заявките към сървъра за този билд.
Observed public keysK2+KZYoZvdLRuLsID7OBopfce4n1fJqjVuML0SEC0Y=Временен публичен ключ, прихванат по време на анализа.
Observed responseU05XSzG0P2XrnVk9BZr0Iu1ftcsnejIMW2JUTR3TSjRkf5F8bkEtDJiOXZHlK1rCi+OHHJI5t975CvlbCuY3NcU=Опакован ключ за декриптиране, върнат по време на анализа.
File nameWavel.appДекриптиран пакет на приложението преди инсталация.
File nameFinder.appИме на инсталирания пакет, използвано за да наподобява системен компонент.
File namer8afup9un0Изпълним файл на стийлъра, написан на Swift.
Bundle identifiercom.local.r8afup9un0Идентификатор на приложението на стийлъра.
LaunchAgent labelcom.apple.finder.agentФонова задача, представяща се за системен компонент.
File path~/Library/Application Support/System/Finder.app/Contents/MacOS/r8afup9un0Инсталиран изпълним файл на стийлъра.
File path~/Library/LaunchAgents/com.apple.finder.agent.plistФайл за персистентност при вход в системата.
File path~/Library/Application Support/System/.repair-runСкрипт за възстановяване на персистентността.
File path~/Library/Application Support/System/.sysnotif-backup.tgzЛокално резервно копие, използвано за възстановяване.
File path~/Library/Application Support/System/.githooksДиректория, съдържаща злонамерени Git hooks.
File namespost-checkout, pre-commitGit hooks, използвани за задействане на възстановяването.
Shell marker# sysnotif-repairМаркер, добавен към ~/.zshrc.
File path~/.zshrcСтартиращ файл на шела, модифициран за задействане на възстановяването.
File path/tmp/.sn-done-be7ac520b804f933Маркер за завършване.
File path/tmp/.sn-loader-be7ac520b804f933db0dc789431034eaae7b14c7ff7ff65605d736e9d5873163.lockЗаключващ файл на товарача.
File path/tmp/.pkgunpack-<PID>Временен инструмент за декриптиране.
File paths/tmp/.eph-<PID>.key, /tmp/.eph-<PID>.pubФайлове с временна двойка ключове.
File paths/tmp/.core-<PID>.enc, /tmp/.core-<PID>.tar.gzКриптиран злонамерен код и декриптиран архив.
File path/tmp/.upd-<PID>/Wavel.app/Разопакован пакет със злонамерен код.
File path/tmp/.65486b/<session>/Директория за временно съхранение на събраните данни.

Забележка: IP адресите и домейните са умишлено обезвредени (напр. [.]), за да се предотврати случайно разрешаване на имена или хипервръзки. Възстановете оригиналния им вид само в рамките на контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашия SIEM.