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

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

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

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

دليل الأدوات

الفئات

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

CVE-2024-48990

استغلال لـ CVE-2024-48990 (تصعيد الامتيازات المحلية في needrestart < 3.8)

عرض المستودع
5منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2024-48990

استغلال لـ CVE-2024-48990 (تصعيد الامتيازات محليًا في needrestart < 3.8)

الخلفية

اقرأ https://blog.qualys.com/vulnerabilities-threat-research/2024/11/19/qualys-tru-uncovers-five-local-privilege-escalation-vulnerabilities-in-needrestart. تشرحه Qualys بشكل رائع.

باختصار:

على الأنظمة التي تعمل بنسخة needrestart أقل من 3.8، يمكن للمستخدمين المحليين تنفيذ تعليمات برمجية عشوائية ورفع امتيازاتهم إلى صلاحيات الجذر دون أي تفاعل من المستخدم.

لقطة شاشة من 2024-11-21 20-07-48

الاستغلال

الاستغلال كما هو مكتوب الآن سيضيف مستخدمًا جديدًا باسم "_daemon" إلى النظام بمعرف المستخدم/المجموعة UID/GID بقيمة 0 (الجذر) باستخدام أمر sed لتعديل ملف /etc/passwd. كلمة المرور هي نفس اسم المستخدم. ولست متأكدًا حتى من إمكانية تسميته استغلالًا؛ فهو مجرد مكتبة مشتركة تنفّذ أمرًا واحدًا.

لتجميع الاستغلال بنفسك، نفّذ ما يلي:

gcc exploit.c -o exploit.so -shared -fPIC -s

1. أنشئ دليلًا لتخزين ملفات الاستغلال. يجب أن يحتوي الدليل الذي تنشئه على دليل فرعي باسم "importlib"

mkdir -p /tmp/.X11-Unix/importlib

2. ابدأ عملية من شأنها تشغيل الاستغلال

يمكنك تشغيل أي سكربت بايثون يستمر لفترة طويلة. ولكن لكي تبدو أقل إثارة للشك في قائمة العمليات، يمكنك استخدام هذا السطر الواحد لتشغيل مترجم بايثون يتم تعليقه فور بدئه (لذلك لا ينفّذ أي شيء فعليًا).

  • PYTHON - مسار مترجم بايثون

  • ARGV - السلسلة التي ستظهر في قائمة العمليات

  • PYPATH - المسار إلى الدليل الذي أنشأته (بدون تضمين دليل importlib)

بالنسبة إلى ARGV، تأكد مما يلي:

  • أن يكون مسار مترجم بايثون هو الوسيط الأول في ARGV.

  • أن يكون الوسيط الثاني ("السكربت") ملفًا موجودًا فعليًا على النظام (يتحقق needrestart من ذلك). لا يلزم أن يكون سكربت بايثون حقيقيًا.

  • ألّا يكون الوسيط الثاني مطابقًا لعملية قيد التشغيل بالفعل (سيستخدم needrestart العملية "المخزنة مؤقتًا" التي رآها سابقًا).

بخلاف ذلك، يمكنك التلاعب بـ ARGV كما تشاء. ربما اجعله يبدو كعملية نظام عادية؟

PYPATH=/tmp/e/ PYTHON=/usr/bin/python3 ARGV='/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers' python3 -c 'import os,ctypes; libc=ctypes.CDLL("libc.so.6"); pid=os.fork(); exit() if pid > 0 else print("\n",os.getpid()); libc.ptrace(0, 0, 0, 0); os.execvpe(os.environ["PYTHON"], os.environ["ARGV"].split(), {"PYTHONPATH":os.environ["PYPATH"]})'

3. انقل الكائن المشترك للاستغلال إلى المكان الصحيح

يجب أن يكون داخل دليل importlib وأن يكون اسمه "init.so"

mv /tmp/exploit.so /tmp/.X11-Unix/importlib/__init__.so

4. انتظر حتى يقوم needrestart بأداء وظيفته

في المرة القادمة التي يعمل فيها needrestart (أي عندما يبدأه تحديث عبر apt أو unattended upgrades)، فإنه سيشغّل بايثون مع متغير PYTHONPATH الخاص بعمليتنا ويحمّل ملف init.so، الذي سينفّذ أمرنا. وستتمكن من تسجيل الدخول ببيانات الاعتماد _damon:_daemon.

الأمور التي قد تمنع الاستغلال من العمل

إن needrestart ليست غبية تمامًا، فهي تتحقق من بضعة أشياء عند فحص العمليات وقبل الدخول إلى الجزء القابل للاستغلال من الكود:

  • هل العملية سكربت بايثون قيد التشغيل؟ إذا لم تكن كذلك، يتخطاها (يتم تخطي العمليات المنشأة عبر python -c)
  • هل سبقت رؤية العملية؟ لا يمكنك إنشاء نسخة طبق الأصل من عملية أخرى (مثل unattended-upgrade-shutdown أو networkd-dispatcher) وإلا فسيتم تخطيها.
  • إذا كان ملف /etc/needrestart/needrestart.conf يحتوي على "$nrconf{interpscan}" مضبوطًا على "0"، فأنت غير محظوظ.
تنزيل الأداة