
NWH Stealer का स्टैटिक विश्लेषण और पेलोड निष्कर्षण। इसमें Bun JavaScript Runtime के माध्यम से फ़ाइलरहित निष्पादन, इन-मेमोरी क्लिपबोर्ड छवि चोरी (image/png), और AWS/Cloudflare R2 का दुरुपयोग करते हुए Cloud C2 एक्सफ़िल्ट्रेशन की गहन जाँच शामिल है।
Binary Ninja में लोड किया गया NWH Stealer सैंपल एक आश्चर्यजनक तकनीक का खुलासा करता है: यह Bun (एक वैध JavaScript रनटाइम) के स्ट्रिंग्स, CLI आर्ग्युमेंट्स और डॉक्यूमेंटेशन लिंक का भारी मात्रा में उपयोग करता है। "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 त्रुटि संदेश और टेस्ट मैचर। ऑब्फस्केशन: स्ट्रिंग्स को कंट्रोल कैरेक्टर और ANSI एस्केप कोड (जैसे, [1m, [0m, \n) के साथ मिश्रित किया गया है, जिससे स्टैटिक सिग्नेचर स्कैनिंग कठिन हो जाती है।
Living off the Land (LotL): Bun रनटाइम से वैध स्ट्रिंग्स की नकल करके, NWH Stealer डेवलपर वातावरण में घुल-मिल जाता है। AV समाधान और सैंडबॉक्स उस निष्पादन वातावरण से उत्पन्न होने वाले ट्रैफ़िक या API कॉल्स को फ़्लैग करने की संभावना कम रखते हैं जो "Bun" जैसा दिखता है। स्ट्रिंग ऑब्फस्केशन: एन्क्रिप्टेड या ऑब्फस्केटेड पेलोड एरे (data_143aba5b8) के साथ वैध स्ट्रिंग्स एम्बेड करने से वास्तविक दुर्भावनापूर्ण संकेतकों को अलग करना बहुत कठिन हो जाता है। डिज़ाइन द्वारा एवेज़न: मैलवेयर लेखकों ने विशेष रूप से एक लोकप्रिय, आधुनिक डेवलपर टूल (Bun) चुना ताकि डेवलपर या CI/CD वातावरण में स्टीलर की उपस्थिति को छिपाया जा सके।

Binary Ninja में विश्लेषण जारी रखते हुए, NWH Stealer अपनी ड्रॉपर और निष्पादन श्रृंखला का खुलासा करता है। मैलवेयर केवल Bun होने का नाटक नहीं करता; यह वैध bun-windows-x64 आर्काइव डाउनलोड करने के लिए सक्रिय रूप से आधिकारिक GitHub रिपॉज़िटरी तक पहुँचता है। हालाँकि, बाद के स्ट्रिंग्स एक दुर्भावनापूर्ण PowerShell निष्पादन रूटीन को उजागर करते हैं जिसे डाउनलोड किए गए पेलोड को एवेज़न फ़्लैग्स के साथ चलाने के लिए डिज़ाइन किया गया है।
डाउनलोड URL: https://github.com/oven-sh/bun/releases/download/canary/bun-windows-x64-baseline.zip – कवर स्टोरी स्थापित करने या LOLBin के रूप में उपयोग करने के लिए वैध Bun रनटाइम डाउनलोड करता है। निकाले गए पेलोड पाथ: 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) के साथ मिलकर, इंगित करती है कि स्टीलर एक फ़ाइललेस निष्पादन तकनीक का उपयोग करता है। यह एक Base64-एन्कोडेड डेटा URI बनाता है और उसे स्थानीय रूप से निष्पादित करता है, संभवतः दुर्भावनापूर्ण JavaScript/WebAssembly को सीधे एक चल रहे वातावरण में इंजेक्ट करने के लिए, बिना डिस्क पर फ़ाइल लिखे।
डेटा URI स्कीम: http://localhost:data:;base64, – localhost की ओर इशारा करते हुए एक इनलाइन Base64 पेलोड का निर्माण करता है। यह नेटवर्क फ़िल्टर को बायपास करने और मेमोरी से कोड निष्पादित करने की एक ज्ञात तकनीक है। V8 / Node.js / *Bun इंटर्नल्स: // @bun / bun-cjs / bytecode – JavaScript या पूर्व-संकलित V8 बाइटकोड निष्पादित करने के लिए Bun रनटाइम द्वारा उपयोग किए जाने वाले विशिष्ट फ़्लैग। --filename / --dirname / use asm – मेमोरी में रॉ WebAssembly या JavaScript मॉड्यूल लोड और ऑप्टिमाइज़ करने के लिए उपयोग किए जाने वाले V8 इंजन फ़्लैग। संकलित पेलोड आर्टिफैक्ट्स: bundler\bundle_v2.zig – Bun बंडलर को संदर्भित करता है, जो कवर स्टोरी को और मज़बूत करता है। SEHRefreshSigS / SEHRefreshSigS_57azaspm – संभवतः अस्पष्टीकृत फ़ंक्शन नाम या Base64 पेलोड के लिए एन्क्रिप्शन कुंजियाँ। फ़ाइललेस इंजेक्शन संकेतक: seTaskComplete.read_file / resolve – एसिंक्रोनस फ़ाइल/स्ट्रीम रीडिंग और मॉड्यूल रिज़ॉल्यूशन रूटीन।
फ़ाइललेस निष्पादन (एवेज़न): data:;base64 URI का उपयोग करके, स्टीलर अपने पेलोड को पूरी तरह से मेमोरी में निष्पादित करता है। इससे डिस्क पर कोई निष्पादन योग्य फ़ाइल नहीं बचती जिसे AV स्कैन कर सके, जिससे पारंपरिक सिग्नेचर-आधारित पहचान बायपास हो जाती है। लोकलहोस्ट का दुरुपयोग: localhost उपसर्ग फ़ायरवॉल और EDR को यह सोचने में धोखा देता है कि ट्रैफ़िक आंतरिक है (और इसलिए सुरक्षित है), जबकि वास्तविक दुर्भावनापूर्ण सामग्री डिकोड और निष्पादित की जाती है। V8 बाइटकोड का दुरुपयोग: --filename और use asm के माध्यम से बाइटकोड लोड करने का अर्थ है कि स्टीलर रॉ, संकलित JavaScript/WebAssembly निष्पादित कर सकता है, जिससे रिवर्स इंजीनियरिंग सादे टेक्स्ट स्क्रिप्ट की तुलना में काफी कठिन हो जाती है। Bun रनटाइम का दुरुपयोग: // @bun और bun-cjs स्ट्रिंग्स पुष्टि करती हैं कि स्टीलर अपने दुर्भावनापूर्ण इन-मेमोरी कोड के लिए एक वैध निष्पादन इंजन के रूप में डाउनलोड किए गए Bun रनटाइम का उपयोग कर रहा है।
क्लाउड पर निर्भर रहना: वैध क्लाउड सेवाओं (AWS, Cloudflare R2) का उपयोग करके, स्टीलर अपने एक्सफ़िल्ट्रेशन ट्रैफ़िक को सामान्य एंटरप्राइज़ क्लाउड उपयोग के साथ मिला देता है, जिससे पहचान अत्यंत कठिन हो जाती है

यह खंड NWH स्टीलर की क्लाउड इंफ्रास्ट्रक्चर और डेवलपर एसेट्स को टार्गेट करने की प्रवृत्ति को और उजागर करता है। एक ही हार्डकोडेड C2 IP पर निर्भर रहने के बजाय, मैलवेयर में प्रमुख क्लाउड प्रदाताओं (Cloudflare R2, AWS), डेवलपर टूलचेन (Visual Studio, Node.js), और HTTP स्टेटस कोड के लिए स्ट्रिंग्स शामिल हैं। यह एक डायनामिक C2 रिज़ॉल्यूशन या क्लाउड वातावरण को लक्षित करने वाली एक व्यापक क्रेडेंशियल हार्वेस्टिंग सूची का संकेत देता है।