
फ़ाइलरहित, स्व-प्रसारित Bash स्क्रिप्ट जो पुनरावर्ती रूप से SSH निजी कुंजियों और पहुँच योग्य होस्टों की खोज करती है, फिर समझौता पथों का मानचित्रण करने के लिए SSH के माध्यम से नेटवर्क का पता लगाती है।
🐍 SSH-Snake एक शक्तिशाली टूल है जिसे सिस्टम पर खोजी गई SSH निजी कुंजियों का उपयोग करके स्वचालित नेटवर्क ट्रैवर्सल करने के लिए डिज़ाइन किया गया है, जिसका उद्देश्य किसी नेटवर्क और उसकी निर्भरताओं का एक व्यापक मानचित्र बनाना है, और यह पहचानना है कि किसी विशेष सिस्टम से शुरू करके SSH और SSH निजी कुंजियों का उपयोग करके नेटवर्क को किस हद तक समझौता किया जा सकता है।
SSH-Snake स्वचालित रूप से उन सिस्टमों के बीच के संबंध को प्रकट कर सकता है जो SSH के माध्यम से जुड़े हुए हैं, जिसे सामान्यतः मैन्युअल रूप से करने में अत्यधिक समय और प्रयास लगेगा।
दूसरे शब्दों में, SSH-Snake निम्नलिखित कार्यों को स्वचालित और पुनरावर्ती रूप से करता है:
user@host) खोजें जहाँ निजी कुंजियाँ स्वीकार की जा सकती हैं,यह पूरी तरह से स्व-प्रतिकृति और स्व-प्रसारणशील है -- और पूरी तरह से फ़ाइलरहित। कई मायनों में, SSH-Snake वास्तव में एक worm है: यह स्वयं की प्रतिकृति बनाता है और जहाँ तक संभव हो एक सिस्टम से दूसरे सिस्टम तक फैलता है।
Super Mario गेम की तरह SSH कुंजियों के साथ मैन्युअल रूप से सिस्टमों के बीच कूदने के बजाय, SSH-Snake को आपके लिए यह काम करने दें।
हालाँकि यह टूल हैकिंग उद्देश्यों के लिए है, सिस्टम प्रशासक भी इसका उपयोग अपने इंफ्रास्ट्रक्चर और नेटवर्क को बेहतर ढंग से समझने के लिए कर सकते हैं। यदि आप खोजी गई निजी कुंजियों की प्रिंटिंग को अक्षम करना चाहते हैं, तो कोड की इस पंक्ति को कमेंट आउट करें।
यह स्क्रिप्ट वास्तव में कैसे काम करती है, तकनीकी विवरण, रोचक खोजें, डिज़ाइन निर्णय, बेंचमार्किंग, और सीखे गए सबक के गहन अवलोकन के लिए, यह ब्लॉग पोस्ट देखें। यह सॉफ़्टवेयर Joshua Rogers द्वारा लिखा गया है।
एक बहुत छोटे नेटवर्क में SSH-Snake के आउटपुट से एक संक्षिप्त स्क्रीनशॉट। |
|---|
नीले नोड्स इंगित करते हैं कि गंतव्य स्वयं से कनेक्ट हो सकता है (user@host<-->user@host)। लाल किनारे इंगित करते हैं कि कनेक्शन द्वि-दिशात्मक है (user1@host1<-->user2@host2)। |
|---|
SSH-Snake को या तो डाउनलोड किया जा सकता है या bash में पाइप किया जा सकता है:
wget https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh
bash ./Snake.nocomments.sh
या
curl https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh | bash
SSH-Snake एक मानवीय विरोधी (human adversary) द्वारा SSH निजी कुंजियों (private keys) और उन गंतव्यों (destinations) की खोज करने की प्रक्रिया का सहज अनुकरण करता है जहाँ उनका उपयोग कनेक्ट करने के लिए किया जा सकता है। पूरी तरह से Bash में लिखा गया, यह निर्भरताओं के एक न्यूनतम सेट के साथ संचालित होता है जो प्रमुख Linux (और MacOS) सिस्टम पर सामान्यतः उपलब्ध होते हैं: bash, ssh, coreutils, awk, uniq, sort, grep, tr, find, और cat। getent या dscacheutil आवश्यक है। sed केवल बहुत पहले सिस्टम के लिए आवश्यक है। इसी तरह, sudo, hostname, ip, timeout, arp, ifconfig, ipconfig, और xargs का भी उपयोग किया जा सकता है, लेकिन वे आवश्यक नहीं हैं (और स्क्रिप्ट उन मामलों को सहजता से संभालती है जहाँ वे मौजूद नहीं हैं)। यदि किसी सिस्टम का पता चलता है जिसमें आवश्यक पैकेजों में से कोई भी नहीं है, तो यह सहजता से विफल हो जाता है, उपयोगकर्ता को सचेत करता है कि उस विशेष सिस्टम पर स्कैन जारी नहीं रखा जा सका (और पीछे हटकर, पिछले सिस्टम से जारी रखता है।)
SSH-Snake पूरी तरह से फ़ाइलरहित (fileless) है: उपयोगकर्ता द्वारा स्क्रिप्ट चलाने के बाद, इसे stdin और bash आर्ग्युमेंट्स (SSH के माध्यम से) के ज़रिए गंतव्यों के bash को पास किया जाता है। स्कैन किए गए किसी भी सिस्टम पर स्क्रिप्ट का कोई भौतिक प्रमाण मौजूद नहीं होता: स्क्रिप्ट चलने का एकमात्र प्रमाण प्रोसेस ट्री में होता है, और बड़ी संख्या में अमान्य SSH प्रयास जो अनिवार्य रूप से होंगे।
SSH-Snake खोज के लिए गहराई-प्रथम दृष्टिकोण (depth-first approach) अपनाता है: एक बार जब यह किसी एक सिस्टम से कनेक्ट हो जाता है, तो यह पीछे हटने (backtracking) से पहले उस सिस्टम से आगे कनेक्ट करने का प्रयास करता है।
SSH-Snake नाम इस तथ्य से आया है कि स्क्रिप्ट का आउटपुट ऐसा दिखता है जैसे कोई साँप नेटवर्क पर ऊपर-नीचे रेंग रहा हो। हालाँकि, गेम Snake के विपरीत, SSH-Snake अपनी ही पूँछ को काटने पर नहीं मरेगा (उस सिस्टम से कनेक्ट होगा जिसे वह पहले ही स्कैन कर चुका है या वर्तमान में स्कैन कर रहा है): यह सामान्य रूप से बस प्रिंट करेगा कि वह वहाँ कैसे कनेक्ट हुआ, लेकिन लौट आएगा और गंतव्य को दोबारा स्कैन नहीं करेगा (अनंत पुनरावृत्ति से बचने के लिए)।
SSH-Snake का परीक्षण Linux के विभिन्न स्वादों और MacOS (Homebrew Bash स्थापित) पर किया गया है। यदि आपको कोई Linux-आधारित OS मिलता है जिसके साथ यह संगत नहीं है, तो कृपया एक रिपोर्ट सबमिट करें।
.bash_history प्रविष्टियों से SSH निजी कुंजी फ़ाइलों की खोज,SSH-Snake के साथ कुछ सामान्य सेटिंग्स आती हैं जिन्हें कॉन्फ़िगर किया जा सकता है। ये सेटिंग्स SETTINGS.md#general-settings में प्रलेखित हैं।