
टर्मिनल सपोर्ट, डेटा टनलिंग और उन्नत पिवोटिंग क्षमताओं के साथ एक रिवर्स शेल।
revsh एक उपकरण है जो रिवर्स शेल को टर्मिनल समर्थन, रिवर्स VPN के लिए उन्नत पिवोटिंग, और मनमाना डेटा टनलिंग स्थापित करने के लिए है।
"रिवर्स शेल" क्या है?
रिवर्स शेल एक नेटवर्क कनेक्शन है जो रिमोट होस्ट तक शेल पहुंच प्रदान करता है। अन्य रिमोट लॉगिन टूल जैसे telnet और ssh के विपरीत, रिवर्स शेल की शुरुआत रिमोट होस्ट द्वारा की जाती है। रिमोट नेटवर्क से आउटबाउंड कनेक्शन शुरू करने की यह तकनीक फ़ायरवॉल को दरकिनार करने की अनुमति देती है जो केवल इनबाउंड कनेक्शन को ब्लॉक करने के लिए कॉन्फ़िगर किए गए हैं।
"रिवर्स VPN" क्या है?
revsh अपने क्रिप्टो टनल के दोनों छोरों पर एक वर्चुअल ईथरनेट कार्ड (tun/tap) जोड़ने में सक्षम है। इन कार्डों का उपयोग तब रॉ आईपी पैकेट या ईथरनेट फ्रेम को अग्रेषित करने के लिए किया जा सकता है। जब Iptables NAT नियम के साथ संयोजित किया जाता है, या एक वास्तविक ईथरनेट कार्ड को ब्रिज किया जाता है, तो यह ऑपरेटर को लक्ष्य मशीनों के नेटवर्क पर पूरी तरह से रूट करने योग्य आईपी पता प्राप्त करने की अनुमति देता है। यह, संक्षेप में, एक पूर्ण VPN है जिसने इन-बाउंड पैकेट फ़िल्टरिंग को दरकिनार करने और ऑपरेटर को पूर्ण नेटवर्क पहुंच प्रदान करने के लिए ऑपरेटर को एक कॉल-बैक किया है। (अधिक जानकारी के लिए "Documentation/REVERSE_VPN.md" देखें।)
"बाइंड शेल" क्या है?
बाइंड शेल एक शेल है जो एक सामान्य फॉरवर्ड नेटवर्क कनेक्शन से प्रदान किया जाता है। revsh रिवर्स और बाइंड शेल दोनों का समर्थन करता है। बाइंड शेल को लागू करने के लिए आप या तो कनेक्शन के दोनों छोरों पर -b फ्लैग का उपयोग कर सकते हैं, या बाइनरी को 'bindsh' के रूप में चला सकते हैं।
क्या मैं सिर्फ netcat का उपयोग नहीं कर सकता?
रिवर्स शेल स्थापित करने के लिए कई तकनीकें हैं, लेकिन ये विधियाँ टर्मिनल समर्थन प्रदान नहीं करती हैं। revsh एक रिवर्स शेल की अनुमति देता है जिसका कनेक्शन सूडो-टर्मिनल द्वारा मध्यस्थ होता है, और इस प्रकार निम्नलिखित सुविधाओं की अनुमति देता है:
इसके अलावा, revsh निम्नलिखित सुविधाएँ भी प्रदान करता है:
revsh एक पेंटेस्टर के टूलकिट के लिए एक पूरक उपकरण के रूप में अभिप्रेत है जो एन्क्रिप्टेड टनल के पार टर्मिनल सुविधाओं का पूरा सेट प्रदान करता है।
मैं revsh का उपयोग कहाँ कर सकता हूँ?
revsh x86_64 Linux पर विकसित किया गया था। यहाँ उन आर्किटेक्चर / OS संयोजनों की एक संक्षिप्त सूची है जिन पर इसका उपयोग किया गया है:
(यदि आपने किसी अन्य प्लेटफॉर्म पर revsh का सफलतापूर्वक उपयोग किया है, तो मुझे एक लाइन भेजें और मैं इसे सूची में जोड़ दूंगा।)
empty@monkey:~$ revsh -h
Control: revsh -c [CONTROL_OPTIONS] [MUTUAL_OPTIONS] [ADDRESS[:PORT]]
Target: revsh [TARGET_OPTIONS] [MUTUAL_OPTIONS] [ADDRESS[:PORT]]
ADDRESS कंट्रोल लिसनर का पता। (डिफ़ॉल्ट "0.0.0.0" है।)
PORT कंट्रोल लिसनर का पोर्ट। (डिफ़ॉल्ट "2200" है।)
CONTROL_OPTIONS:
-c "कमांड और कंट्रोल" मोड में चलाएँ। (डिफ़ॉल्ट टार्गेट मोड है।)
-a अनाम डिफी-हेलमैन मोड सक्षम करें। (डिफ़ॉल्ट एपीमेरल डिफी-हेलमैन है।)
-d KEYS_DIR एक वैकल्पिक निर्देशिका में कुंजियों को संदर्भित करें। (डिफ़ॉल्ट "~/.revsh/keys/" है।)
-f RC_FILE एक वैकल्पिक rc फ़ाइल संदर्भित करें। (डिफ़ॉल्ट "~/.revsh/rc" है।)
-s SHELL SHELL को रिमोट शेल के रूप में इन्वोक करें। (डिफ़ॉल्ट "/bin/bash" है।)
-F LOG_FILE सामान्य उपयोग और त्रुटियों को LOG_FILE में लॉग करें। (कोई डिफ़ॉल्ट सेट नहीं।)
TARGET_OPTIONS:
-t SEC कनेक्शन टाइमआउट को SEC सेकंड पर सेट करें। (डिफ़ॉल्ट "3600" है।)
-r SEC1,SEC2 रीट्री समय को SEC1 सेकंड पर सेट करें, या (डिफ़ॉल्ट "600,1200" है।)
SEC1 से SEC2 की सीमा में रैंडम होने पर।
MUTUAL_OPTIONS:
-k कीप-अलाइव मोड में चलाएँ।
नोड न तो सामान्य रूप से बाहर निकलेगा और न ही टाइमआउट होगा।
-L [LHOST:]LPORT:RHOST:RPORT
स्थैतिक सॉकेट फॉरवर्डिंग एक स्थानीय लिसनर के साथ
LHOST:LPORT पर RHOST:RPORT को अग्रेषित करता है।
-R [RHOST:]RPORT:LHOST:LPORT
स्थैतिक सॉकेट फॉरवर्डिंग एक रिमोट लिसनर के साथ
RHOST:RPORT पर LHOST:LPORT को अग्रेषित करता है।
-D [LHOST:]LPORT
डायनेमिक सॉकेट फॉरवर्डिंग एक स्थानीय लिसनर के साथ
LHOST:LPORT पर। (Socks 4, 4a, और 5. केवल TCP कनेक्ट।)
-B [RHOST:]RPORT
डायनेमिक सॉकेट फॉरवर्डिंग एक रिमोट
लिसनर के साथ LHOST:LPORT पर। (Socks 4, 4a, और 5. केवल TCP कनेक्ट।)
-x प्रॉक्सी के ऑटोमैटिक सेटअप को अक्षम करें। (डिफ़ॉल्ट: प्रॉक्सी D2280 और tun/tap डिवाइस।)
-b बाइंड शेल मोड में शुरू करें। (डिफ़ॉल्ट रिवर्स शेल मोड है।)
दोनों छोरों पर -b फ्लैग का उपयोग होना चाहिए।
-n गैर-इंटरैक्टिव नेटकैट शैली डेटा ब्रोकर। (डिफ़ॉल्ट रिमोट tty के साथ इंटरैक्टिव है।)
कोई tty नहीं। फ़ाइलें कॉपी करने के लिए उपयोगी।
-v वर्बोज़। -vv और -vvv verbosity बढ़ाते हैं।
-V प्रोग्राम और प्रोटोकॉल संस्करण प्रिंट करें।
-h यह सहायता प्रिंट करें।
-e कुछ उपयोग उदाहरण प्रिंट करें।
सबसे पहले, आपको OpenSSL को स्रोत से बिल्ड करना होगा। (नीचे नोट देखें।)
git clone https://github.com/openssl/openssl.git
cd openssl/
./config no-shared -static # ये विकल्प OpenSSL के विरुद्ध स्थैतिक एप्लिकेशन बनाने के लिए आवश्यक हैं।
make && make test # हम "make install" को छोड़ देते हैं ताकि हम आपके सिस्टम के डिफ़ॉल्ट OpenSSL से टकराव न करें। हम _revsh_ को इस ट्री में संकलित OpenSSL के विरुद्ध बनाएंगे।
cd ..
अब revsh बनाएं।