
يتحقق هذا النص البرمجي من ثغرة تعداد أسماء المستخدمين في OpenSSH 7.7 (والإصدارات السابقة) (CVE-2018-15473). يقوم بإرسال حزمة مصادقة غير صالحة ويفسر استجابة خادم SSH لتحديد أسماء المستخدمين الصالحة.
يتحقق هذا السكريبت من ثغرة تعداد أسماء المستخدمين في OpenSSH الإصدار 7.7 (وما قبله) (CVE-2018-15473).
يقوم بإرسال حزمة مصادقة غير صالحة ويفسر استجابة خادم SSH لتحديد أسماء المستخدمين الصالحة.
https://www.exploit-db.com/download/45233
توافق Python
تم تحويل جميع جمل print إلى صيغة 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
تجنب التوليد المتكرر لمفاتيح RSA بطول 1024 بت (بطيء وغير آمن).
تم إدخال مفتاح RSAKey مُخبَّأ بطول 2048 بت للاختبار.
إصلاحات التسجيل والإخراج
إزالة الاعتماد على كون args.outputFile إلزامياً.
إضافة إجراء احتياطي إلى sys.stdout في حال لم يتم توفير --outputFile.
إصلاحات صغيرة
تعطيل التسجيل الداخلي المزعج لـ 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: عنوان IP أو نطاق خادم SSH الهدف.--port: منفذ SSH (الافتراضي هو 22)--threads: عدد الخيوط المتزامنة (الافتراضي هو 5)--userList: مسار ملف قائمة أسماء المستخدمين (اسم مستخدم واحد لكل سطر)--username: اختبار اسم مستخدم واحد--outputFile: مسار لحفظ النتائج (اختياري؛ يُطبع في الطرفية إذا تم حذفه)--outputFormat: تنسيق الإخراج: list أو json أو csv (الافتراضي: list)list: نص عادي لكل اسم مستخدم مع النتيجةjson: قائمة منظمة بأسماء المستخدمين الصالحة/غير الصالحةcsv: قيم مفصولة بفواصلاستخدم هذه الأداة فقط على الأنظمة التي تملكها أو لديك إذن صريح لاختبارها.
الاستخدام غير المصرح به غير قانوني وغير أخلاقي.