
تحليل ساكن واستخراج الحمولة لـ NWH Stealer. يتضمن نظرة معمّقة على التنفيذ عديم الملفات عبر Bun JavaScript Runtime، وسرقة صور الحافظة من الذاكرة (image/png)، والتسريب عبر Cloud C2 بإساءة استخدام AWS/Cloudflare R2.
تكشف عينة NWH Stealer المحمّلة في Binary Ninja عن تقنية مفاجئة: فهي تستخدم بكثافة نصوصًا ووسائط سطر أوامر (CLI arguments) وروابط توثيق من Bun (وهو بيئة تشغيل JavaScript شرعية). فمن خلال تضمين نصوص شرعية مثل "Learn more about Bun" وروابط دعوات Discord، يحاول البرنامج الخبيث التنكّر في هيئة أداة تطوير أو إطار عمل حميد، بينما يخفي نيّته الخبيثة الحقيقية في قسم .rdata.
bun install --help / bun test --help / bun build --help – يحاكي استخدام Bun عبر سطر الأوامر (CLI) https://bun.com/docs / Join our Discord community: https://bun.com/discord – يضمّن توثيق Bun الرسمي وروابط المجتمع. markdown / ToAsymmetricMatcher / Invalid regex: bunx – رسائل خطأ Bun القياسية ومطابقات الاختبار (test matchers). التعتيم (Obfuscation): النصوص متشابكة مع محارف تحكّم (control characters) وأكواد هروب ANSI (مثل [1m، [0m، \n)، مما يجعل الفحص الثابت للتوقيعات (static signature scanning) صعبًا.
Living off the Land (LotL): من خلال نسخ نصوص شرعية من بيئة تشغيل Bun، يندمج NWH Stealer في بيئات المطوّرين. فحلول مكافحة الفيروسات (AV) وصناديق الحماية (sandboxes) أقل احتمالًا لرفع علامة على حركة المرور أو استدعاءات API الصادرة من بيئة تنفيذ تبدو وكأنها "Bun". تعتيم النصوص (String Obfuscation): إن تضمين نصوص شرعية إلى جانب مصفوفات حمولات مشفّرة أو معتّمة (data_143aba5b8) يجعل عزل مؤشرات الاختراق (indicators) الفعلية أكثر صعوبة بكثير. التهرّب بالتصميم (Evasion by Design): اختار مؤلفو البرنامج الخبيث تحديدًا أداة تطوير حديثة وشائعة (Bun) لتمويه وجود أداة السرقة (stealer) في بيئات المطوّرين أو بيئات CI/CD.

بمواصلة التحليل في Binary Ninja، يكشف NWH Stealer عن سلسلة الإسقاط (dropper) والتنفيذ الخاصة به. فالبرنامج الخبيث لا يتظاهر بأنه Bun فحسب؛ بل يتصل فعليًا بمستودع GitHub الرسمي لتنزيل أرشيف bun-windows-x64 الشرعي. غير أن النصوص اللاحقة تكشف عن روتين تنفيذ PowerShell خبيث مصمّم لتشغيل الحمولة المنزّلة مع رايات تهرّب (evasion flags).
رابط التنزيل (Download URL): https://github.com/oven-sh/bun/releases/download/canary/bun-windows-x64-baseline.zip – ينزّل بيئة تشغيل Bun الشرعية لإنشاء قصة تمويه أو لاستخدامها كـ LOLBin. مسارات الحمولة المستخرجة (Extracted Payload Paths): bun-windows-x64-baseline\bun-profile.exe bun-windows-x64-baseline\bun.exe سلسلة تنفيذ PowerShell:
powershell
-NoProfile (يتخطى تحميل ملف تعريف PowerShell الخاص بالمستخدم)
-ExecutionPolicy Bypass (يتجاوز قيود تنفيذ النصوص البرمجية)
-Command (ينفّذ الأمر المضمّن)
--revision / --version (يُرجَّح استخدامهما كوسائط للحمولة المنزّلة لإيهام بأنه فحص إصدار شرعي).
سلسلة التوريد (Supply Chain) / إساءة استخدام 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)، يشير إلى أن برنامج السرقة يستخدم تقنية تنفيذ بلا ملفات (fileless execution). فهو يبني معرّف URI من نوع data مُرمّز بـ Base64 وينفّذه محليًا، على الأرجح لحقن JavaScript/WebAssembly خبيث مباشرةً في بيئة قيد التشغيل دون كتابة ملف على القرص.
مخطط Data URI: http://localhost:data:;base64 – ينشئ حمولة Base64 مضمّنة تشير إلى localhost. هذه تقنية معروفة لتجاوز مرشّحات الشبكة وتنفيذ التعليمات البرمجية من الذاكرة. V8 / Node.js / *Bun Internals: // @bun / bun-cjs / bytecode – أعلام محددة يستخدمها وقت تشغيل Bun لتنفيذ JavaScript أو V8 bytecode المُجمّع مسبقًا. --filename / --dirname / use asm – أعلام محرك V8 المستخدمة لتحميل وتحسين وحدات WebAssembly أو JavaScript الخام في الذاكرة. مخرجات الحمولة المُجمّعة: bundler\bundle_v2.zig – يشير إلى bundler الخاص بـ Bun، مما يعزّز القصة التغطية بشكل أكبر. SEHRefreshSigS / SEHRefreshSigS_57azaspm – على الأرجح أسماء دوال أو مفاتيح تشفير مُشوّشة لحمولة Base64. مؤشرات الحقن بدون ملفات: seTaskComplete.read_file / resolve – روتينات غير متزامنة لقراءة الملفات/التدفقات وحلّ الوحدات.
التنفيذ بدون ملفات (التهرّب): باستخدام URI من نوع data:;base64، ينفّذ برنامج السرقة حمولته بالكامل في الذاكرة. لا يترك ذلك أي ملف قابل للتنفيذ على القرص ليفحصه برنامج مكافحة الفيروسات، متجاوزًا بذلك الكشف التقليدي القائم على التوقيعات. إساءة استخدام localhost: تخدع بادئة localhost جدران الحماية وأنظمة EDR لتعتقد أن حركة المرور داخلية (وبالتالي آمنة)، بينما يُفكّ ترميز المحتوى الخبيث الفعلي ويُنفّذ. إساءة استخدام V8 Bytecode: تحميل bytecode عبر --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 أو قائمة واسعة لجمع بيانات الاعتماد تستهدف البيئات السحابية.
البنية التحتية السحابية و C2: r2.cloudflarestorage.com – تخزين Cloudflare R2 (يُستخدم لتسريب البيانات أو استضافة الحمولات). amazonaws.com – بنية AWS التحتية (على الأرجح مستهدفة لسرقة بيانات الاعتماد أو تُستخدم كمرحّل C2). us-east-1 – معرّف منطقة AWS (يُستخدم لاستهداف حزم S3). أهداف المطورين / بيئات التطوير (جمع بيانات الاعتماد): NDARD.STANDARD.TA.INTELLIGENT.I / ERING.EXPRESS..ONEZONE.ONEZONE.IA – سلاسل مُشوّشة/مُجزّأة بوضوح تشير إلى Visual Studio / IntelliJ. GLACIER.GLACIER.IR.REDUCED.REDU – إشارات إلى AWS Glacier (خدمة النسخ الاحتياطي/الأرشفة). أعلام أذونات السحابة (للحركة الجانبية / رفع الصلاحيات): private / public-read / private-read-write / aws-exec-read **bucket-owner-read **/ bucket-owner-full-control