Исследователи в области кибербезопасности выявили новую версию вредоносного ПО PamStealer, которая гарантирует, что основной полезный груз может быть восстановлен только с использованием цепочки дешифрования на стороне сервера. По данным Jamf Threat Labs, последние артефакты продолжают использовать тот же механизм дроппера JavaScript for Automation (JXA), но изменяют приманку и метод доставки.
«В то время как предыдущие варианты встраивали ключевой материал полезной нагрузки непосредственно в исходный код JXA, теперь он извлекает специально созданную утилиту дешифрования и завершает обмен ключами с сервером перед тем, как полезный груз может быть распакован», — заявил в своем анализе исследователь безопасности Тийс Ксэфлэр. «Без сотрудничества сервера полезную нагрузку невозможно восстановить статически».
Второе важное изменение — выбор самой приманки. В то время как предыдущие версии, обнаруженные в июле и августе 2026 года, использовали поддельные веб-сайты, маскирующиеся под Maccy, Scoppr и Nancy Clipboard, теперь жертв заманивают через поддельный веб-сайт («wavel[.]app»), рекламирующий несуществующий сервис криптовалютного кошелька под названием Wavel.
Нажатие кнопки «Download for macOS» на поддельном сайте приводит к загрузке файла образа диска («Wavel.dmg»), содержащего скомпилированный файл AppleScript. Открытие файла запускает встроенный в Apple редактор сценариев с инструкциями для запуска дроппера JXA.
«В Maccy, Scoppr и Nancy исходный код JXA выполнял дешифрование RC4 встроенной полезной нагрузки, совершал вызовы фреймворков Objective-C через мост JXA к Foundation и NSData, а также управлял всем процессом загрузки и подготовки», — пояснил Ксэфлэр. «В Wavel исходный код JXA этого не содержит. Весь слой JXA теперь является носителем. Когда Script Editor выполняет файл, он декодирует строку base64 и передает результат в /bin/zsh -s, где zsh считывает и выполняет декодированные байты из стандартного ввода. Процесс JXA немедленно завершается; дроппер zsh продолжает работу в фоновом режиме».
Декодированный скрипт zsh продвигает заражение, выполняя следующие действия:
Поскольку сервер хранит закрытый ключ, завершающий процесс обмена ключами, ключ шифрования данных (DEK) невозможно восстановить без него, что предотвращает расшифровку полезной нагрузки. Кроме того, учитывая, что при каждом выполнении генерируется новая временная пара ключей, захваченное значение DEK не может быть повторно использовано для извлечения содержимого полезной нагрузки.
Это, в свою очередь, делает зашифрованную полезную нагрузку фактически бесполезной для статического анализа без доступа к активной сессии командно-контрольной инфраструктуры (C2).
Более того, скрипт восстановления копируется в папки «post-checkout» и «pre-commit» внутри «~/Library/Application Support/System/.githooks/», а параметр конфигурации Git «git config –global core.hooksPath» устанавливается в этот каталог. В результате любое действие git checkout или git commit в любом репозитории на скомпрометированной системе будет бесшумно активировать скрипт восстановления.
Финальная стадия — компонент похитителя, написанный на Swift, что является отходом от предшественника, реализованного на Rust. Несмотря на изменение используемого языка программирования, конечная цель остается прежней.
«Включение Arc, Zen, а также менее распространенных региональных и ориентированных на конфиденциальность браузеров заметно расширяет список целей по сравнению с тем, что обычно встречается у распространенных похитителей macOS», — сказал Ксэфлэр. «Этот вариант PamStealer отражает целенаправленные инвестиции в инфраструктуру доставки. Утилита pkgunpack вводит обмен ключами в реальном времени, который привязывает дешифрование полезной нагрузки к доступности сервера: без сотрудничества C2 вторая стадия не может быть расшифрована. Такая конструкция значительно затрудняет статическое восстановление полезной нагрузки и переносит часть операционного контроля на оператора сервера».
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Ravie Lakshmanan




