
استغلال Dirty Cow - CVE-2016-5195
Dirty COW هي ثغرة رفع صلاحيات محلية (LPE) في نواة لينكس تُعرف باسم CVE-2016-5195. :contentReference[oaicite:0]{index=0}
بشكل عام، تؤثر Dirty COW على نواة لينكس من الإصدار 2.x إلى 4.x قبل 4.8.3. :contentReference[oaicite:1]{index=1}
بعض التوزيعات قامت بتحديث التصحيح (backport)، لذلك قد يبدو إصدار النواة "قديماً" لكنه قد يكون آمناً بالفعل.
تم إصلاح Dirty COW في الإصدارات التالية من النواة (وما بعدها):
تحقق من إصدار نواة الهدف:
uname -r
# dirtycow
يستخدم هذا الثغرة exploit البوكيمون pokemon من ثغرة dirtycow كأساس ويقوم بإنشاء سطر passwd جديد تلقائياً.
سيُطلب من المستخدم كلمة المرور الجديدة عند تشغيل الملف الثنائي.
يتم عمل نسخة احتياطية من ملف /etc/passwd الأصلي إلى /tmp/passwd.bak ثم يتم استبدال حساب الجذر root بالسطر المُنشأ.
بعد تشغيل الثغرة، يجب أن تتمكن من تسجيل الدخول باستخدام المستخدم الذي تم إنشاؤه حديثاً.
لاستخدام هذه الثغرة، قم بتعديل قيم المستخدم وفقاً لاحتياجاتك.
المستخدم الافتراضي الذي يتم إنشاؤه هو `toor`.
الثغرة الأصلية (طريقة ptrace_pokedata "pokemon" الخاصة بـ dirtycow):
https://github.com/dirtycow/dirtycow.github.io/blob/master/pokemon.c
قم بالتجميع باستخدام:
```bash
gcc -pthread dirty.c -o dirty -lcrypt
ثم قم بتشغيل الملف الثنائي الذي تم إنشاؤه حديثاً إما عن طريق:
./dirty
أو
./dirty my-new-password
بعد ذلك، يمكنك إما su toor أو ssh toor@...
لا تنسَ استعادة ملف /etc/passwd بعد تشغيل الثغرة!
mv /tmp/passwd.bak /etc/passwd
تم تبني الثغرة بواسطة Christian "firefart" Mehlmauer