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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
Stowaway — पेंटेस्टर्स के लिए मल्टी-हॉप प्रॉक्सी टूल जो कई नोड्स के माध्यम से ट्रैफिक रूटिंग, SOCKS5/SSH टनलिंग, पोर्ट फॉरवर्डिंग, रिमोट शेल और एन्क्रिप्टेड नोड संचार को सक्षम करता है। | Kitploit
उपकरण/GitHubGitHub/ph4ntonn/stowaway
एन्क्रिप्शन/डिक्रिप्शन उपकरणपार्श्व आंदोलननेटवर्क एक्सेस कंट्रोलपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरेड टीमिंग
GitHubph4ntonn/stowaway

Stowaway

पेंटेस्टर्स के लिए मल्टी-हॉप प्रॉक्सी टूल जो कई नोड्स के माध्यम से ट्रैफिक रूटिंग, SOCKS5/SSH टनलिंग, पोर्ट फॉरवर्डिंग, रिमोट शेल और एन्क्रिप्टेड नोड संचार को सक्षम करता है।

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

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

सभी देखें →

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

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

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

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

stowaway.png

Stowaway

GitHub issues GitHub forks GitHub stars GitHub license

English

Stowaway एक गो भाषा में लिखा गया टूल है, जिसे विशेष रूप से पेनिट्रेशन टेस्टिंग करने वालों के लिए बनाया गया मल्टी-लेवल प्रॉक्सी टूल है।

उपयोगकर्ता इस प्रोग्राम के माध्यम से बाहरी ट्रैफ़िक को कई नोड्स के ज़रिए आंतरिक नेटवर्क में प्रॉक्सी कर सकते हैं, आंतरिक नेटवर्क तक पहुँच की सीमाओं को तोड़ सकते हैं, ट्री-आकार का नोड नेटवर्क बना सकते हैं, और आसानी से प्रबंधन कार्यों को पूरा कर सकते हैं।

आप सभी को धन्यवाद जिन्होंने स्टार दिया, और साथ ही स्वागत है कि आप उपयोग के बाद प्रश्न और बग पोस्ट करें 😘

कृपया उपयोग करने से पहले उपयोग विधि और अंत में दिए गए सावधानियों को ध्यान से पढ़ें

घोषणा

यह परियोजना केवल नेटवर्क सुरक्षा अनुसंधान और शिक्षण उद्देश्यों के लिए है। किसी भी अवैध उपयोग के लिए सख्त वर्जित है। कृपया सुनिश्चित करें कि इस टूल का उपयोग करने से पहले आपके पास लक्षित सिस्टम से स्पष्ट प्राधिकरण है और आप अपने देश/क्षेत्र के प्रासंगिक कानूनों और विनियमों का पालन करते हैं। इस टूल के उपयोग से होने वाले किसी भी प्रत्यक्ष या अप्रत्यक्ष परिणाम (जिसमें शामिल हैं लेकिन सीमित नहीं: डेटा हानि, सिस्टम क्षति, कानूनी देयता आदि) का वहन उपयोगकर्ता स्वयं करेगा। इस परियोजना के लेखक किसी भी दुरुपयोग या इससे उत्पन्न कानूनी देयता के लिए जिम्मेदार नहीं होंगे। इस टूल का उपयोग करने का अर्थ है कि आपने इस अस्वीकरण की सभी सामग्री को पढ़, समझ और सहमति दे दी है।

विशेषताएँ

  • प्रबंधन पक्ष के लिए अधिक अनुकूल इंटरैक्शन, कमांड पूर्णता/इतिहास समर्थित
  • स्पष्ट नोड ट्री प्रबंधन
  • समृद्ध नोड जानकारी प्रदर्शन
  • नोड्स के बीच फॉरवर्ड/रिवर्स कनेक्शन
  • नोड्स के बीच पुनः कनेक्शन समर्थन
  • नोड्स के बीच socks5/http प्रॉक्सी के माध्यम से कनेक्शन
  • नोड्स के बीच ssh टनल के माध्यम से कनेक्शन
  • नोड्स के बीच ट्रैफ़िक TCP/HTTP/WS विकल्प
  • मल्टी-लेवल socks5 ट्रैफ़िक प्रॉक्सी फॉरवर्डिंग, UDP/TCP, IPV4/IPV6 समर्थन
  • नोड SSH के माध्यम से रिमोट होस्ट तक पहुँच
  • रिमोट शेल
  • फ़ाइल अपलोड और डाउनलोड
  • पोर्ट स्थानीय/रिमोट मैपिंग
  • नोड पोर्ट रीयूज़
  • विभिन्न सेवाओं को स्वतंत्र रूप से चालू/बंद करें
  • नोड्स के बीच आपसी प्रमाणीकरण
  • नोड्स के बीच ट्रैफ़िक TLS/AES-256-GCM से एन्क्रिप्टेड
  • v1.0 की तुलना में फ़ाइल का आकार 25% कम
  • विभिन्न प्लेटफ़ॉर्म समर्थन (Linux/Mac/Windows/MIPS/ARM)

संकलन और प्रदर्शन

  • make का उपयोग करके सीधे मल्टी-प्लेटफ़ॉर्म पूर्ण प्रोग्राम संकलित करें, या विशिष्ट प्रोग्राम संकलित करने के लिए Makefile देखें
  • जो संकलित नहीं करना चाहते, वे रिलीज़ से पहले से संकलित प्रोग्राम का उपयोग कर सकते हैं
  • प्रदर्शन वीडियो: YouTube

उपयोग विधि

भूमिकाएँ

Stowaway में दो भूमिकाएँ हैं:

  • admin - पेनिट्रेशन टेस्टर द्वारा उपयोग किया जाने वाला मुख्य नियंत्रण
  • agent - पेनिट्रेशन टेस्टर द्वारा तैनात किया जाने वाला नियंत्रित

शब्द परिभाषाएँ

  • नोड: admin या agent को संदर्भित करता है
  • सक्रिय मोड: वर्तमान नोड द्वारा किसी अन्य नोड से सक्रिय रूप से कनेक्शन
  • निष्क्रिय मोड: वर्तमान नोड द्वारा एक पोर्ट पर सुनना, दूसरे नोड के कनेक्शन की प्रतीक्षा करना
  • ऊपरी धारा: वर्तमान नोड और उसके मूल नोड के बीच ट्रैफ़िक
  • निचली धारा: वर्तमान नोड और उसके सभी बाल नोड्स के बीच ट्रैफ़िक

त्वरित प्रारंभ

निम्नलिखित कमांड Stowaway का सबसे सरल उदाहरण तुरंत शुरू कर सकते हैं

  • admin: ./stowaway_admin -l 9999
  • agent: ./stowaway_agent -c <stowaway_admin का IP>:9999

पैरामीटर विश्लेषण

  • admin
root@kitploit:~
पैरामीटर:
-l निष्क्रिय मोड में सुनने का पता [ip]:<port>
-s नोड संचार एन्क्रिप्शन कुंजी, सभी नोड्स (admin&&agent) समान होनी चाहिए
-c सक्रिय मोड में लक्ष्य नोड का पता
--socks5-proxy socks5 प्रॉक्सी सर्वर पता
--socks5-proxyu socks5 प्रॉक्सी सर्वर उपयोगकर्ता नाम (वैकल्पिक)
--socks5-proxyp socks5 प्रॉक्सी सर्वर पासवर्ड (वैकल्पिक)
--http-proxy http प्रॉक्सी सर्वर पता
--down निचली धारा प्रोटोकॉल प्रकार, डिफ़ॉल्ट नंगा TCP ट्रैफ़िक, वैकल्पिक HTTP/WS
--tls-enable नोड संचार के लिए TLS सक्षम करें, TLS सक्षम होने पर AES एन्क्रिप्शन अक्षम हो जाएगा
--domain TLS SNI/WebSocket डोमेन निर्दिष्ट करें, यदि खाली है तो डिफ़ॉल्ट लक्ष्य नोड पता
--heartbeat हार्टबीट पैकेट सक्षम करें
  • agent
root@kitploit:~
पैरामीटर:
-l निष्क्रिय मोड में सुनने का पता [ip]:<port>
-s नोड संचार एन्क्रिप्शन कुंजी
-c सक्रिय मोड में लक्ष्य नोड का पता
--socks5-proxy socks5 प्रॉक्सी सर्वर पता
--socks5-proxyu socks5 प्रॉक्सी सर्वर उपयोगकर्ता नाम (वैकल्पिक)
--socks5-proxyp socks5 प्रॉक्सी सर्वर पासवर्ड (वैकल्पिक)
--http-proxy http प्रॉक्सी सर्वर पता
--reconnect पुनः कनेक्शन समय अंतराल
--rehost पोर्ट रीयूज़ करते समय पुनः उपयोग किया जाने वाला IP पता
--report पोर्ट रीयूज़ करते समय पुनः उपयोग किया जाने वाला पोर्ट
--up ऊपरी धारा प्रोटोकॉल प्रकार, डिफ़ॉल्ट नंगा TCP ट्रैफ़िक, वैकल्पिक HTTP/WS
--down निचली धारा प्रोटोकॉल प्रकार, डिफ़ॉल्ट नंगा TCP ट्रैफ़िक, वैकल्पिक HTTP/WS
--cs चलने वाले प्लेटफ़ॉर्म का शेल एन्कोडिंग प्रकार, डिफ़ॉल्ट utf-8, वैकल्पिक gbk
--tls-enable नोड संचार के लिए TLS सक्षम करें, TLS सक्षम होने पर AES एन्क्रिप्शन अक्षम हो जाएगा
--domain TLS SNI/WebSocket डोमेन निर्दिष्ट करें, यदि खाली है तो डिफ़ॉल्ट लक्ष्य नोड पता

पैरामीटर उपयोग

-l

यह पैरामीटर admin&&agent के लिए समान है, केवल निष्क्रिय मोड में उपयोग होता है

यदि IP पता निर्दिष्ट नहीं किया जाता है, तो डिफ़ॉल्ट रूप से 0.0.0.0 पर सुनता है

  • admin: ./stowaway_admin -l 9999 or ./stowaway_admin -l 127.0.0.1:9999

  • agent: ./stowaway_agent -l 9999 or ./stowaway_agent -l 127.0.0.1:9999

-s

यह पैरामीटर admin&&agent के लिए समान है, सक्रिय और निष्क्रिय दोनों मोड में उपयोग हो सकता है

वैकल्पिक, यदि खाली है तो संचार एन्क्रिप्टेड नहीं होगा, अन्यथा संचार उपयोगकर्ता द्वारा दी गई कुंजी से एन्क्रिप्टेड होगा

  • admin: ./stowaway_admin -l 9999 -s 123

  • agent: ./stowaway_agent -l 9999 -s 123

-c

यह पैरामीटर admin&&agent के लिए समान है, केवल सक्रिय मोड में उपयोग होता है

उस नोड के पते को दर्शाता है जिससे कनेक्ट होना है

  • admin: ./stowaway_admin -c 127.0.0.1:9999

  • agent: ./stowaway_agent -c 127.0.0.1:9999

--socks5-proxy/--socks5-proxyu/--socks5-proxyp/--http-proxy

ये चार पैरामीटर admin&&agent के लिए समान हैं, केवल सक्रिय मोड में उपयोग होते हैं

--socks5-proxy socks5 प्रॉक्सी सर्वर पते को दर्शाता है, --socks5-proxyu और --socks5-proxyp वैकल्पिक हैं

--http-proxy http प्रॉक्सी सर्वर पते को दर्शाता है, उपयोग socks5 के समान है

बिना उपयोगकर्ता नाम/पासवर्ड:

  • admin: ./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx

  • agent: ./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx

उपयोगकर्ता नाम/पासवर्ड के साथ:

  • admin: ./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx

  • agent: ./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx

--up/--down

ये दो पैरामीटर admin&&agent के लिए समान हैं, सक्रिय और निष्क्रिय दोनों मोड में उपयोग हो सकते हैं

लेकिन ध्यान दें कि admin पर --up पैरामीटर नहीं है

ये पैरामीटर वैकल्पिक हैं, यदि खाली हैं तो ऊपरी/निचली धारा ट्रैफ़िक नंगा TCP है

यदि ऊपरी/निचली धारा ट्रैफ़िक HTTP/WS होना चाहता है, तो इन पैरामीटर को http या ws पर सेट करें

  • admin: ./stowaway_admin -c 127.0.0.1:9999 --down ws

  • agent: ./stowaway_agent -c 127.0.0.1:9999 --up ws or ./stowaway_agent -c 127.0.0.1:9999 --up ws --down ws

इसके अलावा, दो बातों पर ध्यान दें:

पहली, जब आप किसी नोड की ऊपरी/निचली धारा को TCP/HTTP/WS पर सेट करते हैं, तो उससे जुड़े मूल/बाल नोड की निचली/ऊपरी धारा भी समान होनी चाहिए, जैसे नीचे

  • admin: ./stowaway_admin -c 127.0.0.1:9999 --down ws

  • agent: ./stowaway_agent -l 9999 --up ws

उपरोक्त स्थिति में, agent को --up को ws पर सेट करना होगा, अन्यथा नेटवर्क त्रुटि होगी

agent के बीच भी ऐसा ही है

मान लें agent-1 127.0.0.1:10000 पोर्ट पर बाल नोड के कनेक्शन की प्रतीक्षा कर रहा है और --down ws सेट किया है

तो agent-2 को भी --up को ws पर सेट करना होगा, अन्यथा नेटवर्क त्रुटि होगी

  • agent-2: ./stowaway_agent -c 127.0.0.1:10000 --up ws

दूसरी, क्योंकि HTTP एक हाफ-डुप्लेक्स प्रोटोकॉल है, यह Stowaway के फुल-डुप्लेक्स संचार के लिए उपयुक्त नहीं है, इसलिए यहाँ HTTP प्रोटोकॉल केवल HTTP संदेश प्रारूप को लागू करता है, पूर्ण-कार्यक्षमता वाली HTTP वर्कफ़्लो नहीं। इसलिए आप अभी भी इस प्रोटोकॉल का उपयोग कर सकते हैं, लेकिन Stowaway के बीच ट्रैफ़िक HTTP संदेश प्रारूप में चुनने पर nginx के माध्यम से फ़ॉरवर्ड नहीं किया जा सकता। यह कोड और कार्यक्षमता एक ओर कुछ विशेष परिस्थितियों में HTTP प्रोटोकॉल के उपयोग के लिए रखी गई है, और दूसरी ओर एक कस्टम ट्रैफ़िक टेम्पलेट प्रदान करने के लिए, ताकि उपयोगकर्ता कस्टम प्रोटोकॉल के लिए संदर्भ ले सकें

यदि nginx आदि रिवर्स प्रॉक्सी के माध्यम से जाना है, तो कृपया ws प्रोटोकॉल का उपयोग करें और TLS के साथ संचार करें

--reconnect

यह पैरामीटर केवल agent पर और केवल सक्रिय मोड में उपयोग होता है

पैरामीटर वैकल्पिक है, यदि सेट नहीं किया गया है तो नोड नेटवर्क डिस्कनेक्ट होने पर पुनः कनेक्ट नहीं होगा; यदि सेट किया गया है तो नोड हर x (आपके द्वारा सेट किए गए सेकंड) सेकंड में मूल नोड से पुनः कनेक्ट करने का प्रयास करेगा

  • admin: ./stowaway_admin -l 9999

  • agent: ./stowaway_agent -c 127.0.0.1:9999 --reconnect 10

उपरोक्त स्थिति में, यह दर्शाता है कि यदि agent और admin के बीच कनेक्शन टूट जाता है, तो agent हर दस सेकंड में admin से पुनः कनेक्ट करने का प्रयास करेगा

agent के बीच भी उपरोक्त स्थिति समान है

और --reconnect पैरामीटर --socks5-proxy/--socks5-proxyu/--socks5-proxyp/--http-proxy के साथ उपयोग किया जा सकता है, agent प्रारंभ समय की सेटिंग के अनुसार प्रॉक्सी के माध्यम से पुनः कनेक्ट करने का प्रयास करेगा

--rehost/--report

ये दो पैरामीटर विशेष हैं, केवल agent पक्ष पर उपयोग होते हैं, विस्तृत जानकारी के लिए कृपया नीचे पोर्ट रीयूज़ तंत्र देखें

--cs

यह पैरामीटर केवल agent पर, सक्रिय और निष्क्रिय दोनों मोड में उपयोग हो सकता है

मुख्य रूप से 'shell' फ़ंक्शन में एन्कोडिंग समस्या को हल करने के लिए है। जब उपयोगकर्ता agent को gbk एन्कोडिंग वाले प्लेटफ़ॉर्म (जैसे सामान्यतः Windows) पर चलाता है और साथ ही admin utf-8 एन्कोडिंग वाले प्लेटफ़ॉर्म पर चलता है, तो कृपया इस पैरामीटर को 'gbk' पर सेट करें

  • Windows: ./stowaway_agent -c 127.0.0.1:9999 -s 123 --cs gbk

--tls-enable

ये पैरामीटर admin&&agent के लिए समान हैं, सक्रिय और निष्क्रिय दोनों मोड में उपयोग हो सकते हैं

इस विकल्प को सेट करके, नोड्स के बीच ट्रैफ़िक को TLS से एन्क्रिप्ट किया जा सकता है

उदाहरण नीचे

  • admin: ./stowaway_admin -l 10000 --tls-enable -s 123
  • agent: ./stowaway_agent -c localhost:10000 --tls-enable -s 123

ध्यान दें, जब यह पैरामीटर सक्षम होता है, तो AES एन्क्रिप्शन डिफ़ॉल्ट रूप से अक्षम हो जाता है, -s पैरामीटर केवल नोड्स के बीच आपसी प्रमाणीकरण और पोर्ट रीयूज़ फ़ंक्शन के लिए उपयोग होगा

इसके अलावा, जब यह पैरामीटर सक्षम होता है, तो कृपया सुनिश्चित करें कि नेटवर्क का प्रत्येक नोड (admin सहित) इस पैरामीटर को सक्षम करता है

--domain

ये पैरामीटर admin&&agent के लिए समान हैं, केवल सक्रिय मोड में उपयोग हो सकते हैं

इस विकल्प को सेट करके, इस नोड के TLS नेगोशिएशन के दौरान SNI विकल्प या WebSocket का लक्ष्य Host सेट किया जा सकता है

उदाहरण नीचे

  • admin: ./stowaway_admin -l 10000 --tls-enable -s 123
  • agent: ./stowaway_agent -c xxx.xxx.xxx.xxx:10000 --tls-enable -s 123 --domain xxx.com

--heartbeat

यह पैरामीटर केवल admin पक्ष पर, सक्रिय और निष्क्रिय दोनों मोड में उपयोग होता है

इस विकल्प को सेट करके, admin पहले नोड को लगातार हार्टबीट पैकेट भेज सकता है, ताकि बीच में रिवर्स प्रॉक्सी होने पर भी लंबा कनेक्शन बना रहे

मान लें admin और agent के बीच nginx जैसा रिवर्स प्रॉक्सी उपकरण है जो 8080 पोर्ट को 8000 पोर्ट पर प्रॉक्सी करता है, उदाहरण नीचे

  • admin: ./stowaway_admin -l 8000 --tls-enable -s 123 --down ws --heartbeat
  • agent: ./stowaway_agent -c xxx.xxx.xxx.xxx:8080 --tls-enable -s 123 --domain xxx.com --up ws

पोर्ट रीयूज़ तंत्र

वर्तमान Stowaway SO_REUSEPORT और SO_REUSEADDR विशेषताओं पर आधारित पोर्ट रीयूज़ फ़ंक्शन और IPTABLES पर आधारित पोर्ट रीयूज़ फ़ंक्शन प्रदान करता है

  • Linux पर अधिकांश कार्यात्मक पोर्ट को रीयूज़ किया जा सकता है

  • Windows पर IIS, RDP पोर्ट को रीयूज़ नहीं किया जा सकता, MySQL, Apache सेवा के पोर्ट को रीयूज़ किया जा सकता है

रीयूज़ विधि

  • SO_REUSEPORT और SO_REUSEADDR मोड

    मान लें agent पक्ष पोर्ट रीयूज़ तंत्र का उपयोग करके 80 पोर्ट को रीयूज़ करता है

    तब agent पक्ष को --rehost && --report && -s पैरामीटर सेट करना होगा

    • --rehost: रीयूज़ किए जाने वाले IP पते को दर्शाता है, 0.0.0.0 नहीं हो सकता, सामान्यतः नेटवर्क कार्ड का बाहरी पता

    • --report: रीयूज़ किए जाने वाले पोर्ट को दर्शाता है

    • -s: संचार कुंजी दर्शाता है

    मुख्य रूप से Windows, Mac वातावरण में रीयूज़ समर्थन करता है, Linux पर भी संभव है लेकिन अधिक प्रतिबंध हैं

    • admin पक्ष: ./stowaway_admin -c 192.168.0.105:80 -s 123
    • agent पक्ष: ./stowaway_agent --report 80 --rehost 192.168.0.105 -s 123
  • IPTABLES मोड

    मान लें agent पक्ष पोर्ट रीयूज़ तंत्र का उपयोग करके 22 पोर्ट को रीयूज़ करता है

    तब agent पक्ष को -l && --report && -s पैरामीटर सेट करना होगा

ध्यान दें

  • उपरोक्त स्थितियाँ केवल admin और agent के बीच कनेक्शन का उदाहरण हैं, agent और agent के बीच कनेक्शन भी समान है, कोई अंतर नहीं

  • यदि agent को ctrl-c या kill कमांड से मार दिया जाता है, तो प्रोग्राम स्वचालित रूप से iptables नियमों को साफ करेगा, लेकिन यदि kill -9 से मारा जाता है, तो स्वचालित रूप से साफ नहीं किया जा सकता

    इसलिए, agent के असामान्य रूप से बाहर निकलने पर iptables नियम साफ न होने और रीयूज़ की गई सेवा तक पहुँच न होने से बचने के लिए

    जब बंद करना आवश्यक हो, तो चलाएँ: python reuse.py --stop --rhost xxx.xxx.xxx.xxx --rport xxx

    इससे फ़ॉरवर्डिंग नियम बंद हो जाएगा, जिससे मूल सेवा सामान्य रूप से एक्सेस की जा सकेगी

  • यदि IPTABLES मोड के तहत पोर्ट रीयूज़ का उपयोग करते हैं, तो अनिवार्य रूप से 0.0.0.0 पर सुनना होगा, -l पैरामीटर द्वारा IP निर्दिष्ट नहीं किया जा सकता

मल्टी-लेवल नेटवर्क कैसे बनाएँ?

उपरोक्त उदाहरणों में केवल admin और एक agent दिखाया गया है

जबकि मल्टी-लेवल नेटवर्क मुख्य है

Stowaway में मल्टी-लेवल नेटवर्क बनाने के लिए admin में listen, connect, sshtunnel कमांड का उपयोग करना होता है

एक सरल उदाहरण लें

  • admin: ./stowaway_admin -l 9999 -s 123

इस समय agent-1 admin से जुड़ चुका है

  • agent-1: ./stowaway_agent -c 127.0.0.1:9999 -s 123

अब उपयोगकर्ता agent-2 से भी जुड़ना चाहता है, जैसे नीचे

  • agent-2: ./stowaway_agent -l 10000 -s 123

तब, उपयोगकर्ता admin के माध्यम से use 0 -> connect agent-2 का IP:10000 दर्ज करके इसे नेटवर्क में जोड़ सकता है, और यह agent-1 का एक बाल नोड बन जाएगा

मान लें अब उपयोगकर्ता एक और नोड agent-3 जोड़ना चाहता है, लेकिन agent-1 के माध्यम से agent-3 तक नहीं पहुँचा जा सकता

तब, उपयोगकर्ता admin के माध्यम से, use 0 -> listen -> 1.Normal Passive चुनें -> 10001 दर्ज करें, जिससे agent-1 10001 पोर्ट पर सुनना शुरू करेगा और बाल नोड के कनेक्शन की प्रतीक्षा करेगा

admin के कार्य पूर्ण होने के बाद, agent-3 निम्नानुसार शुरू करें

  • agent-3: ./stowaway_agent -c 127.0.0.1:10001 -s 123

इससे agent-3 को agent-1 के एक और बाल नोड के रूप में नेटवर्क में जोड़ा जा सकता है

listen और sshtunnel के विस्तृत परिचय के लिए, कृपया नीचे कमांड विश्लेषण देखें

पुनः कनेक्ट कैसे करें?

Stowaway वर्तमान में कई तरीकों से पुनः कनेक्शन का समर्थन करता है, नीचे संक्षेप में बताया गया है

सबसे पहले, जब मूल नोड डिस्कनेक्ट होता है, तो केवल एक प्रकार का नोड स्वचालित रूप से बाहर निकलेगा, वह है जो शुरू करते समय सक्रिय मोड में था और पुनः कनेक्शन सेट नहीं किया गया था

यदि पुनः कनेक्शन सेट किया गया है, तो नोड निर्दिष्ट समय अंतराल में पुनः कनेक्ट करने का प्रयास करेगा

इसके अलावा, निष्क्रिय मोड में शुरू किए गए सभी नोड स्वचालित रूप से बाहर नहीं निकलेंगे, बल्कि प्रारंभिक पैरामीटर के आधार पर निर्दिष्ट पोर्ट पर पुनः सुनेंगे, इस समय उपयोगकर्ता अभी भी connect, sshtunnel के माध्यम से इन नोड्स को नेटवर्क में वापस जोड़ सकता है

ध्यान दें

  1. यदि नेटवर्क उतार-चढ़ाव या मध्य नोड के डिस्कनेक्ट होने के कारण कोई शाखा टूट जाती है, तो सक्रिय पुनः कनेक्शन करते समय कृपया लापता श्रृंखला के सिर वाले नोड से कनेक्ट करें। उदाहरण के लिए, admin के बाद node1, node1 के बाद दो शाखाएँ: एक node1->node2->node3->node4, और दूसरी node1->node5->node6। यदि node2 डिस्कनेक्ट हो जाता है, तो node3 और node4 डिस्कनेक्ट नहीं होंगे, बल्कि जीवित रहेंगे। इस समय उपयोगकर्ता यदि node3 और node4 को पुनः नेटवर्क में जोड़ना चाहता है, तो दो विकल्प हैं: एक, यदि node1 सीधे node3 तक पहुँच सकता है, तो उपयोगकर्ता कभी भी node1 पर node3 को connect या sshtunnel कमांड के माध्यम से पुनः नेटवर्क में जोड़ सकता है (ध्यान रखें, भले ही node1 नोड4 तक भी पहुँच सकता हो, कृपया सीधे node4 से कनेक्ट न करें, बल्कि पूरी लापता श्रृंखला (node3->node4) के सिर वाले नोड node3 से कनेक्ट करें), इस प्रकार node3 और node4 को पुनः नेटवर्क में जोड़ा जा सकता है; दूसरा विकल्प, जब node1 सीधे node3 तक नहीं पहुँच सकता (अर्थात node2 के माध्यम से जाना आवश्यक है), तो पहले node2 को पुनः प्रारंभ करें और नेटवर्क में जोड़ें, फिर node2 पर connect या sshtunnel कमांड का उपयोग करके node3 से कनेक्ट करें, जिससे node3 और node4 नेटवर्क में शामिल हो जाएँ

  2. जब कोई नोड डिस्कनेक्ट होता है, तो उस नोड और उसके बाल नोड्स से संबंधित सभी socks, backward, forward सेवाएँ बलपूर्वक रोक दी जाएँगी

कमांड विश्लेषण

admin कंसोल में, उपयोगकर्ता Tab से कमांड को पूरा कर सकता है, और तीर कुंजियों से इतिहास/कर्सर खोज सकता है

admin कंसोल दो स्तरों में विभाजित है, पहला मुख्य पैनल है, इसमें निम्नलिखित कमांड शामिल हैं

  • help: मुख्य पैनल की सहायता जानकारी दिखाएँ
root@kitploit:~
(admin) >> help
  help                                     		सहायता जानकारी दिखाएँ
  detail                                  		जुड़े नोड्स का विवरण दिखाएँ
  topo                                     		नोड्स की टोपोलॉजी दिखाएँ
  use        <id>                          		उपयोग करने के लिए लक्ष्य नोड चुनें
  exit                                     		Stowaway से बाहर निकलें
  • detail: ऑनलाइन नोड्स का विस्तृत विवरण दिखाएँ
root@kitploit:~
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000  Hostname: ph4ntoms-MBP.lan  User: ph4ntom
Memo:
  • topo: ऑनलाइन नोड्स के माता-पिता-बच्चे संबंध दिखाएँ
root@kitploit:~
(admin) >> topo
Node[0]'s children ->
Node[1]

Node[1]'s children ->
  • use: किसी agent का उपयोग करें
root@kitploit:~
(admin) >> use 0
(node 0) >>
  • exit: Stowaway से बाहर निकलें
root@kitploit:~
(admin) >> exit
[*] क्या आप वास्तव में Stowaway से बाहर निकलना चाहते हैं?(y/n): y
[*] अलविदा!

जब उपयोगकर्ता use कमांड से एक agent चुनता है, तो दूसरे स्तर के node पैनल में प्रवेश करता है, जिसमें निम्नलिखित कमांड शामिल हैं

  • help: node पैनल की सहायता जानकारी दिखाएँ
root@kitploit:~
(node 0) >> help
  help                                            सहायता जानकारी दिखाएँ
  status                                          नोड स्थिति दिखाएँ, जिसमें socks/forward/backward शामिल हैं
  listen                                          वर्तमान नोड पर पोर्ट सुनना शुरू करें
  addmemo    <string>                             वर्तमान नोड के लिए मेमो जोड़ें
  delmemo                                         वर्तमान नोड का मेमो हटाएँ
  ssh        <ip:port>                            वर्तमान नोड के माध्यम से SSH शुरू करें
  shell                                           वर्तमान नोड पर इंटरैक्टिव शेल शुरू करें
  socks      <lport> [username] [pass]            एक socks5 सर्वर शुरू करें
  stopsocks                                       socks सेवाएँ बंद करें
  connect    <ip:port>                            एक नए नोड से कनेक्ट करें
  sshtunnel  <ip:sshport> <agent port>            नोड को टोपोलॉजी में जोड़ने के लिए sshtunnel का उपयोग करें
  upload     <local filename> <remote filename>   वर्तमान नोड पर फ़ाइल अपलोड करें
  download   <remote filename> <local filename>   वर्तमान नोड से फ़ाइल डाउनलोड करें
  forward    <lport> <ip:port>                    स्थानीय पोर्ट को विशिष्ट रिमोट ip:port पर फ़ॉरवर्ड करें
  stopforward                                     फ़ॉरवर्ड सेवाएँ बंद करें
  backward    <rport> <lport>                     रिमोट पोर्ट (agent) को स्थानीय पोर्ट (admin) पर बैकवर्ड करें
  stopbackward                                    बैकवर्ड सेवाएँ बंद करें
  shutdown                                        वर्तमान नोड को समाप्त करें
  back                                            मूल पैनल पर वापस जाएँ
  exit                                            Stowaway से बाहर निकलें
  • status: वर्तमान नोड की socks/forward/backward स्थिति दिखाएँ
root@kitploit:~
(node 0) >> status
Socks status:
      ListenAddr: 0.0.0.0:10000    Username:    Password:
-------------------------------------------------------------------------------------------
Forward status:
      [1] Listening Addr: [::]:20000 , Remote Addr: 192.168.1.1:22 , Active Connections: 0
      [2] Listening Addr: [::]:30000 , Remote Addr: 192.168.1.1:22 , Active Connections: 0
-------------------------------------------------------------------------------------------
Backward status:
      [1] Remote Port: 40000 , Local Port: 50000 , Active Connections: 0
  • listen: agent को किसी पोर्ट पर सुनने और बाल नोड के कनेक्शन की प्रतीक्षा करने का आदेश दें
root@kitploit:~
(node 0) >> listen
[*] ध्यान दें! यदि आप IPTables Reuse या SOReuse चुनते हैं, तो आपको यह सुनिश्चित करना होगा कि नोड शुरू में संबंधित तरीके से शुरू किया गया था!
[*] जब आप IPTables Reuse या SOReuse चुनते हैं, तो नोड पोर्ट को रीयूज़ करने के लिए प्रारंभिक कॉन्फ़िग (जब नोड शुरू हुआ था) का उपयोग करेगा!
[*] कृपया मोड चुनें (1.Normal passive / 2.IPTables Reuse / 3.SOReuse): 1
[*] कृपया [ip:]<port> दर्ज करें: 10001
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं......
[*] नोड 10001 पर सुन रहा है

ध्यान दें, listen एक विशेष कमांड है। जैसा कि देखा जा सकता है, listen कमांड के तीन मोड हैं

  1. Normal passive: इस विकल्प का अर्थ है कि agent सामान्य तरीके से लक्ष्य पोर्ट पर सुनेगा और बाल नोड के कनेक्शन की प्रतीक्षा करेगा
  2. IPTables Reuse: इस विकल्प का अर्थ है कि agent IPTables Reuse के माध्यम से पोर्ट को रीयूज़ करेगा और बाल नोड के कनेक्शन की प्रतीक्षा करेगा
  3. SOReuse: इस विकल्प का अर्थ है कि agent SOReuse के माध्यम से पोर्ट को रीयूज़ करेगा और बाल नोड के कनेक्शन की प्रतीक्षा करेगा

पहला मोड सबसे सामान्य है। यदि मूल नोड इस प्रकार सुन रहा है, तो बाल नोड को केवल -c मूल नोड IP:port से कनेक्ट करना होगा

दूसरा और तीसरा मोड विशेष हैं। यदि उपयोगकर्ता दूसरा या तीसरा मोड चुनता है, तो उपयोगकर्ता को सुनिश्चित करना होगा कि वर्तमान नोड स्वयं पोर्ट रीयूज़ मोड में शुरू किया गया है, अन्यथा ये मोड उपयोग नहीं किए जा सकते

दूसरे और तीसरे मोड में उपयोगकर्ता को कोई जानकारी दर्ज करने की आवश्यकता नहीं होगी, नोड स्वचालित रूप से अपने शुरुआती पैरामीटर का उपयोग करके पोर्ट को रीयूज़ करेगा और बाल नोड के कनेक्शन के लिए तैयार होगा

इसके अलावा, listen एक बार में केवल एक बाल नोड के कनेक्शन को स्वीकार कर सकता है। यदि कई बाल नोड्स को कनेक्ट करने की आवश्यकता है, तो उचित संख्या में listen कमांड निष्पादित करें

  • addmemo: वर्तमान नोड के लिए मेमो जोड़ें
root@kitploit:~
(node 0) >> addmemo test
[*] मेमो जोड़ा गया!
(node 0) >> exit
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000  Hostname: ph4ntoms-MBP.lan  User: ph4ntom
Memo:  test
  • delmemo: वर्तमान नोड का मेमो हटाएँ
root@kitploit:~
(node 0) >> delmemo
[*] मेमो हटा दिया गया!
(node 0) >> exit
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000  Hostname: ph4ntoms-MBP.lan  User: ph4ntom
Memo:
  • ssh: नोड को SSH के माध्यम से लक्ष्य मशीन से कनेक्ट करने का आदेश दें
root@kitploit:~
(node 0) >> ssh 127.0.0.1:22
[*] कृपया प्रमाणीकरण विधि चुनें (1.username&&password / 2.certificate): 1
[*] कृपया उपयोगकर्ता नाम दर्ज करें: ph4ntom
[*] कृपया पासवर्ड दर्ज करें: *****
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं.....
[*] SSH के माध्यम से लक्ष्य होस्ट से सफलतापूर्वक कनेक्ट!
 # ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:03:56]
$ whoami
ph4ntom
 # ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:04:16]
$

इस मोड में, Tab कुंजी अक्षम होगी

  • shell: वर्तमान नोड का शेल प्राप्त करें
root@kitploit:~
(node 0) >> shell
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं.....
[*] शेल सफलतापूर्वक शुरू किया गया!

bash: no job control in this shell

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
bash-3.2$ whoami
ph4ntom
bash-3.2$

इस मोड में, Tab कुंजी अक्षम होगी

  • socks: वर्तमान नोड पर socks5 सेवा शुरू करें
root@kitploit:~
(node 0) >> socks 7777
[*] 0.0.0.0:7777 पर सुनने का प्रयास कर रहे हैं......
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं......
[*] Socks सफलतापूर्वक शुरू हुआ!
(node 0) >>

एक बात ध्यान दें, यहाँ 7777 पोर्ट agent पर नहीं, बल्कि admin पर खोला गया है

यदि उपयोगकर्ता नाम और पासवर्ड सेट करना आवश्यक है, तो उपरोक्त कमांड को socks 7777 <आपका उपयोगकर्ता नाम> <आपका पासवर्ड> में बदलें

यदि सुनने के लिए इंटरफ़ेस निर्दिष्ट करना आवश्यक है, तो उपरोक्त कमांड को socks xxx.xxx.xxx.xxx:7777 में बदलें

  • stopsocks: वर्तमान नोड पर socks5 सेवा बंद करें
root@kitploit:~
(node 0) >> stopsocks
Socks Info ---> ListenAddr: 0.0.0.0:7777    Username: <null>    Password: <null>
[*] क्या आप वास्तव में socks बंद करना चाहते हैं?(yes/no): yes
[*] बंद किया जा रहा है......
[*] Socks सेवा सफलतापूर्वक बंद कर दी गई!
(node 0) >>
  • connect: वर्तमान नोड को दूसरे बाल नोड से कनेक्ट करने का आदेश दें
root@kitploit:~
agent-1: ./stowaway_agent -l 10002
root@kitploit:~
(node 0) >> connect 127.0.0.1:10002
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं......
[*] नया नोड ऑनलाइन! Node id is 1

(node 0) >>
  • sshtunnel: वर्तमान नोड को SSH टनल के माध्यम से दूसरे बाल नोड से कनेक्ट करने का आदेश दें
root@kitploit:~
agent-2: ./stowaway_agent -l 10003
root@kitploit:~
(node 0) >> sshtunnel 127.0.0.1:22 10003
[*] कृपया प्रमाणीकरण विधि चुनें(1.username&&password / 2.certificate): 1
[*] कृपया उपयोगकर्ता नाम दर्ज करें: ph4ntom
[*] कृपया पासवर्ड दर्ज करें: ******
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं.....
[*] नया नोड ऑनलाइन! Node id is 2

(node 0) >>

सख्ती से प्रतिबंधित नेटवर्क वातावरण में, SSH टनल का उपयोग करके Stowaway के ट्रैफ़िक को SSH ट्रैफ़िक के रूप में छिपाया जा सकता है, जिससे फ़ायरवॉल की सीमाओं से बचा जा सकता है

  • upload: वर्तमान नोड पर फ़ाइल अपलोड करें
root@kitploit:~
(node 0) >> upload test.7z test.xxx
[*] फ़ाइल स्थानांतरित की जा रही है, कृपया प्रतीक्षा करें...
136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s
  • download: वर्तमान नोड से फ़ाइल डाउनलोड करें
root@kitploit:~
(node 0) >> download test.xxx test.xxxx
[*] फ़ाइल स्थानांतरित की जा रही है, कृपया प्रतीक्षा करें...
136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s
  • forward: admin पर पोर्ट को रिमोट पोर्ट पर मैप करें
root@kitploit:~
(node 0) >> forward 9000 127.0.0.1:22
[*] 0.0.0.0:9000 पर सुनने का प्रयास कर रहे हैं......
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं......
[*] फ़ॉरवर्ड सफलतापूर्वक शुरू हुआ!
(node 0) >>
root@kitploit:~
$ ssh 127.0.0.1 -p 9000
Password:
 # ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:19:51]
$
  • stopforward: वर्तमान नोड का रिमोट मैपिंग बंद करें
root@kitploit:~
(node 0) >> stopforward
[0] All
[1] Listening Addr : [::]:9000 , Remote Addr : 127.0.0.1:22 , Active Connections : 1
[*] क्या आप वास्तव में फ़ॉरवर्ड बंद करना चाहते हैं?(yes/no): yes
[*] कृपया बंद करने के लिए एक चुनें: 1
[*] बंद किया जा रहा है......
[*] फ़ॉरवर्ड सेवा सफलतापूर्वक बंद कर दी गई!
  • backward: वर्तमान agent के पोर्ट को admin के स्थानीय पोर्ट पर रिवर्स मैप करें
root@kitploit:~
(node 0) >> backward 9001 22
[*] नोड से 0.0.0.0:9001 पर सुनने के लिए कहने का प्रयास कर रहे हैं......
[*] प्रतिक्रिया की प्रतीक्षा कर रहे हैं......
[*] बैकवर्ड सफलतापूर्वक शुरू हुआ!
(node 0) >>
root@kitploit:~
$ ssh 127.0.0.1 -p 9001
Password:
 # ph4ntom @ ph4ntoms-MBP in ~ 🌈 [17:22:14]
$
  • stopbackward: वर्तमान नोड का रिवर्स मैपिंग बंद करें
root@kitploit:~
(node 0) >> stopbackward
[0] All
[1] Remote Port : 9001 , Local Port : 22 , Active Connections : 1
[*] क्या आप वास्तव में बैकवर्ड बंद करना चाहते हैं?(yes/no): yes
[*] कृपया बंद करने के लिए एक चुनें: 1
[*] बंद किया जा रहा है......
[*] बैकवर्ड सेवा सफलतापूर्वक बंद कर दी गई!
  • shutdown: वर्तमान नोड को ऑफ़लाइन करने का आदेश दें
root@kitploit:~
(node 1) >> shutdown
(node 1) >>
[*] Node 1 is offline!
  • back: मुख्य पैनल पर वापस जाएँ
root@kitploit:~
(node 1) >> back
(admin) >>
  • exit: Stowaway से बाहर निकलें
root@kitploit:~
(node 1) >> exit
[*] क्या आप वास्तव में Stowaway से बाहर निकलना चाहते हैं?(y/n): y
[*] अलविदा!

TODO

  • बग ठीक करें
  • TLS समर्थन
  • एकाधिक startnode फ़ॉर्म का समर्थन

सावधानियाँ

  • यह प्रोग्राम केवल खाली समय में विकास और सीखने के लिए है, संरचना और कोड संरचना पर्याप्त कठोर नहीं है, कार्यक्षमता में बग हो सकते हैं, कृपया समझें
  • जब admin ऑनलाइन नहीं है, तो नए नोड को शामिल होने की अनुमति नहीं होगी
  • admin केवल एक सीधे जुड़े agent नोड का समर्थन करता है, agent नोड पर यह प्रतिबंध नहीं है
  • यदि उपयोगकर्ता Windows के अंतर्गत admin पक्ष का उपयोग करता है, तो कृपया पहले ansicon डाउनलोड करें, या यहाँ से डाउनलोड करें, फिर संबंधित सिस्टम बिट फ़ोल्डर में जाएँ और ansicon.exe -i चलाएँ, अन्यथा admin पक्ष पर एन्कोडिंग समस्या होगी
  • यह प्रोग्राम केवल RFC1928 में वर्णित मानक UDP ASSOCIATE का समर्थन करता है। कृपया Socks5 UDP प्रॉक्सी का उपयोग करते समय अपने प्रोग्राम (जैसे स्कैनर) पर ध्यान दें, पैकेट निर्माण विधि मानक RFC1928 का पालन करनी चाहिए, और पैकेट हानि की स्थिति को स्वयं संभालना होगा।

404 स्टारलिंक परियोजना

Stowaway अब 404 स्टारलिंक परियोजना में शामिल हो गया है

धन्यवाद

Stowaway के विकास के दौरान निम्नलिखित गुरुओं और परियोजनाओं की सहायता के लिए धन्यवाद

  • lz520520
  • SignorMercurio
  • MM0x00
  • r0ck3rt
  • Termite
  • Venom
टूल डाउनलोड करें
  • -l: उस पोर्ट को दर्शाता है जिसे सामान्य रूप से एक्सेस नहीं किया जा सकता, अर्थात वह पोर्ट जिस पर आप वास्तव में agent को सुनने और कनेक्शन स्वीकार करने देना चाहते हैं

  • --report: रीयूज़ किए जाने वाले पोर्ट को दर्शाता है

  • -s: संचार कुंजी दर्शाता है

केवल Linux वातावरण में रीयूज़ समर्थन करता है, agent स्वचालित रूप से IPTABLES को संशोधित करेगा, root अनुमति आवश्यक है

  • agent पक्ष: ./stowaway_agent --report 22 -l 10000 -s 123

    agent शुरू होने के बाद, कृपया script निर्देशिका के अंतर्गत reuse.py का उपयोग करें

    पहले SECRET का मान सेट करें (SECRET का मान वह संचार कुंजी है जो प्रत्येक नोड शुरू करते समय सेट की गई थी)

    फिर निष्पादित करें: python reuse.py --start --rhost xxx.xxx.xxx.xxx --rport xxx

    • --rhost: agent का पता

    • --rport: रीयूज़ किया गया पोर्ट, इस उदाहरण में 22 होना चाहिए

  • तब admin पक्ष कनेक्ट कर सकता है: ./stowaway_admin -c 192.168.0.105:22 -s 123