एक उपकरण जो AMSI बाईपास उत्पन्न करने और PowerShell स्क्रिप्ट्स को तीन अलग-अलग अस्पष्टीकरण विधियों का उपयोग करके स्वचालित रूप से अस्पष्ट करने की अनुमति देता है।
एक उपकरण जो AMSI बाइपास के निर्माण और PowerShell स्क्रिप्ट के स्वचालित अस्पष्टीकरण (obfuscation) की अनुमति देता है, जो तीन अलग-अलग अस्पष्टीकरण विधियों का उपयोग करता है। GoAround MIT लाइसेंस के तहत लाइसेंस प्राप्त है। अधिक जानकारी के लिए LICENSE देखें।
यह उपकरण पेंटेस्टर्स को उनके दैनिक पोस्ट-एक्सप्लॉइटेशन कार्यों में सहायता करने और एक शोध परियोजना के रूप में विकसित किया गया है। इस उपकरण का किसी भी दुर्भावनापूर्ण उपयोग या तीसरे पक्ष के सिस्टम में बिना उचित अनुमति के उपयोग की पूरी जिम्मेदारी उपयोगकर्ता की होगी।
Installation
आपको केवल Github से कोड डाउनलोड करना होगा और विंडोज कमांड लाइन या PowerShell कंसोल से उपकरण चलाना होगा।
User's guide
GoAround के साथ आप दो अलग-अलग काम कर सकते हैं:
PowerShell स्क्रिप्ट जनरेट करना जिसमें AMSI बाइपास बनाने के लिए आवश्यक कोड हो। जनरेट किए गए कोड को स्वचालित रूप से अस्पष्ट किया जा सकता है।
PowerShell स्क्रिप्ट का स्वचालित अस्पष्टीकरण (obfuscation), विभिन्न तकनीकों का उपयोग करके।
उपयोगकर्ता दो अलग-अलग AMSI बाइपास और तीन अलग-अलग अस्पष्टीकरण तकनीकों में से चुन सकता है।
How to use it
इस उपकरण का उपयोग करने में सक्षम होने के लिए मशीन पर Python स्थापित होना आवश्यक है। निम्नलिखित पथ PATH पर्यावरण चर में जोड़े जाने चाहिए:
जहाँ कोष्ठक के बीच के सभी विकल्प वैकल्पिक हैं। इन विकल्पों के मान हैं:
-m या --mode: एकमात्र अनिवार्य विकल्प। यह उस ऑपरेशन मोड को इंगित करता है जिसमें उपकरण को चलना चाहिए। अधिक जानकारी के लिए अनुभाग Operation modes पर जाएं।
-t या --type: यह इंगित करता है कि जब mode bypass है तो किस प्रकार का बाइपास उपयोग किया जाएगा, या जब mode obfuscate है तो किस प्रकार का अस्पष्टीकरण विधि उपयोग की जाएगी। विभिन्न बाइपास प्रकारों को जानने के लिए अनुभाग Bypass types और उपलब्ध अस्पष्टीकरण विधियों के लिए अनुभाग Obfuscation methods देखें।
-f या --obfuscation: जब ऑपरेशन मोड bypass होता है, तो इस विकल्प का उपयोग बाइपास के लिए अस्पष्टीकरण प्रकार चुनने के लिए किया जाता है। यह विकल्प obfuscate मोड में उपलब्ध नहीं है, इसके बजाय "-t" या "--type" का उपयोग करें। विभिन्न अस्पष्टीकरण विधियों को जानने के लिए कृपयाकर अनुभाग Obfuscation methods पढ़ें।
-i या --input: केवल obfuscate मोड में उपयोग किया जाता है। यह उपयोगकर्ता को अस्पष्ट करने के लिए फ़ाइल चुनने की अनुमति देता है।
-o या --output: यह विकल्प उपयोगकर्ता को जनरेट की गई स्क्रिप्ट का नाम चुनने की अनुमति देता है। नाम ".ps1" में समाप्त होना चाहिए। डिफ़ॉल्ट रूप से, आउटपुट फ़ाइल का नाम "output.ps1" होगा।
इसके अलावा, thw निम्नलिखित विकल्प भी समर्थित हैं और उन्हें अकेले चलाया जाना चाहिए (बिना किसी अन्य विकल्प के):
-h या --help: उपयोगकर्ता को उपकरण के उपयोग गाइड को दिखाता है।
-v या --version: उपकरण का संस्करण संख्या दिखाता है।
Operation modes
दो ऑपरेशन मोड हैं, bypass और obfuscate, और उन्हें विकल्प "-m" या "--mode" के साथ चुना जाता है:
bypass: यह इंगित करने के लिए कि उपकरण को बाइपास मोड में चलना चाहिए। इस मामले में, AMSI बाइपास के कोड के साथ एक PS1 फ़ाइल जनरेट की जाएगी।
obfuscate: यह इंगित करने के लिए कि उपकरण को अस्पष्टीकरण मोड में चलना चाहिए। इस मामले में, उपकरण उपयोगकर्ता द्वारा विकल्प "-i" या "--input" (इस ऑपरेशन मोड में अनिवार्य) के साथ प्रदान की गई फ़ाइल को अस्पष्ट करेगा। अस्पष्ट कोड के साथ एक PS1 फ़ाइल जनरेट की जाएगी। अस्पष्टीकरण केवल PowerShell स्क्रिप्ट के लिए कार्यात्मक है।
Bypass types
bypass मोड (-m bypass) में, बाइपास प्रकार को विकल्प "-t" या "--type" के साथ इंगित किया जा सकता है।
इस समय, ये समर्थित बाइपास प्रकार हैं:
reflection: मैट ग्रेबर का रिफ्लेक्शन बाइपास।
scan_buffer_laine: पॉल लाने का AmsiScanBuffer पैच बाइपास।
यदि कोई प्रकार निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट रूप से reflection वाला उपयोग किया जाएगा।
Obfuscation methods
इस समय, उपकरण तीन अलग-अलग PowerShell अस्पष्टीकरण तकनीकों का समर्थन करता है।
bypass मोड में अस्पष्टीकरण के प्रकार का चयन करने के लिए, विकल्प "-f" या "--obfuscation" का उपयोग किया जाता है (यदि कोई निर्दिष्ट नहीं किया गया है, तो बाइपास अस्पष्ट नहीं किया जाएगा)। obfuscate मोड में अस्पष्टीकरण के प्रकार का चयन करने के लिए, विकल्प "-t" या "--type" का उपयोग किया जाता है (यदि कोई निर्दिष्ट नहीं किया गया है, तो concatenation तकनीक का उपयोग किया जाएगा)।
अस्पष्टीकरण प्रकारों के नाम इस प्रकार हैं:
mayus: यह randomcase तकनीक का उपयोग करके PowerShell कोड को बदल देगा। इससे कोड में मौजूद स्ट्रिंग्स प्रभावित नहीं होंगी। यह विधि फ़ाइल के हैश को बदल देगी।
concatenation: obfuscate मोड में डिफ़ॉल्ट रूप से उपयोग की जाने वाली विधि। यह कोड में मौजूद स्ट्रिंग्स को छोटी स्ट्रिंग्स के संयोजन में बदल देगी। स्ट्रिंग्स को यादृच्छिक रूप से विभाजित किया जाएगा, इसलिए हर बार एक ही इनपुट फ़ाइल के लिए कोड अलग होगा।
insertion: यह कोड में मौजूद स्ट्रिंग्स को स्ट्रिंग और वेरिएबल के संयोजन में बदल देगा। उदाहरण के लिए, यदि कोड में स्ट्रिंग "amsiutils" है, तो इसे "am$var_tfm0" से बदला जा सकता है, जहाँ var_tfm0 = "siutils"। स्ट्रिंग्स को यादृच्छिक रूप से विभाजित किया जाता है, इसलिए हर बार एक ही इनपुट फ़ाइल के लिए कोड अलग होगा। vairables का नाम "var_tfm{número}" प्रारूप का होगा, इसलिए, यदि मूल कोड में इन नामों के वेरिएबल हैं, तो उन्हें अस्पष्टीकरण चरण से पहले बदल दिया जाना चाहिए।
Examples
यहाँ आप कुछ उपयोग उदाहरण देख सकते हैं:
Show help menu
python main.py -h
python main.py --help
Show tool's version number
python main.py -v
python main.py --version
Generate reflection bypass obfuscated using variables insertion