Home News Online il nuovo exploit nel webkit 0-day per console PlayStation 4

[Scena PS4] Online il nuovo exploit nel webkit 0-day per console PlayStation 4

1648
2

Nonostante una comunità attiva di hacker su console, sono stati rilasciati solo pochi exploit pubblici per PlayStation 4. Queste parole riecheggiavano sui social già a settembre, ma solo adesso l’exploit nel webkit 0-day è stato reso pubblico.

A parlare sono loro, i due membri del team Synacktiv, che dopo aver illustrato l’exploit in una conferenza, hanno pensato di realizzare un lungo articolo dando una panoramica sullo sfruttamento della vulnerabilità nel WebKit 0-day sul firmware 6.xx della console PlayStation 4.

Solitamente il punto di ingresso di un attacco a catena completa avviene attraverso il browser web basato sul motore di rendering WebKit: dallo sfruttamento del browser allo sfruttamento del kernel.

Tuttavia, le tecniche di rafforzamento del motore del browser insieme alla totale assenza di funzionalità di debug hanno reso molto difficile sfruttare con successo i bug nell’ultimo firmware della console.

In questo post, introdurremo la causa principale del bug. Il bug fornisce primitive di sfruttamento limitate. Tuttavia, grazie a un punto debole identificato nel meccanismo ASLR, siamo stati in grado di rendere questo bug sfruttabile.

L’articolo si concentra principalmente sulla strategia di sfruttamento che è stata adottata dal team e su come abbiano trasformato un non banale Use-After-Free in una primitiva R/W che ha portato all’esecuzione del codice.

Attaccare la PS4

Il browser è probabilmente il punto di ingresso più comune per attaccare la PS4. Il browser è basato su WebKit e viene eseguito in una sandbox. A differenza dei dispositivi iOS, non esiste una mitigazione moderna come Gigacage o la randomizzazione StructureID e JIT non è abilitato.

Una tipica catena di exploit inizia con un exploit nel WebKit per ottenere l’esecuzione del codice nel processo di rendering seguito da un bypass sandbox per eseguire un exploit del kernel.

Ci sono state un paio di vulnerabilità di WebKit che sono state sfruttate con successo in passato. L’exploit bad-hoist – di @Fire30_ – attualmente è l’ultimo exploit pubblico noto su console PlayStation 4.

L’exploit bad-hoist sfrutta la vulnerabilità CVE-2018-4386 rilevata da @lokihardt e fornisce primitive di lettura/scrittura. L’exploit funziona su firmware fino a 6.72.

Un’altra vulnerabilità rilevata da @lokihardt (CVE-2018-4441) è stata sfruttata anche su PS4 da @SpecterDev. L’exploit fornisce anche primitive di lettura/scrittura e funziona sul firmware 6.20. Per i firmware più vecchi (<6.xx), ci sono alcuni exploit scoperti da @qwertyoruiopz, @SpecterDev, @CTurt, e altri.

Per quanto riguarda gli exploit del kernel, l’ultimo è stato pubblicato da @theflow0. L’exploit fornisce primitive di lettura/scrittura nel kernel ed è raggiungibile dalla sandbox del WebKit.

Il bug è presente sui firmware fino a 7.02 ed è stato recentemente combinato con l’exploit bad-hoist per ottenere una catena completa sul firmware 6.xx. Infine, ci sono alcune vulnerabilità su BPF che sono state scoperte e sfruttate da @qwertyoruiopz.

Portare l’exploit sul firmware 7.xx

Il team è riuscito a sfruttare con successo l’exploit sul firmware 6.xx a causa di una debolezza nell’implementazione ASLR che ha permesso di prevedere l’indirizzo degli oggetti HTML.

L’indirizzo prevedibile è hardcoded nell’exploit ed è stato identificato grazie all’exploit bad-hoist. Tuttavia, senza una conoscenza preliminare della mappatura della memoria, l’unico modo per determinare l’indirizzo dei nostri oggetti HTMLElement spruzzati è forzare questo indirizzo.

La forzatura bruta su console PlayStation 4 è assai lunga e noiosa poiché il browser richiede l’interazione dell’utente per riavviarsi. L’idea sarebbe dunque quella di collegare un Raspberry Pi che funge da tastiera sulla console PlayStation 4.

Il suo obiettivo principale è quella di premere Invio periodicamente (ogni 5 secondi) per riavviare il browser dopo il crash. L’indirizzo forzato viene aggiornato ad ogni tentativo e memorizzato in un cookie.

Il team ha provato comunque ad eseguire l’exploit sul firmware 7.xx, senza riuscire però a ottenere alcun risultato. Probabilmente la forza bruta non è stata eseguita per un periodo di tempo sufficientemente lungo da coprire l’intero spazio degli indirizzi.

Se siete interessati alla lettura dell’articolo completo, seguite questo link. L’exploit è invece disponibile nella repository Github di Synacktiv.

Fonte: synacktiv.com

2 Commenti

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.