
استغلال مخصص كُتب لتعداد أسماء المستخدمين وفقًا لـ CVE-2016-6210
استغلال مخصص (python 2.7) كُتب لتعداد أسماء المستخدمين وفقًا لـ CVE-2016-6210 (OpenSSH 7.2-p2 والإصدارات السابقة)
يجب استخدامه فقط على الأنظمة المصرح بها
لقد كتبت هذا البرنامج كأداة لاستغلال CVE-2016-6210، وهي ثغرة في OpenSSH (قبل الإصدار 7.3) كشف عنها Eddie Harari
على حد فهمي، تكمن المشكلة في أن طريقة عمل OpenSSH في هذه الإصدارات تعني أنه عند إعطاء كلمة مرور كبيرة (في هذه الحالة 25kb)، فإن أوقات معالجة التجزئة تسمح لنا بمعرفة ما إذا كان اسم المستخدم موجودًا أم لا، لأن مقدار الوقت يكون أعلى للمستخدمين الصالحين.
يساعد هذا البرنامج في استغلال هذه الثغرة من خلال السماح للمستخدم بإرسال عدد من أسماء المستخدمين (من قائمة كلمات)، ومعرفة المدة التي استغرقها معالجتها. يمكن للمستخدم تعيين تنبيه لمقدار من الوقت يناسبه، وسيتم عرض الوقت واسم المستخدم إذا تجاوز وقت المعالجة هذا المقدار.
يمكن للمستخدم أيضًا إضافة عنوان IP أو بريد إلكتروني لاختبار كل عنصر في القائمة مع الإضافة في النهاية وبدونها. افتراضيًا (إذا لم يتم توفير إضافة)، سيختبر البرنامج كل كلمة في قائمة الكلمات بالصيغتين word و word@IP. وإذا تم توفير إضافة، فسيقوم بنفس الشيء، ولكن مع استبدال word@IP بـ word@appendage.
يمكن تخصيص عدد المرات التي يتم فيها إرسال كل كلمة وتوقيت الاستجابة، وسيقوم البرنامج تلقائيًا بإنشاء متوسط وقت معالجة يُستخدم بعد ذلك بدلاً من الأوقات الفردية، وذلك لأغراض الموثوقية.
يمكن أيضًا توفير تأخير، لمنع البرنامج من إرسال عدد كبير جدًا من الطلبات بسرعة كبيرة.
أما بالنسبة لرمز طلب ssh نفسه، فإن الفضل يعود إلى Eddie Harari لمعظم الكود في cveCode.py: يتم استخدام نسخة معدلة من كود Harari لإرسال التوقيتات وحسابها. يمكن العثور على نشرة الإصدار والكود النموذجي الخاص به هنا.
ملاحظة: تم اختبار الكود الخاص بي فقط كاختبار صندوق أسود على OpenSSH-7.2p2 (العميل هو kali linux)، ويحتاج إلى مزيد من الاختبار. النتائج والمعلمات يتحكم فيها المستخدم ويقوم بتفسيرها
python exploit_6210.py IP_ADDRESS [-h] [-a ALERT] [-w WORDLIST] [-e EMAIL] [-av ITERATE_AMOUNT] [-d DELAY]
حيث:
IP_ADDRESS هو المضيف الذي تختبر البرنامج ضده
-a ALERT (اختياري، القيمة الافتراضية 0.1) هو مقدار الوقت (بالثواني) الذي ترغب في إصدار تنبيه إذا كان وقت المعالجة أكبر
-w WORDLIST (اختياري، القيمة الافتراضية usernamelist) هو مسار الملف لقائمة أسماء المستخدمين التي ترغب في اختبارها ضد المضيف
-e EMAIL (اختياري) هو إضافة عنوان IP أو البريد الإلكتروني (والتي يجب أن تبدو مثل: @IP_ADDRESS أو @email.com) التي ترغب في تجربتها في نهاية كل عنصر في قائمة الكلمات (لاحظ أنه سيتم تجربة العنصر نفسه والعنصر + البريد الإلكتروني معًا)
-av ITERATE_AMOUNT (اختياري، القيمة الافتراضية 1) هو عدد مرات الاستعلام عن خادم ssh لكل اسم مستخدم معين، مما يسمح باستخدام متوسطات أكثر موثوقية للتوقيتات (كلما زاد الرقم، زاد الوقت المستغرق، بشكل كبير جدًا)
-d DELAY (اختياري، القيمة الافتراضية 0.5) هو التأخير التقريبي (بالثواني) بين كل طلب (كلما زاد الرقم، زاد الوقت المستغرق، بشكل كبير جدًا)