
मास्टर की तरह शेल पॉप करें।
ShellPop शेल्स प्राप्त करने के बारे में है। इस टूल की मदद से आप आसानी से और परिष्कृत रिवर्स या बाइंड शेल कमांड जनरेट कर सकते हैं, जो पेनिट्रेशन टेस्टिंग के दौरान काम आएंगे।
Python 2.7 आवश्यक है।
3.0+ संस्करण काम नहीं करेगा।
आवश्यक निर्भरताएँ स्थापित करें
root@kali# apt-get install python-argcomplete metasploit-framework -y
root@kali# pip install -r requirements.txt
सेटअप स्थापना
root@kali# python setup.py install
PS: स्थापना के बाद, टैब ऑटो-कम्प्लीट केवल टर्मिनल को पुनरारंभ करने के बाद ही काम करेगा।
इस टूल के सभी उपलब्ध विकल्पों को जल्दी से सूचीबद्ध करने के लिए, --help का उपयोग करें।
root@kali# shellpop --help

आप --list विकल्प का उपयोग करके सभी उपलब्ध shellpop शेल्स को सूचीबद्ध कर सकते हैं।
root@kali# shellpop --list

अब shellpop में ऑटो-कम्प्लीट सुविधा है। इसका उपयोग करने के लिए, आपको --number और (--reverse या --bind) के बारे में भूलना होगा, बस --payload तर्क का उपयोग करें। जैसा कि नीचे दिए गए चित्र में दिखाया गया है:

समय बर्बाद न करें। यह टूल समय बर्बाद न करने के बारे में है। इसलिए आप अपने सभी जनरेट किए गए पेलोड पर --clip विकल्प का उपयोग कर सकते हैं और वे स्वचालित रूप से आपके क्लिपबोर्ड पर कॉपी हो जाएंगे।
इस प्रोग्राम में दो प्रकार के पेलोड हैं: बाइंड या रिवर्स।
रिवर्स शेल आपके अटैकर मशीन को "सर्वर" के रूप में उपयोग करते हैं। इस प्रकार के पेलोड में, आपको अपनी मशीन की ओर इशारा करते हुए --host और --port दोनों की आवश्यकता होती है। एक हैंडलर सेट किया जाना चाहिए।
बाइंड शेल कनेक्शन प्रदान करने के लिए रिमोट होस्ट का उपयोग करते हैं। इस प्रकार के पेलोड में, आपको केवल एक मान्य पोर्ट नंबर के साथ --port विकल्प की आवश्यकता है।


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

पेलोड द्वारा उपयोग किए जाने वाले IP पते और पोर्ट को अस्पष्ट करता है
@vysecurity द्वारा गढ़ा गया, IPfuscation बस इस छोटे से ज्ञात तथ्य का लाभ उठाता है कि IP पतों को दशमलव, अष्टक और हेक्साडेसिमल संख्याओं, या तीनों के संयोजन में परिवर्तित किया जा सकता है, और फिर भी उपयोग किया जा सकता है।
पोर्ट अस्पष्टीकरण पोर्ट नंबर को एक गणितीय अभिव्यक्ति से बदलकर किया जाता है जो पोर्ट नंबर का मूल्यांकन करता है।

यहाँ जनरेट किए गए पेलोड में IP पता विभिन्न संख्या आधारों का संयोजन है। पहला भाग सामान्य दशमलव संकेतन में, दूसरा और तीसरा भाग 2 और 3 को अष्टक में परिवर्तित करके यादृच्छिक शून्य पैडिंग के साथ, और चौथा भाग 4 को हेक्स में, कुछ शून्य पैडिंग के साथ। IP पते के प्रत्येक भाग में उपयोग किए जाने वाले आधारों का चयन यादृच्छिक होता है, साथ ही हेक्स और अष्टक संख्याओं में उपयोग किए जाने वाले शून्यों की संख्या भी यादृच्छिक होती है।
पोर्ट को 443 को एक अभिव्यक्ति से बदलकर अस्पष्ट किया जाता है जो 443 का मूल्यांकन करता है। यह अभिव्यक्ति भी यादृच्छिक रूप से उत्पन्न होती है।
हालाँकि IPfuscation वैकल्पिक है, यादृच्छिक वेरिएबल अस्पष्टीकरण अब स्वचालित रूप से सभी पेलोड पर लागू होता है। यदि पेलोड का आकार वास्तविक चिंता का विषय है, तो आप --obfuscate-small विकल्प पास कर सकते हैं ताकि अस्पष्टीकरण द्वारा पेलोड के आकार में न्यूनतम वृद्धि हो। इस विकल्प के साथ वेरिएबल नाम, IP पता और पोर्ट नंबर काफी छोटे होंगे।

एन्कोडर विशेष विकल्प हैं जिनका उपयोग आप shellpop पेलोड उत्पन्न करते समय कर सकते हैं।
वर्तमान में तीन एन्कोडिंग विधियाँ हैं जिन्हें अकेले या एक साथ लागू किया जा सकता है, और वे हैं:
पेलोड को अस्पष्ट करने के लिए एक यादृच्छिक संख्यात्मक कुंजी (1-255) का उपयोग करता है और इसे डिक्रिप्ट करने के लिए एक डिक्रिप्शन स्टब जोड़ता है।
पेलोड डेटा में सरल base64 एन्कोडिंग और इसे डिकोड करने के लिए एक डिक्रिप्शन स्टब जोड़ता है।
अंतिम पेलोड पर सरल URL एन्कोड।






हैंडलर एक तंत्र है जो आने वाले कनेक्शन को प्राप्त करने के लिए सॉकेट को सर्व करने या सर्वर एंडपॉइंट से कनेक्ट होने के कार्य को "हैंडल" करता है ताकि आपका शेल स्थापित हो सके।
वर्तमान में निम्नलिखित TCP हैंडलर का समर्थन है:
इसका मतलब है कि प्रत्येक TCP शेल में उनके कमांड-लाइन तर्क में --handler विकल्प जोड़ा जा सकता है। ऑपरेटर को स्वयं हैंडलर (संभवतः ncat या nc) चालू करने की आवश्यकता को समाप्त करना।

यह सुविधा उन लोगों द्वारा व्यापक रूप से मांगी गई थी जो इस टूल का उपयोग करते थे। अब तकनीकी रूप से सभी shellpop शेल्स को मीटरप्रेटर में अपग्रेड करना संभव है, क्योंकि 0.3.6 के बाद से, हैंडलर डिफ़ॉल्ट रूप से शेल्स प्राप्त करने के लिए Metasploit Framework का उपयोग करता है।

स्टेजर आपके पेलोड को चरणों (STAGES) में परोसने का एक तंत्र है। कभी-कभी पेलोड की जटिलता या आकार परेशानी का कारण बन सकता है। ऐसे मामलों में, आप एक छोटा पेलोड तैयार कर सकते हैं जो बदले में बड़े पेलोड का अनुरोध और निष्पादन कर सकता है।
वर्तमान में निम्नलिखित स्टेजर प्रोटोकॉल का समर्थन है:
ShellPop में आपकी किसी भी स्थिति में फिट होने के लिए HTTP स्टेजर का निम्नलिखित सेट है:
HTTP स्टेजिंग का उपयोग करने के लिए, अपनी कमांड लाइन में --stager http जोड़ें और, वैकल्पिक रूप से, यदि आप HTTP सर्वर पोर्ट निर्दिष्ट करना चाहते हैं, तो --http-port फ्लैग आपके पोर्ट नंबर को पूर्व-निर्धारित पोर्ट के सामने रखेगा।

वर्तमान में अपने शेल्स प्राप्त करने के लिए दो प्रोटोकॉल का समर्थन है:

यह कोड Andre Marques (@zc00l) और इस परियोजना के योगदानकर्ताओं द्वारा लिखा गया है।
यह इस github में जारी होने के क्षण से जनता के लिए खुला है।
इस टूल के कारण होने वाली कोई भी क्षति किसी भी योगदानकर्ता, जिसमें लेखक भी शामिल है, की जिम्मेदारी नहीं होगी।
हम सभी योगदानकर्ताओं की सचमुच सराहना करते हैं।