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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pkwned — إثبات المفهوم لـ CVE-2021-4034 (مع استغلال تجريبي بدون أثر) | Kitploit
أدوات/GitHubGitHub/dosamp/pkwned
تصعيد الامتيازاتأطر الاستغلالالاستغلالتطوير الحمولاتاستغلال الملفات الثنائية
GitHubdosamp/pkwned

pkwned

إثبات المفهوم لـ CVE-2021-4034 (مع استغلال تجريبي بدون أثر)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

pkwned: إثبات المفهوم لـ CVE-2021-4034

سيقوم هذا الإثبات بتشغيل PAYLOAD_PATH (كما هو معرّف في constants.h) بصلاحيات الجذر من إصدار ضعيف من pkexec يعمل على glibc. يجب أن يحتوي الدليل "GCONV_PATH=." على ملف قابل للتنفيذ مسمّى على اسم الدليل الذي يحتوي على وحدة gconv.

كما هو موضح في نشرة Qualys [1]، سينتج عن ذلك رسالة syslog. وجدت نهجين حتى الآن لمنع ذلك:

  • باستخدام g_find_program_in_path، يقوم pkexec بفحص access() باستخدام g_file_test وفحص آخر صريح بعده، مما يتيح حالة سباق (بحذف "GCONV_PATH=./gconv" في الأثناء) لاستدعاء g_printerr بدون log_message:

641 if (access (path, F_OK) != 0) 642 { 643 g_printerr ("Error accessing %s: %s\n", path, g_strerror (errno)); 644 goto out; 645 }

يحتوي هذا المستودع على أداة gconv-fuse التي تقوم بتركيب نظام ملفات FUSE فوق "GCONV_PATH=."، والذي يظهر فارغًا بعد استدعاء واحد من access("gconv", X_OK). يعمل هذا فقط إذا كان خيار الإعداد user_allow_other في FUSE مفعّلاً.

  • إذا أمكن منع pkexec من قراءة /etc/shells، فسيؤدي ذلك أيضًا إلى خطأ بدون تسجيل:

356 if (!g_file_get_contents ("/etc/shells", 357 &contents, 358 NULL, /* gsize *length */ 359 &error)) 360 { 361 g_printerr ("Error getting contents of /etc/shells: %s\n", error->message); 362 g_error_free (error); 363 goto out; 364 }

يمكن استخدام مساحات الأسماء (mount namespaces) لتركيب ملف غير قابل للقراءة فوقه، ولكن يتطلب ذلك مساحة اسم مستخدم أيضًا، لتعيين مستخدم غير مميز إلى الجذر و جعل بت setuid الخاص بـ pkexec غير فعّال (مثل "unshare -r -u -m").

لاحظ أن GLib قد دمج إصلاحًا لـ g_find_program_in_path (ربما للإصدارات المستقرة التالية بعد v2.70.3 و v2.71.0) مما سيجعل هذا الاستغلال غير ممكن من خلال إرجاع مسارات كاملة فعلية دائمًا. [2]

[1] https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt [2] https://gitlab.gnome.org/GNOME/glib/-/commit/13ee46538f901a8eca8e7a4c167a8838ed0858d4

تنزيل الأداة