
Статический анализ и извлечение полезной нагрузки NWH Stealer. Глубокое изучение безфайлового выполнения через Bun JavaScript Runtime, кражи изображений из буфера обмена в памяти (image/png) и эксфильтрации через Cloud C2 со злоупотреблением AWS/Cloudflare R2.
Образец NWH Stealer, загруженный в Binary Ninja, раскрывает неожиданную технику: он активно использует строки, аргументы CLI и ссылки на документацию из Bun (легитимной среды выполнения JavaScript). Встраивая легитимный текст вроде "Learn more about Bun" и ссылки-приглашения в Discord, вредоносная программа пытается выдать себя за безобидный инструмент разработчика или фреймворк, скрывая свои истинные вредоносные намерения в секции .rdata.
bun install --help / bun test --help / bun build --help – имитирует использование CLI Bun https://bun.com/docs / Join our Discord community: https://bun.com/discord – встраивает официальную документацию Bun и ссылки на сообщество. markdown / ToAsymmetricMatcher / Invalid regex: bunx – стандартные сообщения об ошибках Bun и тестовые матчеры. Обфускация: строки перемежаются управляющими символами и ANSI-escape-последовательностями (например, [1m, [0m, \n), что затрудняет статическое сканирование сигнатур.
Living off the Land (LotL): копируя легитимные строки из среды выполнения Bun, NWH Stealer сливается с окружением разработчика. Антивирусные решения и песочницы с меньшей вероятностью пометят трафик или вызовы API, исходящие из среды выполнения, которая выглядит как "Bun". Обфускация строк: встраивание легитимных строк рядом с зашифрованными или обфусцированными массивами полезной нагрузки (data_143aba5b8) значительно усложняет выделение реальных вредоносных индикаторов. Уклонение по замыслу: авторы вредоносной программы специально выбрали популярный современный инструмент разработчика (Bun), чтобы замаскировать присутствие стилера в средах разработки или CI/CD.

Продолжая анализ в Binary Ninja, NWH Stealer раскрывает свою цепочку дроппера и выполнения. Вредоносная программа не просто притворяется Bun; она активно обращается к официальному репозиторию GitHub, чтобы скачать легитимный архив bun-windows-x64. Однако последующие строки раскрывают вредоносную процедуру выполнения PowerShell, предназначенную для запуска загруженной полезной нагрузки с флагами уклонения.
URL загрузки: https://github.com/oven-sh/bun/releases/download/canary/bun-windows-x64-baseline.zip – загружает легитимную среду выполнения Bun для создания легенды прикрытия или использования в качестве LOLBin. Пути извлечённой полезной нагрузки: bun-windows-x64-baseline\bun-profile.exe bun-windows-x64-baseline\bun.exe Цепочка выполнения PowerShell:
powershell
-NoProfile (пропускает загрузку профиля PowerShell пользователя)
-ExecutionPolicy Bypass (обходит ограничения на выполнение скриптов)
-Command (выполняет встроенную команду)
--revision / --version (вероятно, используются как аргументы для загруженной полезной нагрузки, чтобы это выглядело как легитимная проверка версии).
Цепочка поставок / Злоупотребление GitHub: загружая из официального репозитория github.com/oven-sh/bun, стилер обходит сетевые фильтры, блокирующие неизвестные домены. Выполнение LOLBin: загруженный bun.exe или bun-profile.exe используется как легитимная обёртка для выполнения вредоносных команд, сливаясь с обычной активностью разработчика. Уклонение PowerShell: флаги -NoProfile и -ExecutionPolicy Bypass — классические техники, гарантирующие запуск вредоносного скрипта без блокировки системными политиками или пользовательскими конфигурациями.

Критический раздел NWH Stealer раскрывает механизм доставки полезной нагрузки в памяти. Наличие строки http://localhost:data:;base64, в сочетании с байткодом движка V8 (--filename, use asm, bytecode) указывает на то, что стилер использует технику бесфайлового выполнения. Он формирует data URI в кодировке Base64 и выполняет его локально, вероятно, чтобы внедрить вредоносный JavaScript/WebAssembly непосредственно в работающую среду без записи файла на диск.
Схема Data URI: http://localhost:data:;base64 – формирует встроенную полезную нагрузку Base64, указывающую на localhost. Это известная техника обхода сетевых фильтров и выполнения кода из памяти. V8 / Node.js / *Внутренности Bun: // @bun / bun-cjs / bytecode – специфические флаги, используемые средой выполнения Bun для выполнения JavaScript или предварительно скомпилированного байт-кода V8. --filename / --dirname / use asm – флаги движка V8, используемые для загрузки и оптимизации сырых модулей WebAssembly или JavaScript в памяти. Артефакты скомпилированной полезной нагрузки: bundler\bundle_v2.zig – ссылки на сборщик Bun, дополнительно укрепляющие легенду прикрытия. SEHRefreshSigS / SEHRefreshSigS_57azaspm – вероятно, обфусцированные имена функций или ключи шифрования для полезной нагрузки Base64. Индикаторы бесфайловой инъекции: seTaskComplete.read_file / resolve – асинхронные процедуры чтения файлов/потоков и разрешения модулей.
Бесфайловое выполнение (обход защиты): используя URI data:;base64, стилер выполняет свою полезную нагрузку полностью в памяти. Это не оставляет исполняемого файла на диске для сканирования антивирусом, обходя традиционное обнаружение на основе сигнатур. Злоупотребление localhost: префикс localhost обманывает межсетевые экраны и EDR, заставляя их думать, что трафик является внутренним (и, следовательно, безопасным), в то время как фактическое вредоносное содержимое декодируется и выполняется. Злоупотребление байт-кодом V8: загрузка байт-кода через --filename и use asm означает, что стилер может выполнять сырой скомпилированный JavaScript/WebAssembly, что делает обратную разработку значительно сложнее, чем для обычных текстовых скриптов. Злоупотребление средой выполнения Bun: строки // @bun и bun-cjs подтверждают, что стилер использует загруженную среду выполнения Bun в качестве легитимного движка выполнения для своего вредоносного кода в памяти.
Жизнь за счёт облака: используя легитимные облачные сервисы (AWS, Cloudflare R2), стилер смешивает свой трафик эксфильтрации с обычным корпоративным облачным использованием, что делает обнаружение крайне сложным

Этот раздел дополнительно раскрывает нацеливание NWH Stealer на облачную инфраструктуру и ресурсы разработчиков. Вместо того чтобы полагаться на один жёстко закодированный IP-адрес C2, вредоносное ПО содержит строки для крупных облачных провайдеров (Cloudflare R2, AWS), инструментальных цепочек разработчиков (Visual Studio, Node.js) и HTTP-кодов состояния. Это указывает на динамическое разрешение C2 или обширный список сбора учётных данных, нацеленный на облачные среды.