Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
PowerShellArmoury — सुरक्षा पेशेवरों के लिए एक PowerShell शस्त्रागार | Kitploit
उपकरण/GitHubGitHub/cfalta/powershellarmoury
एन्क्रिप्शन/डिक्रिप्शन उपकरणपेलोड जनरेशनस्क्रिप्टिंग और स्वचालनपेनिट्रेशन टेस्टिंगउपयोगिताएँ और फ्रेमवर्करेड टीमिंगArchived
GitHubcfalta/powershellarmoury

PowerShellArmoury

सुरक्षा पेशेवरों के लिए एक PowerShell शस्त्रागार

रिपॉजिटरी देखें
470692 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

[!IMPORTANT]
यह रिपॉजिटरी अब संग्रहीत हो गई है। हालाँकि यह एक मजेदार यात्रा थी, मुझे लगता है कि PSArmoury अपनी उपयोगिता खो चुका है।


PowerShellArmoury

पावरशेल आर्मरी पेंटेस्टर्स, "यहाँ रंग डालें"-टीमर्स और उन सभी के लिए है जो अपने अभियानों के दौरान विभिन्न पावरशेल टूल्स का उपयोग करते हैं। यह आपको अपनी सभी पसंदीदा पावरशेल स्क्रिप्ट्स को एक ही, अस्पष्टित फ़ाइल में डाउनलोड और स्टोर करने की अनुमति देता है।

आपको Rubeus, PowerView, ... को मैन्युअल रूप से अपडेट करने की चिंता करने की ज़रूरत नहीं है। बस एक बार कॉन्फ़िगरेशन फ़ाइल बनाएँ या टूल के साथ शामिल डिफ़ॉल्ट का उपयोग करें। अब से, आपको अगले अभियान पर जाने से पहले बस "New-PSArmoury" चलाना होगा। इसके अतिरिक्त, PSArmoury आपके कोड को अस्पष्ट करता है और एक शामिल AMSI बाईपास के साथ आता है। मॉड्यूलर डिज़ाइन से आपके लिए चोरी या अस्पष्टता कोड को बदलना आसान हो जाना चाहिए, यदि उस पर कोई डिटेक्शन हो।



सामान्य संरचना

PSArmoury का वर्तमान संस्करण मॉड्यूलर डिज़ाइन को पसंद करता है।

root@kitploit:~
 New-PSArmoury.ps1
 PSArmoury.json
 utilities
    ConvertTo-Powershell.ps1
    Invoke-Shuffle.ps1
 modules
    evasion.ps1
    obfuscation.ps1

कोड को एक मुख्य जनरेटर स्क्रिप्ट में विभाजित किया गया है जिसे New-PSArmoury.ps1 कहा जाता है, जिसे आप निष्पादित करते हैं। चोरी, अस्पष्टता और अस्पष्टता हटाने का कोड modules निर्देशिका में अलग-अलग .ps1 फ़ाइलों में संग्रहीत किया जाता है। इन अलग-अलग फ़ाइलों को मुख्य स्क्रिप्ट द्वारा आमंत्रित किया जाता है और इससे आपके लिए विशिष्ट फ़ंक्शन (जैसे कि AMSI बाईपास) को बदलना आसान होना चाहिए। मॉड्यूल निर्देशिका के अतिरिक्त, utilities निर्देशिका भी है। यहाँ आपको स्टैंडअलोन स्क्रिप्ट मिलेंगी जो विशिष्ट परिदृश्यों में उपयोगी हो सकती हैं।

मॉड्यूल निर्देशिका

मॉड्यूल निर्देशिका का डिफ़ॉल्ट पथ .\modules है जहाँ डॉट आपके शेल के वर्तमान कार्यशील निर्देशिका को संदर्भित करता है। आप New-PSArmoury के -ModulesDirectory तर्क का उपयोग करके मॉड्यूल निर्देशिका का पथ बदल सकते हैं। हालाँकि स्क्रिप्ट फ़ाइलों के नाम मुख्य स्क्रिप्ट में हार्ड-कोडेड हैं और हमेशा इस प्रकार होने की उम्मीद की जाती है:

  • evasion.ps1
  • obfuscation.ps1

आइए इन दोनों पर करीब से नज़र डालते हैं।

evasion.ps1

इस स्क्रिप्ट में वह कोड होना चाहिए जो आप जिसे भी बायपास करना चाहते हैं, उसे बायपास करने के लिए है। डिफ़ॉल्ट रूप से, इसमें एक प्रसिद्ध AMSI बाईपास होता है (amsi.fail को धन्यवाद)। कृपया ध्यान दें कि:

  • यहाँ का कोड बाकी सब कुछ चलने से पहले चलता है (जैसे कि अस्पष्टता हटाना)
  • कोई भी सत्यापन बिल्कुल नहीं है! आप जो कुछ भी यहाँ डालेंगे, वह ज्यों का त्यों IEX को पाइप किया जाएगा।

obfuscation.ps1

इस स्क्रिप्ट में अस्पष्टता और अस्पष्टता हटाने के लिए उपयोग किया जाने वाला कोड होना चाहिए। डिफ़ॉल्ट obfuscation.ps1 RC2 एन्क्रिप्शन का उपयोग करता है। उपयोग के लिए तैयार उदाहरण:

  • TEMPLATE_obfuscation_RC2.ps1 --> यह डिफ़ॉल्ट है
  • TEMPLATE_obfuscation_byte_convert.ps1
  • TEMPLATE_obfuscation_empty.ps1

ध्यान दें कि TEMPLATE_obfuscation_empty.ps1 वास्तव में कुछ नहीं करता है और आपके अपने फ़ंक्शन बनाने के लिए एक टेम्पलेट के रूप में कार्य करता है। यदि आप उनमें से किसी एक का उपयोग करना चाहते हैं, तो बस इसे "obfuscation.ps1" नाम दें और डिफ़ॉल्ट फ़ाइल को हटा दें।

यदि आप एक अनुकूलित संस्करण बनाना चाहते हैं, तो अस्पष्टता के संबंध में निम्नलिखित बातों का ध्यान रखें:

  • फ़ंक्शन का नाम हमेशा "Get-PSArmouryObfuscation" होना चाहिए जिसमें एक एकल स्ट्रिंग-पैरामीटर "Code" हो क्योंकि मुख्य स्क्रिप्ट इसे आर्मरी में डालने वाली किसी भी वस्तु पर कॉल करेगी।
  • फ़ंक्शन को कोड के अस्पष्ट संस्करण को फिर से एक एकल स्ट्रिंग मान के रूप में लौटाना चाहिए। स्क्रिप्ट का मुख्य कोड एक अतिरिक्त base64 एनकोड/डीकोड लूप चलाता है ताकि यह सुनिश्चित किया जा सके कि हम आपके द्वारा डाली गई अन्य चीज़ों को भी संभाल सकते हैं, लेकिन यह आसान होगा यदि आप इसे केवल एक स्ट्रिंग बना सकें ;-)
  • संबंधित अस्पष्टता हटाने वाले फ़ंक्शन को आपके द्वारा यहाँ लौटाए गए किसी भी चीज़ को समझना चाहिए। मुख्य स्क्रिप्ट केवल परिणामों को पास करती है --> यहाँ कोई जादू नहीं होता है

और अस्पष्टता हटाने के संदर्भ में इन बातों को याद रखना सुनिश्चित करें:

  • फ़ंक्शन का नाम हमेशा Get-PSArmouryDeObfuscation होना चाहिए जिसमें कोई पैरामीटर न हो क्योंकि यह एक निश्चित, वैश्विक चर पर पुनरावृत्त करता है।
  • फ़ंक्शन को कोड के अस्पष्टता हटाए गए संस्करण को फिर से एक एकल स्ट्रिंग मान के रूप में लौटाना चाहिए, जो निष्पादित करने के लिए तैयार हो। हम आपके द्वारा लौटाई गई हर चीज़ को IEX में पाइप कर देते हैं, इसलिए बाकी आप पर निर्भर है।

उपयोगिताएँ निर्देशिका

उपयोगिताएँ निर्देशिका में उपयोगी स्टैंडअलोन स्क्रिप्ट शामिल हैं।

  • ConvertTo-Powershell.ps1
    • एक कंसोल c# एप्लिकेशन को पावरशेल स्क्रिप्ट में परिवर्तित करता है। अधिक जानकारी के लिए, संबंधित ब्लॉग पोस्ट देखें।
  • Invoke-Shuffle.ps1
    • एक सरल अस्पष्टता स्क्रिप्ट जो कोड की एक पंक्ति को कई चरों में परिवर्तित करती है जो मूल स्ट्रिंग के हिस्सों को रखते हैं जिन्हें बाद में एकत्रित किया जाता है और निष्पादन के दौरान आमंत्रित किया जाता है।

कॉन्फ़िगरेशन संदर्भ

कॉन्फ़िग फ़ाइल को एक मान्य json होना चाहिए जिसमें एक या अधिक ऑब्जेक्ट वाली एक एकल सरणी हो, जहाँ प्रत्येक ऑब्जेक्ट को एक स्क्रिप्ट स्रोत के रूप में व्याख्यायित किया जाता है। प्रत्येक ऑब्जेक्ट में निम्नलिखित गुण होते हैं:

नाम (अनिवार्य)

इस ऑब्जेक्ट में शामिल स्क्रिप्ट की पहचान करने के लिए आपकी पसंद का एक नाम। यह केवल आपके संदर्भ के लिए है।

URL (अनिवार्य)

स्क्रिप्ट सामग्री प्राप्त करने का स्थान। यह एक वेब संसाधन (https://) का URL, स्थानीय पथ (C:) या नेटवर्क संसाधन (\...) हो सकता है। URL को क्रमशः Net.Webclient या PowerShell के Get-Item में डाला जाता है। इसलिए मूल रूप से हर वह प्रारूप जो इन दोनों में से कोई एक डिफ़ॉल्ट रूप से संभाल सकता है, काम करना चाहिए।

प्रकार (अनिवार्य)

यह आर्मरी निर्माता को स्क्रिप्ट स्थान के बारे में संकेत देता है। तीन मान्य प्रकार हैं:

  • GitHub
    • क्रेडेंशियल्स के लिए संकेत देगा ताकि हम GitHub API के विरुद्ध प्रमाणित कर सकें। यह एक "raw" URL जो सीधे फ़ाइल की ओर इंगित करता है, और एक URL जो किसी रिपॉजिटरी की ओर इंगित करता है, के बीच अंतर करने का प्रयास करेगा। यदि URL किसी रिपॉजिटरी की ओर इंगित करता है, तो स्क्रिप्ट स्वचालित रूप से उस रिपॉजिटरी में सभी पावरशेल फ़ाइलों को खोजेगी और उन्हें शामिल करेगी। जैसे कि "https://github.com/cfalta/PoshRandom"
  • WebDownloadSimple
    • एक ऐसी फ़ाइल जिसे HTTP GET का उपयोग करके बिना प्रमाणीकरण या किसी अन्य चीज़ के डाउनलोड किया जा सकता है। जैसे कि "http://mywebserver.com/file.ps1"
  • LocalFile
    • डिस्क पर एक फ़ाइल जैसे "C:\temp\test.ps1"। यदि पथ किसी निर्देशिका की ओर इंगित करता है, तो ".ps1" एक्सटेंशन वाली सभी फ़ाइलें (पुनरावर्ती) शामिल की जाएँगी।

FileInclusionFilter (वैकल्पिक)

केवल "GitHub" प्रकार के ऑब्जेक्ट में व्याख्यायित किया जाएगा। पूर्ण फ़ाइल नाम के विरुद्ध PowerShell के "like" तुलना ऑपरेटर से मिलान किया जाएगा, इसलिए ध्यान रखें कि आपको वाइल्डकार्ड स्वयं शामिल करने होंगे। यदि आप फ़ाइल नाम के किसी भाग से मिलान करना चाहते हैं, तो एक तारा (*) शामिल करना न भूलें। "*.ps1" का अर्थ है वे सभी फ़ाइलें जो ".ps1" से समाप्त होती हैं, लेकिन ".ps1" का अर्थ केवल ".ps1" है।

आपको एक फ़िल्टर शामिल करने की आवश्यकता नहीं है, लेकिन यदि आप करते हैं, तो आपको इसका उपयोग करना होगा। एक खाली InclusionFilter का अर्थ है कोई फ़ाइल नहीं।

FileExclusionFilter (वैकल्पिक)

InclusionFilter की तरह लेकिन स्पष्ट रूप से दूसरी तरफ। बहिष्करण की प्राथमिकता अधिक है।

आर्गुमेंट्स

अधिक विवरण के लिए इनलाइन पावरशेल सहायता (man -full New-PSArmoury) देखें।

-Path

आपकी नई आर्मरी फ़ाइल का पथ। डिफ़ॉल्ट ".\MyArmoury.ps1" है।

-FromFile

अपनी पावरशेल स्क्रिप्ट को सीधे किसी स्थानीय फ़ोल्डर या फ़ाइल से लोड करें और आपको कॉन्फ़िग फ़ाइल प्रदान करने की आवश्यकता नहीं है।

-Config

आपकी JSON-कॉन्फ़िग फ़ाइल का पथ। विचारों के लिए इस स्क्रिप्ट के साथ आने वाले नमूने पर एक नज़र डालें।

-ModulesDirectory

मॉड्यूल निर्देशिका का पथ। डिफ़ॉल्ट ".\modules" है। यदि ModulesDirectory का उपयोग किया जाता है, तो EvasionPath और ObfuscationPath पैरामीटर का उपयोग नहीं किया जा सकता है।

-EvasionPath

चोरी स्क्रिप्ट का पथ। यदि EvasionPath और ObfuscationPath का उपयोग किया जाता है, तो ModulesDirectory-पैरामीटर का उपयोग नहीं किया जा सकता है।

-ObfuscationPath

अस्पष्टता स्क्रिप्ट का पथ। यदि EvasionPath और ObfuscationPath का उपयोग किया जाता है, तो ModulesDirectory-पैरामीटर का उपयोग नहीं किया जा सकता है।

-ValidateOnly

इसे "-Config" के साथ उपयोग करें ताकि स्क्रिप्ट आपकी JSON कॉन्फ़िग फ़ाइल के मूल सिंटैक्स को निष्पादित किए बिना सत्यापित कर सके।

-GithubCredentials

Github उपयोगकर्ता नाम और एक्सेस टोकन को क्रेडेंशियल ऑब्जेक्ट के रूप में पास करें ताकि स्क्रिप्ट इसके लिए संकेत न दे। यदि आप परीक्षण के लिए बार-बार एक आर्मरी बनाते हैं तो उपयोगी है।

इस प्रकार उपयोग करें:

root@kitploit:~
$c = get-credential
New-PSArmoury -GithubCredentials $c

Github एक्सेस टोकन

आपको एक मान्य Github उपयोगकर्ता नाम के साथ-साथ एक व्यक्तिगत एक्सेस टोकन प्रदान करना होगा, ताकि स्क्रिप्ट Github API का ठीक से उपयोग कर सके। उपयोगकर्ता नाम/पासवर्ड का उपयोग न करें क्योंकि यदि आपने MFA सक्षम किया है तो यह वैसे भी काम नहीं करेगा (और आपको MFA सक्षम करना चाहिए)। इसके अलावा, मूल उपयोगकर्ता नाम/पासवर्ड के साथ API तक पहुँचना पदावनत है।

व्यक्तिगत एक्सेस टोकन बनाने के लिए इस गाइड का पालन करें।

कृपया ध्यान दें: एक्सेस टोकन पर हमें केवल repo अनुभाग में public_repo अनुमति की आवश्यकता है।

ऐसा इसलिए है क्योंकि आपको केवल टोकन की आवश्यकता है ताकि Github हमें ब्लॉक न करे यदि आप शामिल करने के लिए .ps1 फ़ाइलों के लिए बड़ी रिपॉजिटरी (जैसे PowerSploit) को पार्स करते हैं।

उदाहरण उपयोग

उदाहरण 1 - सभी डिफ़ॉल्ट

यदि आप डिफ़ॉल्ट सेटिंग्स के साथ एक आर्मरी बनाना चाहते हैं (ध्यान दें: यह base64 एन्कोडिंग के अलावा बिल्कुल भी अस्पष्ट नहीं करेगा), तो बस निम्नलिखित चलाएँ।

root@kitploit:~
. .\New-PSArmoury.ps1
New-PSArmoury

यह वर्तमान कार्यशील निर्देशिका में "MyArmoury.ps1" नामक एक .ps1 फ़ाइल बनाएगा जिसमें उपयोग होगा:

  • डिफ़ॉल्ट कॉन्फ़िग ".\PSArmoury.json"
  • डिफ़ॉल्ट AMSI बाईपास जो ".\modules\evasion.ps1" पर पाया जाता है
  • डिफ़ॉल्ट अस्पष्टता/अस्पष्टता हटाना (base64) जो क्रमशः ".\modules\obfuscation.ps1" और ".\modules\deobfuscation.ps1" पर पाया जाता है।

आप निम्न का उपयोग करके आर्मरी को अपने वर्तमान सत्र में लोड कर सकते हैं:

root@kitploit:~
cat -raw .\MyArmoury.ps1 | iex

अपनी आर्मरी लोड करने से निम्नलिखित चरण शुरू होते हैं:

  • चोरी कोड को आमंत्रित करें
  • नियंत्रण अस्पष्टता हटाने वाले फ़ंक्शन को सौंपें जो बदले में
  • प्रत्येक अस्पष्टित आइटम पर जाएँ और
    • अस्पष्टता हटाएँ
    • IEX में पाइप करें

उसके बाद, आपने आर्मरी में जो भी पावरशेल कोड डाला है, वह उपलब्ध हो जाएगा। बस cmdlets को सामान्य रूप से इस प्रकार आमंत्रित करें:

root@kitploit:~
Invoke-Rubeus -Command "kerberoast /stats"
Get-DomainGroupMember -Identity "Domain Admins" -Recurse

यदि आपको याद नहीं है कि आपने आर्मरी के अंदर क्या डाला था, तो बस इसे लोड करें और इन्वेंट्री को कॉल करें :-)

root@kitploit:~
Get-PSArmoury

उदाहरण 2 - PSArmoury के साथ आने वाली बाइट-कन्वर्ट/json-फॉर्मेट अस्पष्टता तकनीक और एक अलग कॉन्फ़िग फ़ाइल का उपयोग करें

New-PSArmoury को -EvasionPath और -ObfuscationPath पैरामीटर के साथ इस प्रकार शुरू करें:

root@kitploit:~
New-PSArmoury -Config C:\myarmouryconfig.json -ObfuscationPath .\modules\TEMPLATE_obfuscation_byte_convert.ps1 -EvasionPath .\modules\evasion.ps1

उदाहरण 3 - पावरशेल स्क्रिप्ट वाले स्थानीय फ़ोल्डर से एक आर्मरी बनाएँ

ध्यान दें: इस मामले में, फ़ोल्डर में सभी .ps1 फ़ाइलें जोड़ी जाएँगी क्योंकि हम एक फ़ोल्डर पथ सबमिट करते हैं। यदि हम किसी एकल फ़ाइल का पथ सबमिट करते हैं, तो केवल वही फ़ाइल संसाधित की जाएगी।

root@kitploit:~
New-PSArmoury -FromFile C:\myscriptfolder
टूल डाउनलोड करें