PowerShell डीऑब्फ़स्केटर
ऑब्फ़स्केटेड PowerShell कमांड या स्क्रिप्ट पेस्ट करें। यह आपके ब्राउज़र में परत-दर-परत डिकोड होती है — कुछ भी अपलोड नहीं होता, कुछ भी चलाया नहीं जाता — और परिणाम निष्क्रिय टेक्स्ट के रूप में दिखाया जाता है, संदिग्ध पैटर्न जाँचने योग्य संकेतों के रूप में सूचीबद्ध होते हैं।
PowerShell ऑब्फ़स्केशन स्क्रिप्ट क्या करती है, इसे परतों के पीछे छिपाता है: Base64 -EncodedCommand, gzip संपीड़न, कैरेक्टर कोड, स्ट्रिंग संयोजन, -f फ़ॉर्मेट ऑपरेटर और बैकटिक एस्केप — हर परत बारी-बारी से हटाई जाती है जब तक पठनीय टेक्स्ट न बचे, या वह बिंदु जहाँ स्थिर खोलना रुक जाता है। यह टूल उन परतों को एक-एक करके हटाता है और हर कदम दिखाता है, ताकि आप स्क्रिप्ट को चलाए बिना देख सकें कि वह क्या कहती है। यदि स्क्रिप्ट Windows इवेंट लॉग से आई है, तो EVTX व्यूअर .evtx फ़ाइल पढ़ता है और 4104 इवेंट चिह्नित करता है; अन्य टेक्स्ट लॉग के लिए लॉग पार्सर महत्वपूर्ण पंक्तियाँ खोजता है। साथी लेख PowerShell स्क्रिप्ट को डीऑब्फ़स्केट कैसे करें में परतों और सुरक्षित कार्यप्रवाह को गद्य में समझाया गया है।
अंतिम अपडेट:
इवेंट 4104 (PowerShell स्क्रिप्ट ब्लॉक लॉगिंग) लंबी स्क्रिप्ट को क्रमांकित टुकड़ों में बाँटता है। टुकड़े पेस्ट करें — हेडर किसी भी क्रम में — और वे ScriptBlockId से समूहीकृत, MessageNumber से क्रमित होकर जुड़ जाते हैं। गायब हिस्से चिह्नित होते हैं, और पुनर्संयोजित टेक्स्ट डीऑब्फ़स्केटर को भेजा जा सकता है।
🔒 आपकी स्क्रिप्ट आपके ब्राउज़र में खुलती है और कभी आपके डिवाइस को नहीं छोड़ती। कोई खाता नहीं, कोई अपलोड नहीं, कोई सर्वर कॉल नहीं — और यहाँ कुछ भी कभी चलाया नहीं जाता।
आपकी पेस्ट की गई स्क्रिप्ट का क्या होता है
आपके ब्राउज़र से कुछ भी बाहर नहीं जाता। स्क्रिप्ट इस पेज के JavaScript द्वारा स्थानीय रूप से खोली जाती है: कोई अपलोड नहीं, कोई सर्वर कॉल नहीं, कोई भंडारण नहीं, कोई खाता नहीं। यह मायने रखता है क्योंकि संदिग्ध स्क्रिप्ट कभी चैट में पेस्ट नहीं करनी चाहिए — चैट उसे चला सकती है, उद्धृत कर सकती है या सहेज सकती है — और यह देखने के लिए कि वह क्या करती है, उसे कभी चलाना नहीं चाहिए। पेज बंद करते ही वह हट जाती है।
स्वच्छ परिणाम क्या साबित नहीं करता
स्वच्छ परिणाम सुरक्षा का प्रमाण नहीं है। इसका मतलब है कि कोई ज्ञात परत लागू नहीं हुई और कोई संकेत नहीं मिला — गतिशील रूप से बनी स्ट्रिंग, एन्क्रिप्टेड पेलोड या केवल रनटाइम पर मौजूद मान को स्थिर रूप से खोला नहीं जा सकता, और बिना संकेत वाली स्क्रिप्ट भी दुर्भावनापूर्ण हो सकती है।
संकेत मिलना दुर्भावना का प्रमाण नहीं है। डाउनलोड क्रैडल, IEX और एन्कोडेड कमांड के प्रशासन और तैनाती में वैध उपयोग हैं; हर मिलान संदर्भ में जाँचने योग्य संकेत है, फैसला नहीं।
अज्ञात स्क्रिप्ट को यह जानने के लिए कभी न चलाएँ कि वह क्या करती है। उसे निष्क्रिय रूप से डिकोड करें, परिणाम अपने EDR या सैंडबॉक्स को सौंपें, और डिकोड किए गए टेक्स्ट को एन्कोडेड रूप जितनी ही शंका से देखें — वह साक्ष्य है, स्वास्थ्य प्रमाणपत्र नहीं।
खोलना कैसे काम करता है
टूल आठ परतों को क्रम से, एक कदम में एक, आज़माता है और तब तक दोहराता है जब तक कोई परत लागू न हो या दस परतें खुल न जाएँ: -EncodedCommand निष्कर्षण (Base64 से UTF-16LE, विफलता पर UTF-8); नग्न Base64 ब्लॉब; gzip या deflate विसंपीड़न (इनपुट पहले Base64 में लिपटा हो सकता है); [char] और [char[]] कोड अनुक्रम; मिश्रित उद्धरणों और पंक्तियों में स्ट्रिंग संयोजन; -f फ़ॉर्मेट ऑपरेटर; बैकटिक एस्केप हटाना; और ${...} व $चर प्लेसहोल्डर की सूची, जो कभी हल नहीं किए जाते क्योंकि उनके मान केवल रनटाइम पर मौजूद होते हैं। हर कदम पहले और बाद का टेक्स्ट, अक्षर गणना सहित, दिखाता है।
टूल क्या नहीं करता: यह कभी कुछ भी चलाता नहीं है — परिणाम निष्क्रिय टेक्स्ट है, और पेज उसे गलती से भी नहीं चला सकता। यह गतिशील रूप से बनी स्ट्रिंग, एन्क्रिप्टेड पेलोड या केवल रनटाइम पर मौजूद मानों को खोल नहीं सकता, और यह नहीं आँकता कि स्क्रिप्ट सुरक्षित है या नहीं: संकेत पैटर्न मिलान हैं, और हर परत को मात देने वाली स्क्रिप्ट को "आगे खोला नहीं जा सका" बताया जाता है, कभी स्वच्छ नहीं।
स्क्रिप्ट ब्लॉक लॉगिंग (इवेंट 4104) उस स्क्रिप्ट टेक्स्ट को दर्ज करती है जिसे PowerShell ने वास्तव में चलाया, लेकिन लंबी स्क्रिप्ट लगभग 4 KB के टुकड़ों में बँट जाती हैं, जिनमें से हर एक में ScriptBlockId, MessageNumber और MessageTotal होता है। पुनर्संयोजन टैब टुकड़ों को ScriptBlockId से समूहित करता है, MessageNumber से क्रमित करता है, जोड़ता है, और गायब हिस्से को चिह्नित करता है — 3 में से 2 हिस्सों वाला समूह, जिसमें हिस्सा 2 गायब है, अधूरा है, और गायब टेक्स्ट का अनुमान नहीं लगाया जा सकता। पुनर्संयोजित टेक्स्ट उसी डीऑब्फ़स्केटर में जाता है।
अक्सर पूछे जाने वाले प्रश्न
परिणाम चलाने योग्य स्क्रिप्ट के बजाय निष्क्रिय टेक्स्ट के रूप में क्यों दिखाया जाता है?
क्योंकि डीऑब्फ़स्केशन का उद्देश्य संदिग्ध स्क्रिप्ट को पढ़ना है, चलाना नहीं। डिकोड किया गया टेक्स्ट फिर भी पेलोड डाउनलोड करके चला सकता है — उसे कॉपी बटन सहित निष्क्रिय टेक्स्ट के रूप में दिखाने से आप उसका निरीक्षण कर सकते हैं, अपने EDR या सैंडबॉक्स से साझा कर सकते हैं, और डबल-क्लिक का जोखिम कभी नहीं उठाते।
टूल "आगे खोला नहीं जा सका" पर रुक गया। अब क्या?
बचा हुआ टेक्स्ट ऐसी परत इस्तेमाल करता है जिसे यह टूल नहीं जानता, रनटाइम पर अपनी स्ट्रिंग बनाता है, या एन्क्रिप्टेड है — स्थिर खोलना अपनी सीमा पर पहुँच गया है। जानने के लिए उसे न चलाएँ: एन्कोडेड रूप और आंशिक डिकोड अपने EDR या सैंडबॉक्स को सौंपें, और अज्ञात परत को स्वच्छ परिणाम नहीं, शंका का कारण मानें।
संकेतों का क्या करूँ?
हर एक को उत्तर नहीं, प्रश्न मानें। डाउनलोड क्रैडल पूछता है कि URL कहाँ जाता है और क्या वह होस्ट अपेक्षित है; AMSI-बाईपास पैटर्न पूछता है कि स्क्रिप्ट स्कैनर को अंधा क्यों करना चाहती है; एन्कोडेड कमांड पूछता है कि एन्कोडिंग ने क्या छिपाया था। कुछ भी तय करने से पहले हर एक को संदर्भ में जाँचें — अपने EDR, अपने लॉग और उस मशीन में जहाँ से स्क्रिप्ट आई थी।