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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
polyshell — एक Bash/Batch/PowerShell बहुभाषी! | Kitploit
उपकरण/GitHubGitHub/llamasoft/polyshell
पेलोड जनरेशनस्क्रिप्टिंग और स्वचालनपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubllamasoft/polyshell

polyshell

एक Bash/Batch/PowerShell बहुभाषी!

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

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

सभी देखें →

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

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

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

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

PolyShell: एक Bash/Batch/PowerShell पॉलीग्लॉट

यह क्या है

PolyShell एक स्क्रिप्ट है जो Bash, Windows Batch और PowerShell में एक साथ मान्य है (अर्थात पॉलीग्लॉट)।

यह PolyShell को पैनेट्रेशन टेस्टिंग के लिए एक उपयोगी टेम्पलेट बनाता है क्योंकि इसे लक्ष्य-विशिष्ट पेलोड की आवश्यकता के बिना अधिकांश सिस्टम पर निष्पादित किया जा सकता है। PolyShell को विशेष रूप से USB Rubby Ducky, MalDuino, या इसी तरह के उपकरण का उपयोग करके इनपुट इंजेक्शन के माध्यम से वितरित करने योग्य बनाया गया है।

Batch demo Powershell demo Unix shell demo

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

एक स्वतंत्र स्क्रिप्ट के रूप में

  1. स्क्रिप्ट को कॉपी/रिनेम करें ताकि इसका सही फ़ाइल एक्सटेंशन (.sh, .bat, या .ps1) हो।
  2. स्क्रिप्ट को Unix शेल, बैच फ़ाइल या PowerShell के साथ चलाएं।

इनपुट इंजेक्शन का उपयोग करना

  1. लक्ष्य मशीन पर एक टर्मिनल खोलें।
  2. पेलोड चलाएं।
  3. Ctrl-C दबाएं, फिर exit चलाएं।

इनपुट इंजेक्शन विधि स्क्रिप्ट विधि से थोड़ी अलग व्यवहार करेगी। जब एक स्क्रिप्ट के रूप में चलाया जाता है, तो पेलोड किसी भाषा के प्रोसेस होते ही तुरंत बाहर निकल जाता है। जब इंजेक्शन के माध्यम से वितरित किया जाता है, तो पेलोड इसके बजाय एक रीड लूप चलाता है। इसके बिना, पेलोड टर्मिनल विंडो को बंद कर देगा लेकिन इसके बजाय एक अज्ञात विंडो में टाइप करना जारी रखेगा। Ctrl-C स्क्रिप्ट को रीड लूप से बाहर निकालता है, जिससे यह बिना अनपेक्षित दुष्प्रभावों के चल सके।

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

यह कैसे काम करता है

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

root@kitploit:~
echo \" <<'BATCH_SCRIPT' >/dev/null ">NUL "\" \`" <#"

प्रत्येक भाषा echo कमांड को देखती है, लेकिन शेष पंक्ति की अलग-अलग व्याख्या करेगी।
उदाहरण के लिए, प्रत्येक भाषा एक स्ट्रिंग के रूप में इस प्रकार की व्याख्या करेगी:

root@kitploit:~
      echo \" <<'BATCH_SCRIPT' >/dev/null ">NUL "\" \`" <#"
Bash                                      [-----]     [---]
Batch       [-----------------------------]     [-]   [---]
PS          [-----------------------------]     [-]

पंक्ति निष्पादित करने के बाद, bash स्क्रिप्ट एक here document में होगी, PowerShell स्क्रिप्ट एक मल्टीलाइन-कमेंट में होगी, और बैच स्क्रिप्ट सामान्य रूप से निष्पादित होती रहेगी। प्रत्येक भाषा के निष्पादन समाप्त होने के बाद, हम इसे समाप्त कर देते हैं। यह हमें स्क्रिप्ट में बाद में इसकी विशिष्टताओं के आसपास काम करने की आवश्यकता से बचाता है।

विशिष्टताएं

स्पष्ट रूप से, इस पॉलीग्लॉट को बनाने के लिए आवश्यक तरकीबें सामान्य कोडिंग परंपराओं का पालन नहीं करती हैं।
ऐसी कई विशिष्टताएँ हैं जिनका लाभ उठाया गया या जिनके आसपास काम करना पड़ा:

  • तीनों भाषाओं में अलग-अलग एस्केप कैरेक्टर हैं:
    • Bash: बैकस्लैश (\)
    • Batch: कैरेट (^)
    • PowerShell: बैकटिक (`)
  • एस्केप कैरेक्टर Bash और PowerShell स्ट्रिंग्स के अंदर काम करते हैं, लेकिन बैच स्ट्रिंग्स में नहीं।
  • रीडायरेक्ट्स (अर्थात < और >) सभी तीन भाषाओं में विशेष अर्थ रखते हैं जब तक उद्धृत न किए जाएं।
  • रीडायरेक्ट्स को कमांड के अंत में होना आवश्यक नहीं है।
    • यह मान्य Bash/Batch/PowerShell है: echo >output.txt "Hello World"
  • बैच एकमात्र ऐसी भाषा है जिसमें मल्टी-लाइन स्ट्रिंग्स या टिप्पणियाँ नहीं हैं।
  • बैच > को एक रीडायरेक्ट के रूप में मानता है भले ही वह सीधे स्ट्रिंग को छूता हो, लेकिन PowerShell ऐसा नहीं करता।
  • बैच स्क्रिप्ट GOTO स्टेटमेंट केवल स्क्रिप्ट के रूप में चलाए जाने पर काम करते हैं, इंटरैक्टिव रूप से चलाए जाने पर नहीं।
  • PowerShell के मल्टी-लाइन कमेंट (<#) से तुरंत पहले व्हाइटस्पेस होना चाहिए।
  • Bash के here documents कहीं भी शुरू हो सकते हैं जब तक वह उद्धृत न हो और टिप्पणी न हो।
टूल डाउनलोड करें