Пакет-шпион в npm: как фальшивый установщик OpenClaw крадёт пароли и клонирует браузеры на macOS

Третьего марта 2026 года в реестре npm появился пакет под названием @openclaw-ai/openclawai. Загрузил его пользователь с ником openclaw-ai. Пакет маскировался под установщик OpenClaw — и на первый взгляд не вызывал подозрений. За неделю его скачали 178 раз, прежде чем специалисты компании JFrog обнаружили угрозу. Десятого марта 2026 года пакет удалили из реестра, но к тому моменту он уже успел натворить дел. Исследователь безопасности Мейтар Палас, работающий в JFrog, дал угрозе имя GhostClaw, а внутреннее название вредоноса — GhostLoader.
Пакет-шпион в npm: как фальшивый установщик OpenClaw крадёт пароли и клонирует браузеры на macOS
Изображение носит иллюстративный характер

Механизм заражения запускался сразу после установки. Пакет использовал хук postinstall, который автоматически выполнял команду npm i -g @openclaw-ai/openclawai — то есть переустанавливал себя глобально. Через свойство bin в файле package.json он прописывал бинарник OpenClaw, указывающий на скрипт scripts/setup.js, и добавлял его в переменную PATH. После этого вредонос становился обычной командой в терминале, доступной из любой точки системы. Выглядело всё настолько буднично, что заподозрить неладное было практически невозможно.

Первая стадия атаки — файл setup.js — работала с поразительной хитростью. Пользователь видел убедительный интерфейс командной строки с анимированными полосами прогресса, имитирующими процесс установки. Потом на экране появлялся поддельный запрос авторизации iCloud Keychain, предлагавший ввести системный пароль macOS. Чистая социальная инженерия: жертва сама отдавала свой пароль. После этого скрипт обращался к серверу управления (C2) и получал зашифрованный JavaScript-payload второй стадии. Код расшифровывался, записывался во временный файл и запускался как фоновый процесс. Через 60 секунд временный файл удалялся — чтобы замести следы.

Если Safari оказывался недоступен из-за ограничений, вредонос шёл ещё дальше. Он вызывал диалоговое окно AppleScript, которое настоятельно рекомендовало пользователю предоставить терминалу полный доступ к диску (Full Disk Access). В окне были пошаговые инструкции и кнопка, открывавшая «Системные настройки» напрямую. Продуманность этого шага поражает — атакующие явно знали повадки пользователей macOS и рассчитывали на их доверчивость к системным подсказкам.

Полезная нагрузка второй стадии представляла собой примерно 11 700 строк JavaScript-кода. По сути это был полноценный RAT (троян удалённого доступа) и стилер в одном флаконе. Среди его возможностей: закрепление в системе, сбор данных, расшифровка информации из браузеров, связь с C2-сервером, SOCKS5-прокси и — что самое опасное — клонирование браузера в реальном времени. Вся инфраструктура управления была завязана на домен trackpipe[.]dev.

Перечень данных, которые вредонос стремился украсть, впечатляет своим размахом. Он вытаскивал локальную базу login.keychain-db и все базы iCloud Keychain. Собирал учётные данные, куки, данные кредитных карт и автозаполнение из Chromium-браузеров: Google Chrome, Microsoft Edge, Brave, Vivaldi, Opera, Yandex и Comet. Крипто-кошельки тоже были под ударом — и десктопные приложения, и браузерные расширения, и сид-фразы. Отдельно охотился за облачными и девелоперскими ключами от AWS, Microsoft Azure, Google Cloud, Kubernetes, Docker, GitHub. SSH-ключи и конфигурации ИИ-агентов тоже попадали в сеть.

Если жертва предоставляла полный доступ к диску, список украденного разрастался ещё сильнее. GhostClaw выгребал Apple Notes, историю iMessage, данные Safari, конфигурации почтовых аккаунтов и информацию об учётной записи Apple. Фактически, одно неосторожное нажатие «Разрешить» в системных настройках открывало злоумышленникам доступ ко всей цифровой жизни пользователя.

Собранные данные упаковывались в архив tar.gz и отправлялись по трём каналам: напрямую на C2-сервер, через Telegram Bot API и через файлохранилище . Тройная схема гарантировала, что информация дойдёт до атакующих, даже если один из каналов окажется заблокирован. После отправки вредонос переходил в режим демона и каждые 3 секунды проверял буфер обмена на наличие 9 заранее определённых паттернов: приватных ключей, WIF-ключей, приватных ключей SOL, RSA-ключей, BTC-адресов, Ethereum-адресов, ключей AWS, OpenAI и Strike. Всё найденное мгновенно улетало к злоумышленникам.

Набор C2-команд превращал GhostClaw в полноценный инструмент дистанционного управления. Оператор мог отслеживать запущенные процессы, сканировать входящие сообщения iMessage в реальном времени, выполнять произвольные shell-команды, открывать URL в браузере жертвы, загружать дополнительные payload'ы и скачивать файлы. Были предусмотрены запуск и остановка SOCKS5-прокси, получение списка установленных браузеров, самоуничтожение и обновление модуля.

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

178 скачиваний за неделю — число небольшое. Но если учесть, что среди жертв могли оказаться разработчики с доступом к облачным средам и корпоративным ресурсам, масштаб потенциального ущерба от GhostClaw трудно переоценить. Этот случай в очередной раз показывает, насколько легко вредоносный код проникает в экосистему npm и насколько мало нужно, чтобы запустить цепочку компрометации — достаточно одной команды npm install.


Новое на сайте

19518«Липовый календарь»: как расписание превращает работников в расходный материал 19517Вредоносные Rust-пакеты и ИИ-бот крадут секреты разработчиков через CI/CD-пайплайны 19516Как хакеры за 72 часа превратили npm-пакет в ключ от целого облака AWS 19515Как WebDAV-диск и поддельная капча помогают обойти антивирус? 19514Могут ли простые числа скрываться внутри чёрных дыр? 19513Метеорит пробил крышу дома в Германии — откуда взялся огненный шар над Европой? 19512Уязвимости LeakyLooker в Google Looker Studio открывали доступ к чужим базам данных 19511Почему тысячи серверов оказываются открытой дверью для хакеров, хотя могли бы ею не быть? 19510Как исследователи за четыре минуты заставили ИИ-браузер Perplexity Comet попасться на... 19509Может ли женщина без влагалища и шейки матки зачать ребёнка естественным путём? 19508Зачем учёные из Вены создали QR-код, который невозможно увидеть без электронного... 19507Девять уязвимостей CrackArmor позволяют получить root-доступ через модуль безопасности... 19506Могут ли чат-боты заражать нас собственными иллюзиями? 19505Почему калифорнийские пожары всё чаще вспыхивают «не по расписанию»? 19504Массовые патчи от SAP, Microsoft, Adobe и HPE: что закрыли и чего бояться
Ссылка