
أداة آلية لفحص واستغلال وتصحيح ثغرة CVE-2026-42945 (ثغرة تنفيذ برمجيات عن بُعد حرجة في nginx). تتضمن ماسح شبكة، واستغلال حقن الكومة، وأداة تصحيح دفعاتي مع تقارير HTML/JSON.
مجموعة أدوات شاملة لمسح وتصحيح واختبار CVE-2026-42945 - ثغرة RCE خطيرة في nginx
توفر هذه المجموعة أدوات شاملة لمسح وتصحيح واختبار CVE-2026-42945، وهي ثغرة تنفيذ تعليمات برمجية عن بعد (RCE) خطيرة في nginx تؤثر على الإصدارات الأقدم من 1.26.3 (الخط الرئيسي) و 1.24.1 (المستقر).
تستغل الثغرة تحليل رؤوس HTTP/2 غير الصحيح عند تعطيل ASLR باستخدام تقنيات heap spray.
| الخاصية | القيمة |
|---|---|
| معرف الثغرة | CVE-2026-42945 |
| النوع | تنفيذ تعليمات برمجية عن بعد (RCE) |
| درجة CVSS | 9.8 (حرج) |
| الإصدارات المتأثرة | < 1.26.3 (الخط الرئيسي) / < 1.24.1 (المستقر) |
| الإصدار المُصحَّح | 1.26.3+ |
| ناقل الهجوم | تحليل رؤوس HTTP/2 غير صحيح |
| المتطلبات المسبقة | تعطيل ASLR على النظام المستهدف |
يمسح شبكة فرعية أو مضيفًا واحدًا لتحديد تثبيتات nginx الثغرة.
الميزات:
يصحح تلقائيًا مثيلات nginx الثغرة إلى الإصدار الآمن الأحدث.
الميزات:
يختبر ثغرة CVE-2026-42945 عبر تقنية heap spray.
الميزات:
paramiko (>= 3.0.0) - مكتبة عميل SSH
rich (>= 13.0.0) - تنسيق الطرفية وأشرطة التقدم
git clone https://github.com/gagaltotal/CVE-2026-42945-NGINX-Rift-Toolkit
cd CVE-2026-42945-NGINX-Rift-Toolkit
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

nginx_scanner.py)python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.10 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/30 --user admin --password "password"
python3 nginx_scanner.py --subnet 192.168.1.0/24 --port 2222 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --output report.html
--subnet SUBNET الشبكة الفرعية المستهدفة بصيغة CIDR (مطلوب)
--user USER اسم مستخدم SSH (الافتراضي: root)
--password PASSWORD كلمة مرور SSH
--key KEY_PATH مسار المفتاح الخاص SSH
--port PORT منفذ SSH (الافتراضي: 22)
--timeout TIMEOUT مهلة الاتصال بالثواني (الافتراضي: 5)
--output FILE ملف تقرير الإخراج (HTML/JSON)
--workers WORKERS عدد الخيوط المتزامنة (الافتراضي: 20)
nginx_patcher.py)
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
python3 nginx_patcher.py --subnet 192.168.1.0/24 --target-version 1.26.3 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 10.0.0.0/30 --port 2222 --user admin --password "password"
--subnet SUBNET الشبكة الفرعية المستهدفة بصيغة CIDR (مطلوب)
--user USER اسم مستخدم SSH (الافتراضي: root)
--password PASSWORD كلمة مرور SSH
--key KEY_PATH مسار المفتاح الخاص SSH
--port PORT منفذ SSH (الافتراضي: 22)
--timeout TIMEOUT مهلة الاتصال بالثواني (الافتراضي: 30)
--target-version VERSION إصدار nginx المراد التصحيح إليه (الافتراضي: الأحدث)
--dry-run عرض ما سيتم تصحيحه دون تنفيذ
--workers WORKERS عدد الخيوط المتزامنة (الافتراضي: 10)
exploit.py)
python3 exploit.py --target 192.168.1.100 --port 80
python3 exploit.py --target 192.168.1.100 --port 80 --command "cat /etc/passwd"
python3 exploit.py --target 192.168.1.100 --port 80 --spray 50
python3 exploit.py --target 192.168.1.100 --port 80 --verbose
--target HOST عنوان IP أو اسم النطاق للهدف (مطلوب)
--port PORT المنفذ المستهدف (الافتراضي: 80)
--command CMD الأمر المراد تنفيذه
--spray NUM عدد محاولات heap spray (الافتراضي: 20)
--timeout TIMEOUT مهلة الاتصال بالثواني (الافتراضي: 5)
--tries NUM عدد محاولات الاستغلال (الافتراضي: 10)
--verbose تمكين الإخراج المفصل
# الخطوة 1: مسح الشبكة للعثور على المثيلات الثغرة
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key --output scan_results.html
# الخطوة 2: مراجعة نتائج المسح في scan_results.html
# الخطوة 3: تصحيح المثيلات الثغرة
python3 nginx_patcher.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# الخطوة 4: التحقق من تطبيق التصحيحات بتشغيل الماسح مرة أخرى
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# الخطوة 1: محاكاة لرؤية ما سيتم تصحيحه
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run