
استغلال صلاحيات Linux النصي لثغرة CVE-2022-0847 "Dirty Pipe"

سكريبت باش للتحقق من واستغلال ثغرة CVE-2022-0847 المعروفة باسم "Dirty Pipe" في لينكس
يتيح هذا السكريبت لمستخدم غير مميز على نظام ضعيف القيام بما يلي:
يحتوي هذا المستودع على استغلالين:
يستبدل كلمة مرور الجذر بكلمة المرور "piped" وينسخ الملف الأصلي /etc/passwd احتياطيًا إلى /tmp/passwd.bak. ثم يمنحك الاستغلال الوصول إلى شل جذر برفع الصلاحيات ويستعيد ملف passwd الأصلي عند الخروج من الشل.

يحقن ويكتب فوق البيانات في ذاكرة عملية SUID للقراءة فقط التي تعمل كجذر.

استنساخ هذا المستودع وتغيير دليل العمل
git clone https://github.com/rexpository/linux-privilege-escalation.git
cd linux-privilege-escalation
تحقق مما إذا كان النظام الهدف الحالي ضعيفًا
./check.sh
تثبيت GCC لتجميع الاستغلال
sudo apt-get install gcc
قم بتجميع وتشغيل سكريبت باش لأتمتة تجميع كلا الاستغلالين
chmod +x compile.sh
./compile.sh
تشغيل ملف الاستغلال الثنائي الذي تريده
./exploit-1
أو
./exploit-2 /usr/bin/sudo
توجد هذه الثغرة في أداة pipe المستخدمة للاتصال أحادي الاتجاه بين العمليات، ومن هنا جاء الاسم "Dirty Pipe".
يمكن لمستخدم محلي غير مميز استغلال هذه الثغرة للكتابة فوق ملفات يُفترض أنها للقراءة فقط في نواة لينكس، وبالتالي رفع امتيازاته على النظام.
تحدث هذه الثغرة بسبب استخدام ذاكرة غير مهيأة جزئيًا لهيكل المخزن المؤقت pipe أثناء بنائه. يؤدي عدم تهيئة عضو الهيكل الجديد بالصفر إلى قيمة قديمة لـ flags، والتي يمكن للمهاجم إساءة استخدامها للحصول على إذن كتابة للصفحات في الذاكرة المخبأة حتى لو كانت في الأصل موضوعة بسمة للقراءة فقط.
لضمان حماية بنيتك التحتية ضد هذا التهديد وما يشبهه: