
SSH उपयोगकर्ताओं की गणना करने वाला स्क्रिप्ट जो टाइमिंग अंतर और प्रमाणीकरण प्रतिक्रियाओं पर आधारित है। यह OpenSSH के कमजोर संस्करणों (≤ 7.7) में CVE-2018-15473 के समान वेक्टर का शोषण करता है, हालांकि यह आधुनिक कॉन्फ़िगरेशन में पैटर्न भी प्रकट कर सकता है।
SSH उपयोगकर्ता गणना स्क्रिप्ट, समय अंतर और प्रमाणीकरण प्रतिक्रियाओं पर आधारित। यह CVE-2018-15473 के समान वेक्टर का शोषण करता है जो OpenSSH के कमजोर संस्करणों (≤ 7.7) में काम करता है, हालांकि आधुनिक कॉन्फ़िगरेशन में भी पैटर्न प्रकट कर सकता है। Python 3 + Paramiko में काम करता है और निम्नलिखित समर्थन करता है:
बैनर की पूर्व-पठन EOF/NoBanner त्रुटियों से बचने के लिए।
प्रति प्रयास पुनः प्रयास और उपयोगकर्ताओं के बीच कूलडाउन (tarpits/MaxStartups से बचने के लिए)।
लक्ष्य के जिटर के अनुसार पैरामीटरों का ऑटोट्यून (-m, -t)।
⚠️ नैतिक उपयोग
इस स्क्रिप्ट का उपयोग केवल अपने स्वयं के वातावरण में या स्पष्ट अनुमति के साथ ही किया जाना चाहिए। बिना अनुमति के बाहरी सिस्टम पर दुरुपयोग अवैध हो सकता है।
📖 मूल उपयोग ./ssh_enum_py3.py -i -u users.txt -m <multiplier_ms> -t
उदाहरण: ./ssh_enum_py3.py -i 149.210.234.234 -u users.txt -m 5000 -t 8
⚙️ विकल्प -i, --ip लक्ष्य होस्ट/IP (अनिवार्य) -p, --port SSH पोर्ट (डिफ़ॉल्ट: 22) -u, --userlist उपयोगकर्ताओं की सूची वाली फ़ाइल (एक पंक्ति में एक)
-a, --autotune अनुशंसित पैरामीटर (गुणक और सीमा) की गणना करता है -m, --multiplier स्थानीय माध्यिका से ऊपर मिलीसेकंड में सीमा -t, --threshold न्यूनतम "वोट" (प्रयास जो कटऑफ से अधिक हैं)
--attempts प्रति उपयोगकर्ता प्रयास (डिफ़ॉल्ट: 12) --timeout कनेक्शन/प्रमाणीकरण टाइमआउट (सेकंड, डिफ़ॉल्ट: 6) --banner-timeout SSH बैनर पढ़ने के लिए टाइमआउट (सेकंड, डिफ़ॉल्ट: 12) --delay एक ही उपयोगकर्ता के प्रयासों के बीच विराम (सेकंड, डिफ़ॉल्ट: 0.6) --cooldown-users उपयोगकर्ताओं के बीच विराम (सेकंड, डिफ़ॉल्ट: 0) --retries बैनर/परिवहन त्रुटि की स्थिति में प्रति प्रयास पुनः प्रयास
🚀 उपयोग के उदाहरण
आउटपुट:
[*] ऑटोट्यून सुझाव: गुणक (ms): 4986 सीमा : 8 बेसलाइन_मीडियन : 3586 ms (औसत=3596 ms) त्रुटि मिश्रण : {'AuthFailed': 12}
एक ही रन में ऑटोट्यून + गणना
./ssh_enum_py3.py -i 149.210.234.234 -a -u users.txt
--timeout 12 --banner-timeout 30 --delay 3 --cooldown-users 15
निश्चित पैरामीटर के साथ सीधी गणना
./ssh_enum_py3.py -i 149.210.234.234 -u users.txt -m 4986 -t 8
--attempts 10 --timeout 12 --banner-timeout 30 --retries 5 --delay 3 --cooldown-users 15
📋 परिणामों की व्याख्या
likely VALID → उपयोगकर्ता संभवतः मौजूद है (≥ सीमा प्रयासों में कटऑफ पार किया)।
likely INVALID → उपयोगकर्ता संभवतः मौजूद नहीं है (लगातार प्रतिक्रियाएँ जैसे "AuthFailed")।
errors={...} → कोड का सारांश:
AuthFailed: SSH की सामान्य प्रतिक्रिया।
NoBanner: सर्वर ने बैनर से पहले कनेक्शन बंद किया (tarpit, MaxStartups, WAF)।
TransportError: नेटवर्क/समय त्रुटि।