
यह स्क्रिप्ट OpenSSH 7.7 (और इससे पहले के संस्करण) की उपयोगकर्ता नाम गणना भेद्यता (CVE-2018-15473) की जाँच करता है। यह एक विकृत प्रमाणीकरण पैकेट भेजता है और मान्य उपयोगकर्ता नामों की पहचान करने के लिए SSH सर्वर की प्रतिक्रिया की व्याख्या करता है।
यह स्क्रिप्ट OpenSSH 7.7 (और पुराने) उपयोगकर्ता नाम गणना भेद्यता (CVE-2018-15473) की जाँच करती है। यह एक गलत प्रारूप वाला प्रमाणीकरण पैकेट भेजती है और मान्य उपयोगकर्ता नाम की पहचान करने के लिए SSH सर्वर की प्रतिक्रिया की व्याख्या करती है।
https://www.exploit-db.com/download/45233
Python संगतता
सभी प्रिंट स्टेटमेंट को Python 3 सिंटैक्स (print("...")) में बदल दिया गया।
map(str.strip, f.readlines()) को स्पष्टता और संगतता के लिए एक सूची समझ (list comprehension) से बदल दिया गया।
Paramiko 3.x+ संगतता बदला गया:
paramiko.auth_handler.AuthHandler._handler_table[...]
इसके साथ:
from paramiko.auth_handler import AuthHandler
client_table = AuthHandler._client_handler_table.fget(AuthHandler)
इससे TypeError: 'property' object is not subscriptable से बचा जाता है।
प्रत्यक्ष पैचिंग को बदला गया:
handler_table[MSG_SERVICE_ACCEPT] = malform_packet
इसके साथ:
client_table[paramiko.common.MSG_SERVICE_ACCEPT] = malform_packet
RSA कुंजी जनन अनुकूलन 1024-बिट RSA कुंजियों के बार-बार जनन (धीमा और असुरक्षित) से बचा गया। परीक्षण के लिए एक कैश्ड 2048-बिट RSAKey शामिल किया गया।
लॉगिंग और आउटपुट सुधार args.outputFile के अनिवार्य होने पर निर्भरता हटा दी गई। यदि --outputFile प्रदान नहीं किया गया तो sys.stdout पर फॉलबैक जोड़ा गया।
छोटे सुधार Paramiko की शोरगुल वाली आंतरिक लॉगिंग अक्षम कर दी गई। अप्रचलित या अनावश्यक अपवाद-हैंडलिंग पैटर्न बदल दिए गए। समान स्पेसिंग/इंडेंटेशन लागू किया गया (सभी टैब को 4 स्पेस में बदल दिया गया)।
निर्भरताएँ स्थापित करें:
pip3 install -r requirements.txt
python3 open-ssh-ue.py <hostname> --userList wordlist.txt
python3 open-ssh-ue.py hostname \
--userList wordlist.txt \
--threads 10 \
--outputFile results.json \
--outputFormat json
hostname: लक्ष्य SSH सर्वर का IP या डोमेन।--port: SSH पोर्ट (डिफ़ॉल्ट 22 है)--threads: समवर्ती थ्रेड की संख्या (डिफ़ॉल्ट 5 है)--userList: उपयोगकर्ता नाम सूची फ़ाइल का पथ (प्रति पंक्ति एक उपयोगकर्ता नाम)--username: एकल उपयोगकर्ता नाम का परीक्षण करें--outputFile: परिणाम सहेजने का पथ (वैकल्पिक; छोड़े जाने पर टर्मिनल पर प्रिंट होता है)--outputFormat: आउटपुट प्रारूप: list, json, या csv (डिफ़ॉल्ट: list)list: प्रति उपयोगकर्ता नाम सादा पाठ परिणामjson: मान्य/अमान्य उपयोगकर्ता नामों की संरचित सूचीcsv: अल्पविराम-पृथक मानइस उपकरण का उपयोग केवल उन सिस्टम पर करें जिनके आप मालिक हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति है। अनधिकृत उपयोग अवैध और अनैतिक है।