
<= 4.51FW वाले PS5 के लिए एक प्रायोगिक webkit-आधारित कर्नेल एक्सप्लॉइट (Arb. R/W)
इस रिपॉजिटरी में PS5 कर्नेल एक्सप्लॉइट का एक प्रायोगिक WebKit ROP कार्यान्वयन है, जो TheFlow के IPV6 Use-After-Free (UAF) पर आधारित है, जिसे HackerOne पर रिपोर्ट किया गया था। एक्सप्लॉइट रणनीति अधिकांशतः TheFlow के BSD/PS4 PoC पर आधारित है, जिसमें PS5 की परेशान करने वाली मेमोरी लेआउट को समायोजित करने के लिए कुछ बदलाव किए गए हैं (अधिक जानकारी के लिए Research Notes अनुभाग देखें)। यह arbitrary read / (semi-arbitrary) write primitive स्थापित करता है। इस एक्सप्लॉइट और इसकी क्षमताओं की बहुत सी सीमाएँ हैं, और इस कारण, यह मुख्यतः डेवलपर्स के लिए है ताकि वे सिस्टम के कुछ हिस्सों को रिवर्स इंजीनियर करने के लिए इसके साथ खेल सकें।
नवीनतम स्थिरता सुधारों के साथ, विश्वसनीयता लगभग 80% है। यह दस्तावेज़ PS5 के बारे में शोध जानकारी शामिल करेगा, और यह एक्सप्लॉइट समय के साथ निरंतर विकास और सुधार से गुज़रेगा।
PS5 शोध/विकास में योगदान देने में रुचि रखने वाले लोग मेरे द्वारा सेट किए गए डिस्कॉर्ड में शामिल हो सकते हैं यहाँ।
एक्सप्लॉइट को अब निम्नलिखित फर्मवेयर का समर्थन करना चाहिए:
dns.conf के माध्यम से fakedns को कॉन्फ़िगर करें ताकि manuals.playstation.net आपके PC के IP पते की ओर इंगित करेpython fakedns.py -c dns.confpython host.py0.0.0.0 पर छोड़ दें
ELF लोडर का उपयोग करने के लिए, एक्सप्लॉइट को पूर्ण होने तक चलाएँ। पूर्ण होने पर यह पोर्ट :9020 पर एक सर्वर चलाएगा। कनेक्ट करें और अपना ELF उस पोर्ट पर PS5 को भेजें और यह इसे चलाएगा। यदि ELF ब्राउज़र को क्रैश नहीं करता है, तो यह हमेशा के लिए ELF चलाना जारी रख सकता है।
यह एक्सप्लॉइट 5 चरणों में काम करता है, और अधिकांशतः theflow के poc की समान एक्सप्लॉइट रणनीति का अनुसरण करता है।
ip6_pktopts पर प्रारंभिक UAF ट्रिगर करें और दो सॉकेट्स को समान pktopts / overlap की ओर इंगित करें (मास्टर सॉकेट <-> overlap स्प्रे सॉकेट)pktopts को मुक्त करें और इसे एक टैग किए गए tclass overlap युक्त ip6_rthdr स्प्रे के साथ फर्जी बनाएँ।pktopts लीक करने के लिए pktopts/rthdr overlap का उपयोग करें।pktopts को फिर से फर्जी बनाएँ और overlap सॉकेट ढूँढें ताकि IPV6_RTHDR को read/write प्रिमिटिव के रूप में उपयोग किया जा सके।इस एक्सप्लॉइट की स्थिरता लगभग 30% 80-90% है, और इसमें दो संभावित विफलता बिंदु हैं। देखी गई घटती संभावना के क्रम में:
विभिन्न परीक्षणों और रीड प्रिमिटिव के साथ डंपिंग के आधार पर ऐसा प्रतीत होता है कि PS5 PS4 के 0x4000 की तुलना में 0x1000 पेज आकार पर वापस आ गया है।
ऐसा भी लगता है कि PS5 पर आसन्न पेज शायद ही कभी एक ही स्लैब के होते हैं, क्योंकि आसन्न पेजों में आपको बहुत भिन्न डेटा मिलेगा। मेमोरी लेआउट अधिक बिखरा हुआ लगता है।
अक्सर जब PS5 पैनिक करता है (कम से कम webkit संदर्भ में), भयानक ऑडियो आउटपुट होगा क्योंकि ऑडियो बफर किसी तरह से दूषित हो जाता है।
कभी-कभी यह ऑडियो भ्रष्टाचार अगले बूट तक बना रहता है, सुनिश्चित नहीं क्यों।
PS4 के समान, PS5 को पैनिक के बाद पुनः आरंभ करने के लिए कंसोल पर पावर बटन को दो बार मैन्युअल रूप से दबाने की आवश्यकता होगी।
यह सामान्य है कि PS5 को पैनिक से रिबूट होने में बहुत अधिक समय लगता है यदि यह इंटरनेट से अलग है (दुर्भाग्यवश)। बूट में 3-4 मिनट लगने की उम्मीद करें।