
استغلال WebKit باستخدام CVE-2018-4441 للحصول على RCE على PS4 6.20.
يحتوي هذا المستودع على إثبات مفهوم (PoC) لاستغلال تنفيذ التعليمات البرمجية عن بُعد (RCE) يستهدف جهاز PlayStation 4 على البرنامج الثابت 6.20 بالاعتماد على CVE-2018-4441. يقوم الاستغلال أولاً بإنشاء بدائية قراءة/كتابة عشوائية بالإضافة إلى تسريب عنوان كائن عشوائي في wkexploit.js. بعدها يقوم بإعداد إطار عمل لتشغيل سلاسل ROP في index.html، وسيوفر افتراضيًا رابطين لتشغيل سلاسل ROP اختبارية - أحدهما لتنفيذ استدعاء النظام sys_getpid()، والآخر لتنفيذ استدعاء النظام sys_getuid() للحصول على PID ومعرف المستخدم للعملية على التوالي.
يحتوي كل ملف على تعليق في أعلى الملف يشرح بإيجاز ما يحتويه الملف وكيفية عمل الاستغلال. يعود الفضل في اكتشاف الثغرة إلى lokihardt من Google Project Zero (p0). يمكن العثور على تقرير الثغرة هنا.
ملاحظة: تم إصلاحها في تحديث البرنامج الثابت 6.50.
الملفات مرتبة حسب الاسم أبجديًا:
index.html - يحتوي على كود ما بعد الاستغلال، بدءًا من القراءة/الكتابة العشوائية (arb. R/W) وصولاً إلى تنفيذ الكود.rop.js - يحتوي على إطار عمل لسلاسل ROP.syscalls.js - يحتوي على قائمة (غير مكتملة) من استدعاءات النظام لاستخدامها في عمليات ما بعد الاستغلال.wkexploit.js - يحتوي على جوهر استغلال WebKit.p.launchchain() لتنفيذ الكود.syscalls.js يحتوي على عدد صغير فقط من استدعاءات النظام.قم بإعداد خادم ويب يستضيف هذه الملفات على localhost باستخدام xampp أو أي برنامج آخر تختاره. يمكنك أيضًا استضافته على خادم. يمكنك الوصول إليه على PS4 بإحدى الطريقتين التاليتين:
تزوير DNS لإعادة توجيه صفحة الدليل إلى صفحة الاستغلال، أو
استخدام متصفح الويب للانتقال إلى صفحة الاستغلال (ليس ممكنًا دائمًا).
لقد كتبت الاستغلال، لكنني لم أكتشف الثغرة؛ فكما ذُكر أعلاه، تم العثور على الخلل (CVE-2018-4441) بواسطة lokihardt من Google Project Zero (p0) وتم الكشف عنه عبر متتبع أخطاء Chromium العام.
تقرير أخطاء Chromium - الثغرة.
Phrack: مهاجمة محركات JavaScript بقلم saelo - منقذ للحياة. لكان استغلال هذا الأمر أصعب بنحو 1500 مرة بدون هذه الورقة الرائعة.
lokihardt - الثغرة
st4rk - المساعدة في الاستغلال
qwertyoruiop - مدرسة WebKit
saelo - ورقة Phrack