Вредоносный npm-пакет imgdecode прячет загрузчик шелл-кода в нативном аддоне Windows

· Безопасность
Исследователи SafeDep обнаружили в реестре npm пакет imgdecode — часть долгоиграющей кампании MALFEX, нацеленной на компрометацию систем Windows. Несмотря на огласку, пакет остаётся доступен и уже скачан 979 раз.

cover.svg

Специалисты по кибербезопасности из SafeDep описали вредоносный npm-пакет imgdecode, входящий в недавно раскрытую кампанию по атакам на цепочку поставок под названием MALFEX. Пакет загрузил в реестр 30 сентября 2026 года пользователь malfexteste8; на момент публикации он скачан 979 раз, остаётся доступным, а последняя версия — 1.0.3.

Всего в девяти строках JavaScript пакет подгружает скомпилированную Windows-библиотеку (DLL). Когда Node.js-программа вызывает require('imgdecode') из консоли Windows, библиотека скачивает с GitHub зашифрованный шелл-код, расшифровывает его и внедряет результат в новый процесс dllhost.exe.

Долгая кампания

MALFEX впервые задокументировали Checkmarx и CloudSEK. По их данным, неизвестный злоумышленник публикует вредоносные пакеты в npm с 6 августа 2023 года, используя пять учётных записей издателя. Из восьми выявленных пакетов три выступали загрузчиками трояна Overlord RAT, ещё три — cdn-img-fetch, img-to-native и native-runner — совместно скачивали и запускали стилер на Node.js. Третий путь заражения опирался на хук postinstall.

Любопытно, что оператор реагирует на публичные разоблачения и удаления из npm, оперативно выпуская замены: после удаления native-runner и img-to-native в течение двух дней появились runhelper и imgbundle, а в тот же день — первая версия imgdecode. От версии 1.0.1 библиотека сама скачивает и расшифровывает полезную нагрузку, а версия 1.0.3 вовсе избавилась от зависимостей от других пакетов MALFEX.

Встроенный рубильник

Аддон представляет собой 64-битную DLL, собранную в MSVC. Сначала она проверяет, не запущена ли в терминале разработчика, затем скачивает из репозитория cavecrew/proj файл banner.jpg, расшифровывает вложенную нагрузку ключом nif-runtime-2027 и внедряет её в dllhost.exe. При этом, если первые байты расшифрованных данных совпадают с сигнатурой JPEG или PNG, DLL останавливается — по мнению исследователей, так оператор может «выключить» загрузчик, подсунув картинку.

Финальная полезная нагрузка — стилер и средство удалённого доступа movinlike. Он проверяет наличие виртуальных машин, песочниц и инструментов вроде Process Monitor и Wireshark, после чего собирает файлы с seed-фразами и расширениями .kdbx, .pem, .ppk, .env, а также данные браузеров на Chromium, Discord, Telegram, криптокошельков и игровых сервисов. Через WebSocket он получает команды от C2-сервера, а для закрепления добавляет ключ в Registry Run и задачу планировщика с именем MicrosoftEdgeUpdateService.

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


Источник: The Hacker News

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.