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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-3560-exploit — CVE-2021-3560 — استغلال تصعيد الامتيازات في Polkit عبر سباق حالة في accounts-daemon لـ D-Bus | Kitploit
أدوات/GitHubGitHub/jeanback1/cve-2021-3560-exploit
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالتعلم والتعليمالفريق الأحمر
GitHubjeanback1/cve-2021-3560-exploit

CVE-2021-3560-exploit

CVE-2021-3560 — استغلال تصعيد الامتيازات في Polkit عبر سباق حالة في accounts-daemon لـ D-Bus

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-3560 — تصعيد الامتيازات في Polkit

CVE-2021-3560 هي ثغرة تصعيد امتيازات محلية في Polkit (سابقًا PolicyKit)، وهو إطار التفويض المستخدم في بيئات سطح المكتب لينكس. يمكن لمهاجم محلي غير مميز استغلال حالة سباق (race condition) في واجهة D-Bus الخاصة بـ accounts-daemon لإنشاء مستخدم مميز، تعيين كلمة مرور له، والحصول في النهاية على صلاحيات الجذر (root).


كيف يعمل

الخلفية: Polkit + accounts-daemon

accounts-daemon (org.freedesktop.Accounts) هي خدمة D-Bus نظامية تدير حسابات المستخدمين (الإنشاء، الحذف، تغيير كلمة المرور، إلخ). تعرض طرق مثل:

الطريقةالإجراء
CreateUserإنشاء مستخدم نظام جديد
SetPasswordتعيين كلمة مرور المستخدم
DeleteUserحذف مستخدم

تتطلب هذه العمليات تفويضًا. عندما تصل استدعاء D-Bus، يكون Polkit وسطًا بين المتصل و accounts-daemon:

root@kitploit:~
Caller  →  D-Bus  →  Polkit (authorization check)  →  accounts-daemon (action)

يقرر Polkit ما إذا كان المتصل لديه الإذن، وإذا كان الأمر كذلك، يعيد توجيه الطلب إلى accounts-daemon للتنفيذ.

حالة السباق

الثغرة هي TOCTOU (وقت التحقق، وقت الاستخدام) سباق. إليك الفكرة الأساسية:

  1. يتم إرسال استدعاء طريقة D-Bus إلى accounts-daemon (مثل CreateUser).
  2. يستلمه Polkit ويقوم بإجراء التحقق من التفويض — غالبًا بالاعتماد على حوار وكيل polkit الذي ينتهي مهلة، ويعيد استجابة "غير مفوض". ومع ذلك، بسبب خطأ، يعالج معالجة المهلة/الخطأ في polkit بعض حالات الخطأ بشكل غير صحيح على أنها نجاح أو يترك المعالجة من جانب الخدمة في حالة تفويض جزئي.
  3. إذا تم قتل استدعاء D-Bus في اللحظة المناسبة تمامًا — بعد اتخاذ قرار التفويض من Polkit ولكن قبل انتهاء accounts-daemon من المعالجة — يتم إنشاء المستخدم دون توثيق مناسب، ومع ذلك ينتهي سجل المستخدم غير مكتمل (مثل، بدون كلمة مرور، بدون دليل المنزل).
  4. يمكن للمهاجم بعد ذلك استخدام نفس السباق لاستدعاء SetPassword على المستخدم المنشأ حديثًا (ولكن غير الموثوق)، أو الحالة غير المكتملة نفسها تمنح امتيازات مرتفعة.

باختصار: اقتل الطلب في الوقت المناسب، وسوف تتجاوز التوثيق.

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

يقوم هذا السكريبت exploit.sh بأتمتة سلسلة الهجوم الكاملة:


الاستخدام

root@kitploit:~
# Clone the repository
git clone https://github.com/Jeanback1/CVE-2021-3560.git
cd CVE-2021-3560

# Make the exploit executable
chmod +x exploit.sh

# Run it
./exploit.sh

بمجرد اكتمال الاستغلال، سيكون لديك شل جذر:

root@kitploit:~
whoami
# root

مثال على الإخراج

Exploit execution


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

المكونمتأثر
polkit≤ 0.119 (غير مصحح)
accounts-daemon (accountsservice)جميع الإصدارات التي تستخدم polkit المتأثر

تم تصحيح الثغرة في polkit 0.120 والإصدارات الأحدث.

التوزيعات التي تم تصحيحها (غير شاملة):

  • أوبونتو 20.04+ (مع تحديثات أمنية بعد يونيو 2021)
  • دبيان 11+ (مع تحديثات أمنية)
  • RHEL 8+ / CentOS 8+ (مع تصحيح)
  • فيدورا 34+

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

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

تنزيل الأداة
الخطوةالإجراء
1. معايرة الوقتيستخدم استدعاء وهمي CreateUser("nobody") لقياس الوقت الذي تستغرقه الرحلة ذهابًا وإيابًا لـ D-Bus، لحساب "نافذة القتل"
2. إنشاء المستخدميرسل استدعاء CreateUser لاسم مستخدم محدد، يبدأه في الخلفية، ينتظر للنافذة المحسوبة، ثم يقتله — مستغلاً السباق لإنشاء مستخدم غير مفوض
3. تعيين كلمة المروربمجرد وجود المستخدم (في حالة غير مكتملة)، يرسل استدعاء SetPassword بنفس تقنية السباق لتعيين كلمة مرور معروفة
4. تصعيد الامتيازاتيستخدم su للتبديل إلى المستخدم الجديد، يشغل sudo (الذي يعمل لأن المستخدم تم إنشاؤه عبر مسار تفويض تم تجاوزه)، ينسخ /bin/bash إلى /var/tmp/bash مع SUID root، ويطلق شل جذر