
समानांतर SSH सेवा खोज और सुरक्षा ऑडिटर जो किसी भी पोर्ट को स्कैन करता है, SSH बैनरों को मान्य करता है, और होस्ट्स एवं CIDR रेंजों में प्रमाणीकरण विधियों, कमज़ोर क्रिप्टोग्राफ़ी, Terrapin भेद्यता, और पुनः उपयोग की गई होस्ट कुंजियों का ऑडिट करता है।
sshfinder एक तेज़, विश्वसनीय उपकरण है जो एक या कई लक्ष्यों पर खुली SSH सेवाओं की खोज करता है। यह खुले TCP पोर्ट को स्कैन करता है और फिर पुष्टि करता है कि उनमें से कौन वास्तव में SSH बोलते हैं — गति के लिए दोनों चरणों को समवर्ती रूप से चलाता है।
10.0.0.0/24) स्कैन करें, या उन्हें फ़ाइल से लोड करें।connect — पोर्टेबल TCP कनेक्ट स्कैन, किसी विशेषाधिकार की आवश्यकता नहीं (डिफ़ॉल्ट)।syn — Scapy के माध्यम से हाफ-ओपन SYN स्कैन (तेज़, root की आवश्यकता)।--audit) — पेंटेस्टर्स के लिए खोज को आक्रमण-सतह खुफिया जानकारी में बदलता है: स्वीकृत प्रमाणीकरण विधियों की गणना करता है (पासवर्ड प्रमाणीकरण को फ़्लैग करता है), प्रस्तावित KEX/सिफर/MAC/होस्ट-की एल्गोरिदम की सूची देता है और कमज़ोर/अप्रचलित एल्गोरिदम को फ़्लैग करता है, Terrapin (CVE-2023-48795) का पता लगाता है, और लक्ष्यों में साझा होस्ट कुंजियों को सहसंबंधित करता है ताकि क्लोन किए गए या लोड-संतुलित इंफ्रास्ट्रक्चर का पता चल सके।[SSH] / [not ssh] लेबल किया जाता है ताकि खुले पोर्ट को कभी SSH पोर्ट न समझा जाए।host:port के रूप में प्रिंट हो जाती हैं, ताकि कई होस्ट स्कैन करते समय हमेशा स्पष्ट रहे कि कौन सा परिणाम किस लक्ष्य का है।--json, वैकल्पिक रूप से फ़ाइल में लिखा जा सकता है।git clone https://github.com/kabiri-labs/sshfinder.git
cd sshfinder
# Installs paramiko (recommended: enables the full --audit deep checks and
# --validate paramiko):
pip install -r requirements.txt
# Optional, only for half-open SYN scans (needs root):
pip install scapy>=2.5
कोर कनेक्ट स्कैन, बैनर सत्यापन और --audit के निर्भरता-मुक्त भाग (एल्गोरिदम इन्वेंट्री, कमज़ोर-क्रिप्टो फ़्लैग, Terrapin) बिना किसी थर्ड-पार्टी पैकेज के काम करते हैं; paramiko होस्ट-की फ़िंगरप्रिंट, ऑथ-विधि एन्यूमरेशन और साझा-कुंजी सहसंबंध को सक्षम करता है।
इसके लिए Python 3.9+ आवश्यक है।
python sshfinder.py [targets ...] [options]
धीमे स्कैन पर ध्यान दें। फ़ायरवॉल वाले या दुर्गम होस्ट के विरुद्ध पूर्ण
1-65535रेंज स्कैन करना स्वाभाविक रूप से धीमा है: हर फ़िल्टर किए गए पोर्ट को टाइमआउट समाप्त होने तक प्रतीक्षा करनी पड़ती है। प्रगति संकेतक दिखाता है कि यह अभी भी काम कर रहा है, और Ctrl+C इसे तुरंत रोक देता है। तेज़ जाने के लिए, पोर्ट सीमित करें (जैसे-p 22,2222), टाइमआउट कम करें (-t 1), या समवर्तीता बढ़ाएँ (-w)।
auto Scapy स्थापित होने पर root के रूप में चलने पर SYN स्कैन का चयन करता है, और अन्यथा विशेषाधिकार-मुक्त कनेक्ट स्कैन पर वापस आ जाता है।
सामान्य SSH पोर्ट पर एकल होस्ट स्कैन करें:
python sshfinder.py 192.168.1.1 -p 22,2222
पूरे सबनेट को स्कैन करें और JSON आउटपुट करें:
python sshfinder.py 10.0.0.0/24 -p 22,2222 --json -o results.json
तेज़ SYN स्कैन के साथ फ़ाइल से कई लक्ष्यों को स्कैन करें (root के रूप में):
sudo python sshfinder.py -iL targets.txt --scan-method syn
पूर्ण हैंडशेक के साथ SSH का कठोरता से सत्यापन करें:
python sshfinder.py example.com -p 22 --validate paramiko
सबनेट में SSH आक्रमण सतह का ऑडिट करें (ऑथ विधियाँ, कमज़ोर क्रिप्टो, Terrapin, साझा होस्ट कुंजियाँ):
python sshfinder.py 10.0.0.0/24 -p 22,2222 --audit
उदाहरण ऑडिट आउटपुट:
=== 10.0.0.5 ===
open: 10.0.0.5:22
SSH 10.0.0.5:22 (SSH-2.0-OpenSSH_7.4)
host key: ssh-ed25519 SHA256:T/ZM4jOL4amTsO5K3AaCdg2...
auth: publickey, password [!] password auth enabled
[!] Terrapin (CVE-2023-48795): VULNERABLE
[!] weak ciphers: aes128-cbc
Shared SSH host keys (possible shared/cloned hosts):
SHA256:T/ZM4jOL4amTsO5K3AaCdg2...
-> 10.0.0.5:22, 10.0.0.9:22
एल्गोरिदम इन्वेंट्री, कमज़ोर-क्रिप्टो फ़्लैग और Terrapin जाँच बिना किसी निर्भरता के काम करती है। होस्ट कुंजी फ़िंगरप्रिंट, ऑथ-विधि एन्यूमरेशन और साझा-कुंजी सहसंबंध Paramiko का उपयोग करते हैं (pip install paramiko)।
pip install -r requirements-dev.txt
pytest
केवल उन्हीं सिस्टम को स्कैन करें जिनके आप मालिक हैं या जिनका परीक्षण करने के लिए आप स्पष्ट रूप से अधिकृत हैं। अनधिकृत स्कैनिंग आपके क्षेत्राधिकार में अवैध हो सकती है।
| विकल्प | विवरण |
|---|
targets | एक या अधिक IP, होस्टनाम या CIDR नेटवर्क। |
-iL, --target-file FILE | फ़ाइल से लक्ष्य पढ़ें (प्रति पंक्ति एक, # टिप्पणियाँ स्वीकार्य)। |
-p, --ports SPEC | स्कैन करने के लिए पोर्ट, जैसे 22,80,1000-2000 (डिफ़ॉल्ट: 1-65535)। |
--scan-method {auto,connect,syn} | स्कैन बैक-एंड (डिफ़ॉल्ट: auto)। |
--validate {banner,paramiko,none} | SSH सत्यापन रणनीति (डिफ़ॉल्ट: banner)। |
--audit | प्रत्येक SSH सेवा का ऑडिट करें (एल्गोरिदम, होस्ट कुंजी, ऑथ विधियाँ, Terrapin, साझा-कुंजी सहसंबंध)। |
-t, --timeout SECONDS | प्रति-कनेक्शन टाइमआउट (डिफ़ॉल्ट: 2.0)। |
-w, --workers N | प्रति होस्ट समवर्ती प्रोब (डिफ़ॉल्ट: 200)। |
--host-concurrency N | समानांतर में स्कैन किए जाने वाले होस्ट (डिफ़ॉल्ट: 16)। |
-r, --retries N | टाइम-आउट हुए प्रोब के लिए पुनः प्रयास (डिफ़ॉल्ट: 0)। |
--json | परिणाम JSON के रूप में आउटपुट करें। |
-o, --output FILE | stdout के बजाय परिणाम फ़ाइल में लिखें। |
--no-progress | लाइव प्रगति संकेतक अक्षम करें। |
-v | विस्तृत (डीबग) लॉगिंग। |
-q, --quiet | प्रगति और सूचनात्मक लॉगिंग दबाएँ। |