
استغلال لـ CVE-2021-4034 (PwnKit) يستهدف ثغرة تصعيد الامتيازات المحلية في ثنائي pkexec الخاص بـ polkit، مما يتيح الوصول الجذري غير المصادق عليه على أنظمة لينكس المتأثرة.
أنا لم أكتب هذا. هذا فقط لتوثيق تنفيذي/تعليماتي لاستخدام الاستغلال حيث توجد بعض الخطوات المعقدة جدًا والمتشابكة التي يجب اتباعها.
الملفات تأتي من المصدر التالي: https://packetstormsecurity.com/files/165739/PolicyKit-1-0.105-31-Privilege-Escalation.html
مساعدة إضافية في التنفيذ موجودة هنا: https://ine.com/blog/exploiting-pwnkit-cve-20214034
تم اختبار/تنفيذ هذا على جهاز OSCP's Blackgate Practice VM: Ubuntu 20.04 Kernel 5.8.0-63-generic
كيف تعرف إذا كان النظام عرضة للثغرة:
تحقق من وجود SUID وتأكد من أن /usr/bin/pkexec ملف SUID:
find / -perm -4000 2>/dev/null
تحقق من أذونات الملف الثنائي:
ls -al /usr/bin/pkexec
تحقق من إصدار pkexec:
/usr/bin/pkexec --version
الإصدار المصاب الذي وُجد على Blackgate: pkexec version 0.105
تأكد من توفر المترجم على الجهاز الضحية.
gcc version
انسخ الملفات إلى الجهاز الضحية (Makefile, evil-so.c, exploit.c) وقم بالترجمة باستخدام الأمر 'make all'. نفّذ './exploit'
تحقق من الصدفة
إذا ظهر لك خطأ يقول cc: error trying to exec 'cc1': execvp: No such file or directory.
استخدم الأمر locate cc1 للعثور على الملفات الثنائية:
locate cc1
/lib/modules/4.15.0-20-generic/kernel/drivers/iio/adc/cc10001_adc.ko
/lib/modules/4.15.0-20-generic/vdso/.build-id/a0/297fe29f8038ef50a10a26c9fcf5249ccc1184.debug
/usr/lib/gcc/x86_64-linux-gnu/7/cc1
/usr/lib/gcc/x86_64-linux-gnu/7/libcc1.so
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so.0
/usr/lib/gcc/x86_64-linux-gnu/7/plugin/libcc1plugin.so.0.0.0
/usr/lib/x86_64-linux-gnu/libcc1.so.0
/usr/lib/x86_64-linux-gnu/libcc1.so.0.0.0
# ثم صدّر الموقع إلى Path للرجوع إليه، وحاول البناء مرة أخرى
Jack@oscp:/home/Jack$ export PATH=$PATH:/usr/lib/gcc/x86_64-linux-gnu/7/cc1