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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PS5-IPV6-Kernel-Exploit — استغلال تجريبي قائم على webkit للنواة (Arb. R/W) لجهاز PS5 على الإصدارات <= 4.51FW | Kitploit
أدوات/GitHubGitHub/cryptogenic/ps5-ipv6-kernel-exploit
أمان الأنظمة المدمجةتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةما بعد الاستغلالاستغلال الملفات الثنائية
GitHubcryptogenic/ps5-ipv6-kernel-exploit

PS5-IPV6-Kernel-Exploit

استغلال تجريبي قائم على webkit للنواة (Arb. R/W) لجهاز PS5 على الإصدارات <= 4.51FW

عرض المستودع
925106منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

PS5 3.xx / 4.xx Kernel Exploit


الملخص

يحتوي هذا المستودع على تنفيذ تجريبي لتقنية WebKit ROP لاستغلال نواة PS5 استنادًا إلى ثغرة الاستخدام بعد التحرير (Use-After-Free - UAF) الخاصة بـ TheFlow في IPV6، والتي تم الإبلاغ عنها على HackerOne. تعتمد استراتيجية الاستغلال في معظمها على PoC الخاص بـ TheFlow لأنظمة BSD/PS4 مع بعض التعديلات لاستيعاب تخطيط الذاكرة المزعج في PS5 (لمزيد من التفاصيل انظر قسم Research Notes). ينشئ هذا الاستغلال بدائية قراءة عشوائية / كتابة (شبه عشوائية). هذا الاستغلال وقدراته له العديد من القيود، ولهذا فهو مخصص في الغالب للمطورين للتجربة به بغرض الهندسة العكسية لبعض أجزاء النظام.

مع أحدث تحسينات الاستقرار، تبلغ الموثوقية حوالي 80%. ستتوفر في هذا المستند معلومات بحثية حول PS5، وسيخضع هذا الاستغلال لتطوير وتحسينات مستمرة بمرور الوقت.

يمكن للمهتمين بالمساهمة في أبحاث/تطوير PS5 الانضمام إلى خادم الديسكورد الذي أنشأته هنا.

يجب أن يدعم الاستغلال الآن أنظمة البرامج الثابتة التالية:

  • 3.00
  • 3.10
  • 3.20
  • 3.21
  • 4.00
  • 4.02
  • 4.03
  • 4.50
  • 4.51

المتضمن حاليًا

  • يحصل على قراءة/كتابة عشوائية ويمكنه تشغيل خادم RPC أساسي للقراءات/الكتابات (أو خادم تفريغ للقراءات الكبيرة) (يجب تعديل العنوان/المنفذ الخاص بك في ملف الاستغلال على الأسطر 673-677)
  • يفعّل قائمة إعدادات التصحيح (ملاحظة: ستحتاج إلى الخروج تمامًا من الإعدادات والدخول مرة أخرى لرؤيتها).
  • يحصل على صلاحيات الجذر (root)

القيود

  • يحقق هذا الاستغلال القراءة/الكتابة، ولكن ليس تنفيذ الكود. وذلك لأننا لا نستطيع حاليًا تفريغ كود النواة لاستخراج الـ gadgets، حيث أن صفحات .text في النواة مُعلّمة كذاكرة للتنفيذ فقط (eXecute Only Memory - XOM). أي محاولة لقراءة مؤشرات .text الخاصة بالنواة ستؤدي إلى انهيار (panic)!
  • وفقًا لما سبق + قيام الـ hypervisor (HV) بفرض حماية الكتابة على النواة، فإن هذا الاستغلال أيضًا لا يمكنه تثبيت أي تصحيحات أو خطافات (hooks) في مساحة النواة، مما يعني عدم وجود أي كود متعلق بالـ homebrew في الوقت الحالي.
  • سلامة تدفق التحكم الدقيقة (Control Flow Integrity - CFI) المبنية على Clang موجودة ومفروضة.
  • لا يمكن تعطيل منع الوصول/التنفيذ في وضع المشرف (Supervisor Mode Access Prevention/Execution - SMAP/SMEP) بسبب الـ HV.
  • بدائية الكتابة مقيدة نوعًا ما، حيث يجب أن تكون البايتات 0x10-0x14 صفرًا (أو واجهة شبكة صالحة).
    • ومع ذلك، وبفضل الأعمال الأحدث التي تستخدم الـ pipes، أصبحت القراءة/الكتابة العشوائية الكاملة ممكنة الآن

طريقة الاستخدام

  1. قم بإعداد fakedns عبر dns.conf لتوجيه manuals.playstation.net إلى عنوان IP الخاص بجهاز الكمبيوتر
  2. شغّل خادم DNS الوهمي: python fakedns.py -c dns.conf
  3. شغّل خادم HTTPS: python host.py
  4. انتقل إلى إعدادات الشبكة المتقدمة في PS5 واضبط DNS الأساسي على عنوان IP الخاص بجهاز الكمبيوتر واترك الثانوي على 0.0.0.0
    1. في بعض الأحيان لا يُحمَّل الدليل ولا يزال الأمر يتطلب إعادة تشغيل، غير متأكد من السبب، إنه أمر غريب حقًا
  5. انتقل إلى دليل المستخدم في الإعدادات واقبل مطالبة الشهادة غير الموثوقة، ثم شغّل
  6. اختياري: شغّل سكربتات خادم rpc/dump (ملاحظة: يجب استبدال العنوان/المنفذ بصيغة ثنائية داخل exploit.js).

الأعمال المستقبلية

  • إصلاح الـ sockets للخروج من المتصفح بشكل نظيف (أولوية قصوى)
  • كتابة بعض تصحيحات البيانات (أولوية ثانية)
    • تفعيل إعدادات التصحيح
    • تصحيح الـ creds للحصول على uid0
    • كسر الحماية (Jailbreak) عبر الكتابة فوق cr_prison
  • تحسين موثوقية UAF
  • تحسين موثوقية الـ socket الضحية (أولوية ثالثة)
  • استخدام هدف تسريب أفضل / أكثر اتساقًا من kqueue (لم يعد ضروريًا)
  • جعل محمّل ELF يدعم الـ relocations
    • إضافة دعم لمزيد من الـ relocations وربما الربط الديناميكي الكامل؟

استخدام محمّل ELF

لاستخدام محمّل ELF، قم بتشغيل الاستغلال حتى الاكتمال. عند الاكتمال سيشغّل خادمًا على المنفذ :9020. اتصل وأرسل ملف ELF الخاص بك إلى PS5 عبر ذلك المنفذ وسيتم تشغيله. بافتراض أن ملف ELF لا يسبب انهيار المتصفح، يمكنه الاستمرار في تشغيل ملفات ELF إلى الأبد.

مراحل الاستغلال

يعمل هذا الاستغلال على 5 مراحل، ويتبع في معظمه نفس استراتيجية الاستغلال الخاصة بـ theflow's poc.

  1. إطلاق UAF الأولي على ip6_pktopts والحصول على مقبسين (socket) يشيران إلى نفس pktopts / تداخل (المقبس الرئيسي <-> مقبس رش التداخل)
  2. تحرير pktopts على المقبس الرئيسي وتزييفه برش ip6_rthdr يحتوي على تداخل tclass مُعلّم.
  3. خطوة تسريب المعلومات. استخدم تداخل pktopts/rthdr لتسريب kqueue من شريحة 0x200 وpktopts من شريحة 0x100.
  4. خطوة القراءة/الكتابة العشوائية. قم بتزييف pktopts مرة أخرى وابحث عن مقبس التداخل لاستخدام IPV6_RTHDR كبدائية قراءة/كتابة.
  5. خطوة التنظيف + التصحيح. قم بزيادة عدد المراجع (refcount) على المقابس التالفة لضمان خروج ناجح من المتصفح + تصحيح البيانات لتفعيل قائمة التصحيح وتصحيح ucreds للحصول على uid0.
  6. تشغيل خادم محمّل ELF الذي سيقبل ويحمّل/يشغّل ملفات ELF. حاليًا قيد العمل (WIP)، ولا يدعم الـ relocations في الوقت الحالي.

ملاحظات الاستقرار

استقرار هذا الاستغلال يبلغ حوالي 30% 80-90%، وله نقطتا فشل محتملتان. بترتيب الاحتمالية الملاحظة تنازليًا:

  1. يفشل المرحلة 1 في استرداد UAF، مما يسبب انهيارًا فوريًا أو تلفًا كامنًا يؤدي إلى الانهيار.
  2. يفشل المرحلة 4 في العثور على مقبس ضحية

ملاحظات بحثية

  • يبدو بناءً على اختبارات وتفريغات متعددة باستخدام بدائية القراءة، أن PS5 عاد إلى حجم صفحة 0x1000 مقارنةً بـ 0x4000 في PS4.

    • بعد مزيد من البحث، تبين أن حجم الصفحة لا يزال بالفعل 0x4000، ولكن بسبب بعض التغييرات الجنونية في المُخصِّص (allocator)، يمكن تخصيص شرائح (slabs) مختلفة في نفس الصفحة الافتراضية.
  • يبدو أيضًا على PS5 أن الصفحات المتجاورة نادرًا ما تنتمي إلى نفس الشريحة، حيث ستحصل على بيانات مختلفة تمامًا في الصفحات المتجاورة. يبدو تخطيط الذاكرة أكثر تشتتًا.

  • غالبًا عندما ينهار PS5 (على الأقل في سياق webkit)، سيكون هناك مخرجات صوتية سيئة للغاية حيث يتلف مخزن الصوت المؤقت (audio buffer) بطريقة ما.

  • في بعض الأحيان يستمر هذا التلف الصوتي حتى الإقلاع التالي، غير متأكد من السبب.

  • على غرار PS4، سيتطلب PS5 الضغط يدويًا على زر الطاقة في الجهاز مرتين لإعادة التشغيل بعد الانهيار.

  • من الطبيعي أن يستغرق PS5 وقتًا طويلاً بشكل سخيف لإعادة التشغيل بعد الانهيار إذا كان معزولًا عن الإنترنت (للأسف). توقع أن يستغرق الإقلاع من 3 إلى 4 دقائق.

المساهمون / شكر خاص

  • Andy Nguyen / theflow0 - الثغرة واستراتيجية الاستغلال
  • ChendoChap - مساعدات متنوعة في الاختبار والبحث
  • Znullptr - بحث/هندسة عكسية (RE)
  • sleirsgoevy - بحث/هندسة عكسية (RE) + أفكار استراتيجيات الاستغلال
  • bigboss - بحث/هندسة عكسية (RE)
  • flatz - بحث/هندسة عكسية (RE) + مساعدة في التصحيحات
  • zecoxao - بحث/هندسة عكسية (RE)
  • SocracticBliss - بحث/هندسة عكسية (RE)
  • laureeeeeee - معرفة خلفية بالأنظمة منخفضة المستوى ومساعدة

شكر للمختبِرين

  • Dizz (4.50/4.51)
تنزيل الأداة