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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-48990 — needrestart < 3.8 تصعيد الامتيازات المحلية عبر PYTHONPATH injection | Kitploit
أدوات/GitHubGitHub/blueberryp1ll/cve-2024-48990
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمر
GitHubblueberryp1ll/cve-2024-48990

CVE-2024-48990

needrestart < 3.8 تصعيد الامتيازات المحلية عبر PYTHONPATH injection

عرض المستودع
11منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-48990 — تصعيد الامتيازات المحلية في needrestart

أداة استغلال لتصعيد الامتيازات المحلية تستهدف needrestart < 3.8 على أنظمة Ubuntu/Debian عبر حقن PYTHONPATH.

نظرة عامة

needrestart هو أداة مثبتة بشكل شائع على خوادم Ubuntu/Debian تتحقق من الخدمات التي تحتاج إلى إعادة التشغيل بعد ترقية المكتبات. يعمل كـ root ويتم تشغيله تلقائيًا بعد عمليات apt أو يتم استدعاؤه مباشرة عبر sudo.

عند فحص عمليات Python، يقوم needrestart بإعادة استدعاء مترجم Python مع وراثة البيئة الكاملة للعملية من /proc/<pid>/environ — بما في ذلك PYTHONPATH. يمكن لمستخدم محلي غير مميز استغلال ذلك عن طريق:

  1. تعيين PYTHONPATH إلى دليل يحتوي على حزمة importlib ضارة
  2. إبقاء عملية Python قيد التشغيل بحيث يلتقطها needrestart أثناء مسحه
  3. انتظار تنفيذ needrestart — حيث يقوم بتحميل importlib/__init__.py الخاص بالمهاجم كـ root

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

الحزمةالضعيفةالمصححة
needrestart< 3.8>= 3.8

تم التأكيد على:

  • Ubuntu 22.04 LTS (Jammy) — needrestart 3.5-5ubuntu2.4
  • Ubuntu 24.04 LTS (Noble) — needrestart 3.6-7ubuntu4

الاستخدام

root@kitploit:~
chmod +x exploit.sh
./exploit.sh

ثم قم بتشغيل needrestart من محطة أخرى:

root@kitploit:~
# إذا كان لديك وصول sudo مباشر إلى needrestart:
sudo /usr/sbin/needrestart

# أو قم بتشغيله عبر apt (يتم تشغيل needrestart كخطاف بعد apt):
sudo apt update && sudo apt install --reinstall coreutils

عند تشغيل needrestart، يقوم الاستغلال بإنشاء شل SUID في /var/tmp/.rootshell ويدخلك تلقائيًا في شل root.

إذا لم يعمل التنفيذ التلقائي، احصل على الشل يدويًا:

root@kitploit:~
/var/tmp/.rootshell -p

الخيارات

root@kitploit:~
Usage: ./exploit.sh [OPTIONS]

Options:
  -c <command>    أمر شل مخصص ليتم تشغيله كـ root (الافتراضي: نسخ شل suid)
  -w <seconds>    أقصى وقت انتظار بالثواني (الافتراضي: 300)
  -t              وضع التشغيل: محاولة تشغيل needrestart عبر apt
  -n              بدون تنظيف: الاحتفاظ بدليل الحمولة بعد الاستغلال
  -h              عرض رسالة المساعدة هذه

أمثلة

root@kitploit:~
# الافتراضي — إنشاء نسخة من /bin/bash مع SUID في /var/tmp/.rootshell
./exploit.sh

# تشغيل needrestart تلقائيًا عبر apt (يتطلب وصول sudo apt)
./exploit.sh -t

# حمولة مخصصة: إضافة المستخدم الحالي إلى sudoers
./exploit.sh -c 'usermod -aG sudo targetuser'

# حمولة مخصصة: قراءة ملف مقيد
./exploit.sh -c 'cat /root/flag.txt > /tmp/flag.txt && chmod 644 /tmp/flag.txt'

# وقت انتظار ممتد (10 دقائق)
./exploit.sh -w 600

كيف يعمل

root@kitploit:~
┌───────────────────────────────────────────────────────────────┐
│  1. إنشاء /tmp/.nr_XXXX/importlib/__init__.py مع الحمولة      │
│     التي تقوم بتشغيل os.system() لنسخ /bin/bash كـ SUID       │
├───────────────────────────────────────────────────────────────┤
│  2. بدء عملية Python طويلة الأمد مع                           │
│     PYTHONPATH=/tmp/.nr_XXXX مصدرة في بيئتها                │
├───────────────────────────────────────────────────────────────┤
│  3. تشغيل needrestart (عبر sudo أو خطاف apt)، مسح              │
│     /proc/*/environ، العثور على عملية Python                  │
├───────────────────────────────────────────────────────────────┤
│  4. needrestart يعيد استدعاء python3 كـ ROOT وريثًا لـ        │
│     PYTHONPATH الخاص بالمهاجم → تحميل importlib الضار        │
├───────────────────────────────────────────────────────────────┤
│  5. تنفيذ الحمولة كـ root: cp /bin/bash + chmod 4755          │
│     → المهاجم يشغل /var/tmp/.rootshell -p → شل root          │
└───────────────────────────────────────────────────────────────┘

ملاحظات

  • يتم وضع شل SUID في /var/tmp/ بدلاً من /tmp/ لأن /tmp غالبًا ما يكون مثبتًا مع nosuid، مما يزيل بت SUID بصمت.
  • يقوم importlib/__init__.py الضار باستعادة importlib الحقيقي بعد تنفيذ الحمولة عن طريق تنظيف sys.path و sys.modules، حتى لا يتعطل needrestart بشكل مرئي.
  • تقوم عملية Python الوهمية بتشغيل ملف .py فعلي (وليس سطر واحد -c) لتوافق أفضل مع فحص المترجم الخاص بـ needrestart.

الكشف

مؤشرات على استخدام هذا الاستغلال:

  • ملفات SUID غير متوقعة في /var/tmp/ أو /tmp/
  • عمليات Python تعمل بقيم PYTHONPATH غير عادية تشير إلى أدلة مؤقتة
  • أدلة تطابق /tmp/.nr_* تحتوي على دليل فرعي importlib/

التخفيف

root@kitploit:~
# تحديث needrestart إلى الإصدار المصحح
sudo apt update && sudo apt install needrestart

# أو تعطيل فحص المترجم بالكامل
echo "\$nrconf{interpscan} = 0;" | sudo tee /etc/needrestart/conf.d/no-interp.conf

المراجع

  • CVE-2024-48990
  • إعلان Qualys — needrestart LPE
  • إشعار أمان Ubuntu USN-7117-1

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

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

الترخيص

MIT

تنزيل الأداة