Il developer SpecterDev ha pubblicato il suo nuovo kernel exploit per il firmware 4.05 della PlayStation 4, sviluppato anche grazie alla documentazione resa dal team Fail0verflow.
In questo progetto è possibile trovare un’implementazione completa del kernel exploit namedobj
per PlayStation 4 sul firmware 4.05.
Hope everyone had a Merry Christmas! Here's the 4.05 kernel exploit, fully implemented. Enjoy! Write-up coming soon! https://t.co/MQR0lzCu9Y
— Specter (@SpecterDev) December 27, 2017
Il bug
Il bug è essenzialmente di tipo type confusion
con il campo ‘kind’ dell’oggetto ‘id_entry’ utilizzato negli oggetti denominati. Gli oggetti denominati sono oggetti che dispongono di proprietà associate (ad esempio un nome per come lo si potrebbe immaginare), che punta all’oggetto reale nell’heap. Specificando un type 0x5000 per l’oggetto, è possibile causare una type confusion.
Ora è necessario trovare un’altra area del kernel che può eccedere per corrompere l’oggetto. Fortunatamente c’è sys_mdbg_service()
.
Questo ci permetterà di sovrascrivere i 32 bit più bassi di un puntatore free()
con sys_namedobj_delete()
.
Da qui noi possiamo andare a creare una situazione use-after-free
che è possibile utilizzare per ottenere l’esecuzione di codice spruzzando oggetti falsi nel mucchio e corrompendo un puntatore di funzione.
I've also uploaded a test payload you can use after the kernel exploit runs that jailbreaks and patches the kernel to allow access to debug settings, just needs to be netcatted to the loader via port 9020. https://t.co/70UMwgTQ7o
— Specter (@SpecterDev) December 27, 2017
Strategia
Una buona strategia per sfruttare questo bug è la seguente:
- Perdere un oggetto di destinazione dal mucchio del kernel che non solo dispone di puntatori di funzioni che possono essere danneggiati, ma è anche ideale per evitare che si blocchi il kernel.
- Creare
type confusion
tramitesys_namedobj_create()
con il flag 0x5000 (o flag 0x4000 a causa della bit OR). - Impostare un kernel ROP chain in userland. Idealmente in questa ROP chain si desidera disattivare la protezione di scrittura del kernel, eseguire le patch desiderate (come la mappatura di memoria RWX) e pivot per tornare in maniera efficace.
- Sovrascrivere i 32 bit più bassi nell’oggetto con
sys_mdbg_service()
con i 32 bit inferiori dell’indirizzo dell’oggetto target. Non possiamo sovrascrivere i 32 bit superiori, ma fortunatamente il puntatore memorizzato in precedenza era comunque un puntatore di heap, quindi i 32 bit superiori verranno impostati sul prefisso dell’indirizzo heap di FreeBSD (0xFFFFYYYYxxxxxxxx dove YYYY viene randomizzato da ASLR all’avvio). - Attivare
free()
tramitesys_namedobj_delete()
. - Spruzzare l’oggetto falso sull’heap con un puntatore di funzione che indica il kROP chain creato in precedenza.
- Trova una funzione che utilizza l’oggetto corrotto e attiva il puntatore funzione da leggere.
- Ora hai l’esecuzione di codice e la tua catena kROP sta funzionando in ring0! Sìì!
- Correggere l’oggetto
free()
, perché se non lo fai, appena il webkit esce, il kernel si blocca perché cercheràfree()
al tuo oggetto e di portare a un doppiofree()
. - Ritorno in userland con successo.
Patch incluse
Le seguenti patch vengono create di default nella catena del kernel ROP:
- Disabilita la protezione da scrittura del kernel.
- Permette il mapping della memoria RWX (read-write-execute).
- Risoluzione dinamica (sys_dynlib_dlsym) consentita da qualsiasi processo.
- Chiamata di sistema personalizzata #11 (
kexec ()
) per eseguire codice arbitrario in modalità kernel. - Consenti agli utenti non privilegiati di chiamare
setuid(0)
correttamente. Funziona come controllo di stato, raddoppiato come escalation di privilegi.
Note
- Questo exploit si dimostra incredibilmente stabile intorno al 95%. L’exploit nel webKit si blocca molto raramente e lo stesso vale per il kernel.
- Ho creato una patch in modo che il kernel venga eseguito una volta sola sul sistema, è ancora possibile creare patch aggiuntive tramite payload.
- Viene aggiunta una syscall personalizzata (# 11) per eseguire qualsiasi memoria RWX in modalità kernel, che può essere utilizzata per eseguire payload utile per poter eseguire operazioni come jailbreaking e patch del kernel.
- Non viene fornito alcun SDK in questa versione, tuttavia uno barebone per iniziare con una data successiva.
Download: Kernel Exploit 4.05
Se non riuscite a impostare un vostro server web sul PC potrete scegliere di visitare dal browser web della PlayStation 4 la pagina http://www.sprx.solutions/PS4/, il link ci è stato offerto dall’utente Skillsofcape su twitter.
Ciao a tutti e soprattuto a te francesco grazie mille per la news!
Ma non ho ben capito ancora non si può fare nulla ci devono ancora lavorare sopra? Oppure allostato attuale è possibile sfruttare il tutto per caricare i backup ecc…
Ti ringrazio per la disponibilità
Ciao Carme, grazie per i complimenti, con questo exploit puoi eseguire i payload ed avviare i backup che devono essere comunque elaborati, non esiste ancora una guida specifica, ma crediamo che sia simile a quella che puoi trovare su questo sito: https://sce.party/?page=tutorials&tut=running-backups-as-full-games
Perfetto grazie mille per le info francesco gentilissimo come al solito!
Ti auguro una buona giornata
Questa è la mod come nella ps3?si possono inserire i giochi in un hdd e poi giocarci?
Ciao Francesco, io sapevo che questa vulnerabilità non era stata corretta nemmeno sui firmware successivi, è vero ? Ci sara possibilità ?
Ovviamente la mia monta il 4.06 por#@[!∞##{”
Ditemi che funziona anche su questo..
Ovviamente non funziona
#@!!#»≈¿{Ç°$%**
You can try to put it a non-formatted HDD. Maybe you can reinstall a lower firmware.
Personally I have a ps4 with 4.72 and if I put a non-formatted HDD I can install 4.71 or upper.
So try it. maybe you are lucky 😉
Citazione presa da wololo… provare non costa niente! Io toglierei l’HDD dalla PS4, lo passi sotto il pc lasciandolo senza formato, e poi lo rimetti nella ps4. Mi sembra strano, ma se funziona è una perla!!!
woo amnesia82, provo alla grande e ti faccio sapere
…se solo trovassi il fw4.05 restore versione eu ho cercato dappertutto -_-
andrà bene la versione us?
puoi scaricarli da questo indirizzo http://darthsternie.bplaced.com/ps4.html, controlla sempre MD5, deve essere uguale
Grazie Francesco, purtroppo richiede fw>=4.06
E su 5.01? Ditemi che uscirà qualcosa. Non avevano detto che la falla su 5.01 non era stata patchata in alcun modo da Sony?
fatemi capire bene… una volta eseguito l’exploit si puo procedere come su 1.76, ovvero installare direttamente pkg non firmati? funziona solo su 4.05 o anche inferiori?
guarda che neanche su 1.76 si possono far partire i pkg non firmati, chi ha la 1.76 utilizza un altro metodo per avviare i backup su 1.76, invece a quando so neanche su 4.05 si possono far partire i pkg non firmati
ma quindi la procedura sarebbe? non mi riesce di trovarla… una volta che hai i pkg e l’exploit eseguito che fai?
L exploit è appena stato rilasciato. Vedrete che a breve verrà rilasciata una guida adatta a tutti e spero qualcosa su 5.01
Niente bisogna solo aspettare e sperare anche in una guida
io ho il 4.07….spero facciano qualcosa.
Ma niente male comunque. Ottimo lavoro, speriamo per coloro che sono al firmware superiore al 4.05, rilasciano qualcosa al più presto. Già è un inizio dai….
Aspettateeeeeee
Un po di pazienza! Tra un po si potrà smanettare con i pkg! Flatz sta facendo il porting da 4.55 a 4.05.
Per il momento su ps4 1.76 è macchinoso caricare i backup. Ci sono diverse forme per farlo e non sempre funziona. Se Flatz implementa il pkg install sarà tutto molto più facile.
Poi io in realtà cercavo FABIOSAT…
Qualcuno l’ha mica visto?!
ahaahahahahahahahahhaahahahah quel caso umano ridicolo auhuahauahuaha povero idiotaaaaa ovviamente parlo di fabiosat…ora spero rilascieranno quello per 4.55…io sto al 4.07 uff
si può trovare una ps4 in commercio con firmware 4.05?
Bene, alla fine ci sono arrivati dopo 2 anni. Ed anche Specter (che poverino ci ha lavorato interamente lui sull’exploit, chiedendo solo qualcosa ogni tanto a chi fra l’altro già dispone di hack su fw superiori) alla fine non ha posticipato più di tanto nei riguardi di quei subumani, che oltre a scrivere speriamo credevano fermamente in un rilascio natalizio (e non quando tutti inbug sarebbero stati fixati, nooooo, perché Specter è onnipotente per sta gente qui).
tu hai gia rotto le palle minchione. parli da saccente ma pure tu aspetti la grazia come tutti quanti noi e non sei nemmeno un programmatore, quindi vedi di tacere che fai una miglior figura, IDIOTA
ho fatto bene a tenera la mia ps4 su fw 4.01, siano ringraziati tutti quelli che ci hanno lavorato su, spero che presto qualcuno faccia una guida e poi posso morire felice.
Finalmente!
Fortuna sono rimasto al 3.15 evvai!
Per gli altri non si potrà far nulla.
ahahahahhaha ma che stai a di….ci sono altri 2 exploit non ancora rilasciati che arrivano fino all’ultimo firmware….e ora le cose si smuoveranno un bel po
intanto tu aspetta e rodi aahahahah
lui puo’ gia’ lavorarci
io sono rimasta anche alla 3.xx
Ciao Francesco mio fratello ha preso una fat con fw 3.11. In tal caso a che firmware minimo mi consigli di aggiornare? E come si aggoorna manualmente? Grazie!
Ciao Angel, per aggiornare manualmente la Playstation 4 segui questa guida in basso
Scarica il firmware 4.05 e rinominalo in PS4UPDATE.PUP
Prendi una pendrive e crea due cartelle PS4 e UPDATE (l’aggiornamento segue la stessa metodica della PS3)
Pendrive:/PS4/UPDATE/PS4UPDATE.PUP
Entra nella modalità protetta e scegli il punto 3 (segui la guida in basso)
Da console spenta, tieni premuto il pulsante di accensione della console.
Appena toccato il pulsante, la console emetterà un segnale acustico.
Dopo alcuni secondi, verrà emesso un altro segnale acustico.
Rimuovere il dito dal pulsante di accensione frontale.
Collegare il controller DualShock 4 con il cavo in dotazione e premere il tasto PS.
Ciao Francesco, grazie per la miniguida per aggiornare la console al 4.05, ma dove posso trovare il fw adatto per le nostre console europee?
Il firmware è universale, non esiste una versione europea o americana, puoi scaricare tutti i firmware che vuoi da questo indirizzo: http://darthsternie.bplaced.com/ps4.html controlla sempre MD5 che deve essere uguale a quello riportato sopra il link
ho appena aggiornato la mia ps4 slim al fw 4.05 da chiavetta, se qualcuno ha modo di provare ci faccia sapere
tradizionale, non slim scusate
Ho appena acquistato una ps4 500gb con fw 2.76 sulla baia
Vediamo sciame si evolve la situazione
eccola la sanguisuga….compra la ps4 solo ora che si puo moddare…no comment
Perché tu per cosa lo stai usando l’hack sentiamo…Ahahahaha
INVIDIOSO!!!!!
Rosica ! come dice Angela
Ma quindi ogni volta va rifatta la procedura o c’è un modo per velocizzare il tutto?
Appena provato l exploit su ps4 fat e funziona. Ho seguito una guida da un noto sito italiano che spiega come attivare l exploit. Un po macchinosa ma funziona. Al riavvio della console bisogna riattivare nuovamente l exploit in quanto non è permanente. Alla fine sulla ps4 si troverà sotto impostazioni il menu debug setting. Adesso aspetto una guida per caricare i backup perche non ho idea di come si faccia!
Flat_z ha aggiornato sul suo twitter che la guida per eseguire i backup è già in fase di creazione, e che ha già completato la prima fase.
Ci vorrà un po’ per finirla.
Si sa qualcosa su un exploit per le versioni 5.x?
Scusatemi ragazzi ma questo exploit, per coloro che hanno un firmware superiore (compreso io il 4.78( non si può fare assolutamente nulla)
al momento no mi dispiace
Attualmente l exploit rilasciato funziona solo su 4.05. A breve ci sarà la guida per avviare i backup. Per tutti gli altri che stanno sopra il 4.05 si dovrà attendere l exploit per 5.01 che esiste e spero vengo rilasciato presto!
Francesco ciao io sono sul 3.55 di fabbrica mai aggiornato… ma conviene rimanere qui o posso passare al 4.05? ho visto che su tweeter hanno linkato il kernel 3.55 ma a cosa serve?
“proc_rwmem (as it seems) is located at 0xFFFFFFFF8329EF10 in the 3.55 Kernel elf! ENJOY modding your favourite Games on 3.55 PS4! :smilexf2: Thanks to notzecoxao for the 3.55 Kernel elf”
cioè?posso provare l’ exploit anche da 3,55?
comunque i link per scaricare gli OFW ps4 non funziona sul sito nzxtrules.stackstorage
Grazie
Consigliamo di aggiornare al firmware 4.05, puoi scaricarlo da questo indirizzo: https://sce.party/?page=firmwares, come sempre controlla il codice md5
non credo francesco che finche non si ha la certezza di avvio backup è meglio che rimanga al 3.55?
quel exploit a cosa serve per il 3.55?
Finalmente una risposta degna. Tutti aggiornano… ma che aggiornate a fare?
Se accade un ‘imprevisto per esecuzioni di backup manager o altro vi bruciate le tappe.
Ma la procedura funziona anche su PS4 PRO o non è stata ancora testata per questa console?
si se la console monta un firmware 4.05 può essere eseguito anche su PlayStation 4 Pro