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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PS5-UMTX-Jailbreak — استغلال ثغرة في النواة يعتمد على WebKit وكسر حماية (Jailbreak) لجهاز PS5 | Kitploit
أدوات/GitHubGitHub/ps5dev/ps5-umtx-jailbreak
تصعيد الامتيازاتالاستغلالما بعد الاستغلالاستغلال الملفات الثنائية
GitHubps5dev/ps5-umtx-jailbreak

PS5-UMTX-Jailbreak

استغلال ثغرة في النواة يعتمد على WebKit وكسر حماية (Jailbreak) لجهاز PS5

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

الأكثر شعبية

عرض الكل →

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

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

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

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

PS5 UMTX كسر الحماية


الملخص

يحتوي هذا المستودع على استغلال WebKit ROP لـ ثغرة سباق الاستخدام بعد التحرير في UMTX (CVE-2024-43102) التي أبلغت عنها Synacktiv. إنه في الأساس منقول من استراتيجية استغلال fail0verflow وflatz. إنه يسيء استغلال ثغرة الاستخدام بعد التحرير (UAF) للحصول على تعيين قراءة/كتابة في مكدس خيط kernel، ويستفيد من عمليات القراءة والكتابة عبر الأنابيب (pipe) لإنشاء أولية قراءة/كتابة عشوائية في kernel (ليست مثالية تمامًا). ثم تُرقّى هذه القراءة/الكتابة إلى أداة أفضل تستفيد من زوج مقابس ipv6 وزوج أنابيب للحصول على قراءة/كتابة مستقرة يمكن تمريرها إلى الحمولات بنفس الطريقة التي كانت ممكنة مع استغلال نواة PS5 عبر IPV6 السابق.

الصفحة نفسها هي نسخة منزوعة ومعدلة من مضيف استغلال PS5 الخاص بـ idlesauce لأنها قامت بالفعل بعمل ربط psfree بأسلوب الكود الذي استخدمته سابقًا. هذا المضيف هو أيضًا خياري الشخصي لتشغيل الأشياء لأنه سلس جدًا ويدمج حمولات مفيدة، وآمل أن يتم تحديثه لدعم هذا الاستغلال في المستقبل القريب <3.

في النهاية، سيتم تشغيل محمّل حمولات للاستماع إلى ملفات ELF الخاصة بالحمولات على المنفذ 9021. أوصي بـ PS5 Payload Dev SDK حيث يجب أن يكون متوافقًا تمامًا مع هذا المحمّل عند إضافة إزاحات kernel.

تؤثر هذه الثغرة على البرامج الثابتة من الإصدار 1.00 إلى 7.61، ومع ذلك يبدو أن FW >= 3.00 لديها تدابير تخفيف إضافية تتطلب تعديل الاستغلال حتى يعمل. وبما أنني مهتم في الغالب بالبرامج الثابتة الأقدم فقط، فإن هذا الاستغلال لا يدعم FW >= 3.00 حتى الآن. علاوة على ذلك، تم إصلاح ثغرة WebKit التي نربطها بهذه الثغرة في الإصدار 6.00، لذا ستكون هناك حاجة إلى استغلال WebKit آخر يحقق قراءة/كتابة في مساحة المستخدم (userland) لهذه الأنظمة. مرة أخرى، نظرًا لأنني لا أركز على البرامج الثابتة الأحدث، فقد تُرك هذا غير مكتمل في الوقت الحالي.

ملاحظات مهمة

  • الإصدار 3.00+ له موثوقية أقل وقد يستغرق تنفيذًا أطول؛ إذا علقت عند "triggering race" لفترة، فأغلق المتصفح وأعد المحاولة.
  • الإصدار 5.00+ لا يعمل محمّل ELF حاليًا، لأننا لم نعد قادرين على استدعاء دالة dlsym بشكل صحيح؛ يحتاج payload SDK إلى تغييرات.

البرامج الثابتة التالية مدعومة حاليًا:

  • 1.xx [1.00, 1.01, 1.02, 1.05, 1.10, 1.11, 1.12, 1.13, 1.14]
  • 2.xx [2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70]
  • 3.xx [3.00, 3.20]
  • 4.xx [4.00, 4.02, 4.03, 4.50, 4.51]
  • 5.xx [5.00, 5.02, 5.10, 5.50]

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

  • الحصول على قراءة/كتابة عشوائية في النواة
  • تمكين قائمة إعدادات التصحيح (ملاحظة: ستحتاج إلى الخروج تمامًا من الإعدادات ثم العودة إليها لرؤيتها).
  • الحصول على صلاحيات الجذر والخروج من بيئة العزل/الحبس (sandbox/jail).
  • تشغيل محمّل ELF الخاص بـ John Tornblom على المنفذ 9021 لتنفيذ الحمولات (على إصدارات أقل من 5.00FW)

القيود

  • يحقق هذا الاستغلال قراءة/كتابة، لكن ليس تنفيذًا للكود. وذلك لأننا لا نستطيع حاليًا تفريغ كود النواة لاستخراج gadgets، نظرًا لأن صفحات .text في النواة محددة كذاكرة للتنفيذ فقط (XOM). أي محاولة لقراءة مؤشرات .text في النواة ستؤدي إلى انهيار (panic)!
  • وفقًا لما سبق + قيام المشرف الافتراضي (HV) بفرض حماية الكتابة على النواة، فإن هذا الاستغلال لا يمكنه أيضًا تثبيت أي تصحيحات أو خطافات في مساحة النواة.
  • سلامة تدفق التحكم الدقيقة المبنية على Clang (CFI) حاضرة ومفروضة.
  • لا يمكن تعطيل منع الوصول/التنفيذ في وضع المشرف (SMAP/SMEP) بسبب الـ HV.
  • الإصدار FW >= 6.00 يتطلب استغلال WebKit جديد وبالتالي غير مدعوم.

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

  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. اختياري: أزل التعليق عن كود تفريغ .data الخاص بالنواة وقم بتشغيل سكربت خادم التفريغ (ملاحظة: يجب استبدال العنوان/المنفذ في exploit.js).

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

  • تحديث استراتيجية الاستغلال لـ FW >= 3.xx لمراعاة التدابير التخفيفية
  • إضافة إزاحات لمزيد من البرامج الثابتة (الأقدم)
  • إضافة استغلال WebKit لـ FW >= 6.00.

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

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

ملاحظات استراتيجية الاستغلال

التحرير المزدوج الأولي

تعتمد استراتيجية هذا الاستغلال إلى حد كبير على fail0verflow وflatz. راجع شرح chris@accessvector لمزيد من المعلومات حول الثغرة. عند استغلالها، تمنحنا فعليًا تحريرًا مزدوجًا. يمكننا استخدام هذا لتداخل vmobject الخاص بمكدس kernel مع تعيين mmap للحصول على نافذة على مكدس خيط kernel. هذه الإمكانية القوية جدًا تتيح لنا القراءة/الكتابة إلى مؤشرات kernel عشوائية على المكدس، مما يحقق كسر ASLR والقدرة على إنشاء الأوليات (primitives). الخيط الذي لدينا إمكانية الوصول إلى مكدسه سنسميه خيط الضحية.

الحصول على قراءة/كتابة عشوائية

من خلال إنشاء أنبوب (pipe) وملء مخزن الأنبوب على الخيط الرئيسي، ثم محاولة الكتابة إليه باستخدام خيط الضحية، سيتم حظر خيط الضحية في انتظار توفر مساحة في المخزن. خلال هذا الوقت، يمكننا استخدام نافذتنا على مكدس kernel لتغيير مؤشرات iovec إلى مؤشرات kernel وضبط العلامات (flags) لمعاملتها كعناوين kernel. بعد ذلك، بقراءة الأنبوب على الخيط الرئيسي، يمكننا الحصول على قراءة عشوائية من kernel.

وبالمثل، من خلال جعل خيط الضحية يقرأ من الأنبوب، سيتم حظره في انتظار البيانات الواردة. يمكننا بعد ذلك، مرة أخرى، الكتابة فوق مؤشرات iovec وجعلها مؤشرات kernel، وكتابة البيانات على الخيط الرئيسي للحصول على كتابة عشوائية في kernel.

ترقية القراءة/الكتابة العشوائية

في هذه المرحلة، لدينا قراءة/كتابة عشوائية بدون قيود حقيقية، لكننا مقيدون باستخدام تعدد الخيوط والحظر لكي تعمل، وهذا ليس مثاليًا. ثم نستخدم القراءة/الكتابة للتكرار على جدول واصفات الملفات (FD) الخاص بالعملية وتداخل pktopts لمقبسي IPV6. يمكننا بعد ذلك إنشاء قراءة/كتابة عشوائية أخرى عبر خيار المقبس IPV6_PKTINFO. أولية القراءة/الكتابة هذه ليست مثالية أيضًا لأنها مقيدة في الحجم والمحتوى بسبب خيار المقبس الأساسي. نحتفظ بهذه الخطوة في الغالب لمحاكاة سيناريو استغلال IPV6، الذي بُنيت عليه معظم الحمولات وما شابه ذلك.

يمكننا الحصول على قراءة/كتابة أفضل عبر الأنابيب. من خلال التكرار مرة أخرى على جدول واصفات الملفات الخاص بالعملية وتعديل كائنات مخزن pipemap، يمكننا إنشاء قراءة/كتابة. يُستخدم زوج مقابس IPV6 كآلية للتحكم في مخزن pipemap.

إصلاح/تجاوز التلف

إذا تركت الأمور كما هي وحاولت إغلاق المتصفح، فسينهار النظام. وذلك لأن تنظيف العملية سيحاول تحرير مكدس kernel الذي تم تحريره بالفعل. لتجنب ذلك، نقوم بأمرين:

  1. تسريب عداد المراجع (refcount) عمدًا على واصف ملف الذاكرة المشتركة (shm FD) الذي نستخدمه للتحرير المزدوج الأولي بحيث لا يتم تحريره عند خروج العملية
  2. تصفير حقل td_kstack لخيط الضحية في قائمة خيوط العملية.

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

على إصدارات FW < 3.00، يكون هذا الاستغلال مستقرًا جدًا. نقطة الفشل الحرجة الوحيدة هي الفشل في تداخل vmobjects. على البرامج الثابتة الأحدث، يكون تحقيق هذا التداخل أصعب بسبب تدابير تخفيف مزعومة على مستوى مُخصِّص الصفحات/الكومة (heap allocator).

الاعتمادات / التحيات

  • fail0verflow
  • flatz
  • ChendoChap
  • SlidyBat
  • abc/psfree
  • idlesauce
  • Znullptr
  • zecoxao
  • SocracticBliss
  • John Tornblom

ديسكورد

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

تنزيل الأداة