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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-4034 — هذا هو تنفيذي البسيط لاستغلال ثغرة PwnKit. | Kitploit
أدوات/GitHubGitHub/nicoibarburu/cve-2021-4034
تصعيد الامتيازاتالاستغلالالتعلم والتعليماستغلال الملفات الثنائية
GitHubnicoibarburu/cve-2021-4034

CVE-2021-4034

هذا هو تنفيذي البسيط لاستغلال ثغرة PwnKit.

عرض المستودع
منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

إثبات المفهوم (Proof of Concept): CVE-2021-4034 (PwnKit)

ملاحظة: هذا المستودع ومحتواه جزء من مشروع التخرج (GrAL)، أُنشئ لأغراض تعليمية وبحث أكاديمي فقط.

الوصف

يحتوي هذا المستودع على إثبات مفهوم (PoC - Proof of Concept) لثغرة CVE-2021-4034 (المعروفة أيضًا باسم PwnKit). تؤثر هذه الثغرة من نوع تلف الذاكرة على مكوّن pkexec في Polkit في أنظمة Linux. عند تنفيذ pkexec بقائمة وسائط فارغة (argc == 0)، يمكن التلاعب بمتغيرات البيئة لإجباره على تحميل مكتبة مشتركة عشوائية، وبالتالي تحقيق تصعيد صلاحيات محلي.

مراحل الاستغلال (تحليل البيئة)

فيما يلي الخطوات اللازمة لتجهيز بيئة التنفيذ لاستغلال الخلل. توضح هذه العملية كيفية استغلال خطأ القراءة/الكتابة في الذاكرة في pkexec:

1. تجهيز البيئة (بنية gconv)

يستغل هذا الإكسبلويت الطريقة التي تتعامل بها GLib مع تحويل الأحرف عند محاولة طباعة رسالة خطأ. للقيام بذلك، تتمثل الخطوة الأولى في إنشاء بنية دليل محددة تعمل كمستودع محلي لوحدات تحويل GCONV بالنسبة إلى GLib.

2. التلاعب بمتغيرات البيئة

مفتاح الثغرة هو حقن متغير البيئة GCONV_PATH، عبر استغلال الكتابة خارج الحدود الناتجة عن حالة argc == 0 في pkexec. بهذه الطريقة، يُجبر البرنامج على استخدام مجموعة أحرف شاذة، مما يوجّه GLib إلى البحث عن وحدات تحويل الأحرف في الدليل المتحكم فيه الذي تم إنشاؤه في الخطوة السابقة.

3. إنشاء مكتبة مشتركة خبيثة (.so)

لتنفيذ الكود الخاص بنا، يجب تجميع مكتبة مشتركة (shared object أو .so). عندما يحاول pkexec معالجة مجموعة أحرف لا يستطيع العثور عليها، فسيقوم بتحميل هذه المكتبة من دليل gconv الزائف الخاص بنا. بما أن pkexec هو ملف ثنائي مع تفعيل بِت SUID (يُنفَّذ بصلاحيات root)، فإن تحميل هذه المكتبة سيجعل الكود الخاص بنا يحصل على صلاحيات root، مستحوذًا على السيطرة الكاملة على النظام (على سبيل المثال، فتح قشرة root).

4. إعداد ملف gconv-modules

أخيرًا، يجب إنشاء ملف إعداد باسم gconv-modules في هذا الدليل المحلي. يعمل هذا الملف كفهرس: يخبر GLib بالمكتبة المحددة (.so) التي يجب تحميلها لإجراء تحويل مجموعة الأحرف المحددة المطلوبة. يربط هذا الملف بين التحويل الذي يطلبه pkexec والمكتبة المشتركة التي أُنشئت في الخطوة 3.

التجميع والتنظيف

يحتوي المشروع على Makefile لأتمتة تجميع ملف C الثنائي وتنظيف البيئة.

  • لتجميع المشروع: $ make

  • لتنظيف الملفات الناتجة (الملفات المؤقتة والمجلدات والملفات الثنائية): $ make clean

تنزيل الأداة