
Invoke-ArgFuscator एक ओपन-सोर्स, क्रॉस-प्लेटफ़ॉर्म PowerShell मॉड्यूल है जो सामान्य सिस्टम-नेटिव एक्ज़ीक्यूटेबल्स के लिए अस्पष्ट (obfuscated) कमांड-लाइन उत्पन्न करने में मदद करता है।
░█░█▄░█░█▒█░▄▀▄░█▄▀▒██▀░▒░ ▄▀▄▒█▀▄░▄▀▒▒█▀░█▒█░▄▀▀░▄▀▀▒▄▀▄░▀█▀░▄▀▄▒█▀▄░ ░█░█▒▀█░▀▄▀░▀▄▀░█▒█░█▄▄░▀▀░█▀█░█▀▄░▀▄█░█▀░▀▄█▒▄██░▀▄▄░█▀█░▒█▒░▀▄▀░█▀▄░
Invoke-ArgFuscator एक ओपन-सोर्स, क्रॉस-प्लेटफ़ॉर्म PowerShell मॉड्यूल है जो Windows, Linux और macOS पर सामान्य सिस्टम-नेटिव निष्पादनयोग्य (executables) के लिए अस्पष्ट (obfuscated) कमांड-लाइन उत्पन्न करने में मदद करता है।
👉 ArgFuscator के इंटरैक्टिव संस्करण का उपयोग ArgFuscator.net पर करें 🚀
कमांड-लाइन अस्पष्टीकरण (T1027.010) किसी प्रक्रिया की कमांड लाइन में हेरफेर करके किसी कमांड के वास्तविक इरादे को छिपाना है। Windows, Linux और macOS में, कई एप्लिकेशन पारित कमांड-लाइन तर्कों को अप्रत्याशित तरीकों से पार्स करते हैं, जिससे ऐसी स्थितियाँ उत्पन्न होती हैं जिनमें कुछ वर्णों का सम्मिलन, विलोपन और/या प्रतिस्थापन प्रोग्राम की निष्पादन प्रक्रिया को नहीं बदलता है। सफल कमांड-लाइन अस्पष्टीकरण AV और EDR सॉफ़्टवेयर जैसे रक्षात्मक उपायों को विफल करने की संभावना रखता है, और कुछ मामलों में पहचान को पूरी तरह से बायपास कर सकता है।
हालाँकि पिछले शोध ने कमांड-लाइन अस्पष्टीकरण के जोखिमों को उजागर किया है, अधिकतर असुरक्षित (सिस्टम-नेटिव) एप्लिकेशनों के वृत्तांतिक उदाहरणों के साथ, इस तकनीक के संबंध में ज्ञान का एक अभाव (knowledge vacuum) है। यह परियोजना विभिन्न कमांड-लाइन अस्पष्टीकरण तकनीकों का दस्तावेजीकरण और प्रदर्शन करने वाला, तथा प्रत्येक के लिए लोकप्रिय एप्लिकेशनों की संवेदनशीलता दर्ज करने वाला एक केंद्रीकृत संसाधन प्रदान करके इस अभाव को दूर करना चाहती है।
यह मॉड्यूल PowerShell/pwsh का समर्थन करने वाले किसी भी ऑपरेटिंग सिस्टम पर काम करता है; इसमें Windows, macOS और Linux शामिल हैं।
brew पहले से इंस्टॉल है, तो PowerShell का नवीनतम संस्करण इंस्टॉल करने के लिए brew install powershell/tap/powershell चलाएँ। वैकल्पिक इंस्टॉलेशन विकल्पों के लिए, Microsoft के दस्तावेज़ देखें।इस मॉड्यूल को इंस्टॉल करने का सबसे सरल तरीका निम्नलिखित PowerShell कमांड के माध्यम से है:
Install-Module -Name Invoke-ArgFuscator
मॉड्यूल का उपयोग करने के लिए, PowerShell के भीतर से Invoke-ArgFuscator फ़ंक्शन को कॉल करें, उदाहरण के लिए:
a. यदि आप एक कमांड लाइन को कमांड-लाइन तर्क के रूप में पास करना चाहते हैं जिसे आप अस्पष्ट करना चाहते हैं (मान लें कि यह ArgFuscator.net द्वारा समर्थित है):
# Windows
powershell /c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
b. अपनी स्वयं की मॉडल फ़ाइलों1 का उपयोग करने के लिए:
# Windows
powershell /c "Invoke-ArgFuscator -InputFile path\to\file.json"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -InputFile path/to/file.json"
इस रिपॉज़िटरी को अपने डिवाइस पर क्लोन करें।
PowerShell के माध्यम से Invoke-ArgFuscator.ps1 को कॉल करें, उदाहरण के लिए:
a. इंटरैक्टिव रूप से चलाने के लिए, मानक इनपुट (stdin) के माध्यम से एक मॉडल फ़ाइल1 का पथ पास करें:
# Windows
powershell .\Invoke-ArgFuscator.ps1
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1
b. मॉडल फ़ाइल1 का पथ कमांड-लाइन तर्क के रूप में पास करने के लिए:
# Windows
powershell .\Invoke-ArgFuscator.ps1 -InputFile "path\to\file.json"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -InputFile "path/to/file.json"
c. एक कमांड लाइन को कमांड-लाइन तर्क के रूप में पास करने के लिए जिसे आप अस्पष्ट करना चाहते हैं:
ध्यान दें कि इसके लिए models/ फ़ोल्डर को Invoke-ArgFuscator.ps1 के समान फ़ोल्डर में मौजूद होना आवश्यक है।
# Windows
powershell .\Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
चूँकि Invoke-ArgFuscator एक PowerShell मॉड्यूल है, आप इस परियोजना की कार्यक्षमता को अपने स्वयं के PowerShell प्रोजेक्ट में जोड़ सकते हैं।
Invoke-ArgFuscator का लाभ उठाने के लिए, निम्नलिखित जोड़ें
Import-Module Invoke-ArgFuscator
अपनी PowerShell फ़ाइल में, और इसे निम्नलिखित में से किसी एक तरीके से कॉल करें:
Invoke-ArgFuscator -InputFile $InputFile -n $n
Invoke-ArgFuscator -Command $Command -Platform $Platform -n $n
जहाँ
$InputFile एक string है जिसमें मॉडल फ़ाइल का (सापेक्ष/निरपेक्ष) फ़ाइल पथ होता है, $Profile एक ऐसा integer है जो 0 से अधिक या उसके बराबर है और प्रदान किए गए फ़ाइल पथ के भीतर उस प्रोफ़ाइल इंडेक्स को दर्शाता है जिसे लक्षित किया जाना चाहिए (वैकल्पिक), और $n एक integer है जो 0 से अधिक है, अस्पष्ट कमांड-लाइन समकक्षों की संख्या के लिए जिन्हें उत्पन्न किया जाना चाहिए (वैकल्पिक); या,$Command एक string है जिसमें वह कमांड लाइन होती है जिसे आप अस्पष्ट करना चाहते हैं, $Platform एक string है जिसमें प्रासंगिक प्लेटफ़ॉर्म होता है (जैसे windows, वैकल्पिक), और $n एक integer है जो 0 से अधिक है, अस्पष्ट कमांड-लाइन समकक्षों की संख्या के लिए जिन्हें उत्पन्न किया जाना चाहिए (वैकल्पिक)।ये ArgFuscator.net पर 'Download' विकल्प के माध्यम से उत्पन्न किए जा सकते हैं, या GitHub से डाउनलोड किए जा सकते हैं। ↩ ↩2 ↩3