
استغلال PoC لثغرة CVE-2012-2982 (Webmin RCE)، لأغراض تعليمية.
يحتوي هذا المستودع على استغلال إثبات مفهوم (PoC) لثغرة CVE-2012-2982، وهي ثغرة تنفيذ أوامر عن بُعد بعد المصادقة تؤثر على إصدارات Webmin 1.590 والإصدارات الأقدم. تقع الثغرة في نقطة النهاية /file/show.cgi، حيث يمكن للمهاجم تنفيذ أوامر عشوائية عن طريق حقن أحرف خاصة (مثل رمز الأنبوب |) في طلب معدّل.
إثبات المفهوم هذا مخصّص لأغراض تعليمية وبحوث أمنية فقط. الاستغلال غير المصرح به للأنظمة دون إذن يُعد غير قانوني وغير أخلاقي.
Webmin هي أداة إدارة أنظمة شائعة تعمل عبر الويب لإدارة الأنظمة المبنية على يونكس. في الإصدارات 1.590 والإصدارات الأقدم، توجد ثغرة أمنية في وحدة مدير الملفات. تنشأ المشكلة من عدم كفاية تنظيف مدخلات المستخدم عند التعامل مع سكربت /file/show.cgi. من خلال حقن محارف شل (|)، يمكن لمستخدم موثّق تنفيذ أوامر عشوائية على النظام الهدف بصلاحيات عملية Webmin (غالبًا صلاحيات الجذر root).
الإصدارات المتأثرة: Webmin 1.590 والإصدارات الأقدم
متطلبات الهجوم:
يجب أن يمتلك المهاجم بيانات اعتماد صالحة لـ Webmin (حساب مستخدم بصلاحيات منخفضة يكفي).
يجب أن تكون وحدة مدير الملفات قابلة للوصول.
ما يسمح به الاستغلال:
تنفيذ التعليمات البرمجية عن بُعد (RCE)
تصعيد الصلاحيات (إذا كان Webmin يعمل بصلاحيات الجذر root)
اختراق النظام
نقطة النهاية المعرضة للخطر هي:
http://<target_ip>:10000/file/show.cgi
يعتمد الهجوم على استغلال التحقق غير الكافي من المدخلات عند تمرير مسار ملف، مما يسمح بتنفيذ أوامر شل محقونة عبر |.
يحتوي هذا المستودع على سكربت استغلال بلغة Python يقوم بأتمتة ما يلي:
المصادقة: تسجيل الدخول إلى Webmin باستخدام بيانات الاعتماد المقدمة.
استخراج معرف الجلسة: استرجاع معرف الجلسة المطلوب للطلبات الموثّقة.
تنفيذ الحمولة: إرسال طلب خبيث لتنفيذ أوامر عشوائية.
مسار تنفيذ عشوائي: استخدام اسم ملف مولّد عشوائيًا لتجنب الاكتشاف.
دعم القشرة العكسية: توليد حمولة قشرة عكسية للاتصال بجهاز المهاجم.
معالجة الأخطاء: التعامل مع فشل الطلبات بشكل سليم.
تصميم معياري: سهل التعديل لاختبار حمولات مختلفة.
Python 3
مكتبة requests (pip install requests)
نسخة Webmin (إصدار معرض للخطر) للاختبار (استخدم بيئة مختبرية خاضعة للتحكم)
الاستخدام:
python3 exploit.py <target_IP>
مثال:
python3 exploit.py 192.168.1.100
عنوان IP للمهاجم (lhost): 10.21.48.124
منفذ المهاجم (lport): 1937
بيانات اعتماد Webmin الهدف:
اسم المستخدم: user1
كلمة المرور: 1user
في حال نجاح الاستغلال، يتم إنشاء اتصال قشرة عكسية بجهاز المهاجم.
قبل تشغيل الاستغلال، قم بإعداد مستمع Netcat على جهاز الهجوم لاستقبال القشرة العكسية:
nc -lvnp 1937
بمجرد تنفيذ الاستغلال بنجاح، يجب أن تستقبل اتصال قشرة من الجهاز الهدف.
إثبات المفهوم هذا مخصّص بشكل صارم للبحث الأمني والأغراض التعليمية. يجب استخدامه فقط في بيئات اختبار الاختراق المصرح بها. الاستخدام غير المصرح به ضد الأنظمة الإنتاجية يُعد انتهاكًا لقوانين الأمن السيبراني وقد يؤدي إلى عواقب قانونية.
المؤلف غير مسؤول عن أي إساءة استخدام لهذا الاستغلال. استخدم إثبات المفهوم هذا فقط للاختبارات الأمنية القانونية وأنشطة الاختراق الأخلاقي.