domenica 26 settembre 2010

Exploit PS3 + guida software Geohot Hack

Geohot è riuscito ad effettuare il Dump della memoria Nand il tutto sfruttando un exploit con una modifica per il 95% hardware e il 5% software.
Oggi vedremo passo per passo la parte software del Geohot hack della nostra PS3.
1) Scaricate l'exploit ufficiale (DOWNLOAD)
2) Scaricare Linux. precisamente la distro Ubuntu v8.10 (DOWNLOAD)
3) Per installare la distro sulla PS3 sarà necessario masterizzare l'immagine su un cd con un qualsiasi programma
4) Effettuate il backup di tutti i dati della vostra ps3 in un unità removibile (HDD o pendrive)
5) Formattiamo la consolle andando su Impostazioni>Impostazioni di sistema>Utilità di formattazione>Formatta Hard Disk e diamo la conferma, scegliendo l'opzione personalizza potremo selezionare la quantità di Gb da riservare al nostro S.O. (si consiglia 10 Gb per la distro Linux). Ora l'HDD verrà formattato e al suo termine la consolle si riavvierà.
6) Dopo aver installato Linux si dovrebbe accedere utilizzando il nome utente creato durante la sua installazione. Ora dovrete aprire il terminale e digitare "sudo password" per poter immettere la password al nostro account di root in modo che sia utilizzabile.
7) Sempre nel terminale digitare "su" e poi inserire nuovamente la password di root in modo da ottenere l'accesso come root e quindi creare una dir in cui mettere tutto (è consigliato crearla nella root del filesystem cosi da consentire un punto di accesso tramite Samba dal PC.
Per creare la Dir bisogna digitare "mkdir / ps3", in nome della directory sarà sicuramente libero.
8) Ora sarà necessario dare i permessi a tutti gli utenti di leggere o scrivere in questa directory, quindi aprire il terminale e digitare "chmod a + rw / ps3" e digitare "chown nomeutente:nomeutente / ps3" dove nomeutente è il nome scelto dall'utente.
9) Prendere una pendrive e copiare l'exploit scaricato inizialmente al suo interno e successivamente inserire la pendrive su Ps3, dovrebbe essere riconosciuta in automatico e dovrebbe comparire un icona, fare doppio click destro su di essa per aprire il broswer dei file. Effettuare click destro sul drive usb nel file broswer e scegliere "Open in New Window", successivamente selezionare "File System" e poi "ps3". Ora trascinare i file al disco USB nella directory "ps3".
10) Correggere gli header del kernel in modo che possano essere trovati dagli script di build, quindi digitare:  
"mv / usr/src/linux-ports-headers-2.6.25-2 / / usr / src /linux-headers -2.6.25-2 /
11) Ora occorrerà passare alla directory  con l'exploit di origine "cd / ps3/ps3_exploit/src" e quindi costruire digitando "make", seguiranno vari avvertimenti fino a creare il file "exploit.ko". 

mercoledì 27 gennaio 2010

GeoHot: Ps3 Exploit

Dopo 3 anni e mezzo di attesa finalmente si vede un hacker sfornare qual cosa di reale a disposizione di tutti in un piatto d'argento, ed ecco infatti che GeoHot rilascia il primo exploit per la Playstation3 in modo da essere trasparente e credibile nel suo operato.
Rilasciando questo exploit da la possibilità anche ad altri di fare nuove scoperte e far finalmente iniziare l'era underground della Playsation 3 anche perchè come dice lui non può stare giorno e notte dietro a questa consolle ma ha bisogno di svagarsi pure lui. Per tutti quelli che hanno fatto e in futuro faranno nuove scoperte dichiara di documentare tutto su ps2 dev wiki .
Inoltre dichiara:
  • "La potenza di questo exploit ha generato tonnellate di nuovi dati tutti da documentare. Vorrei vedere le chiamate mancanti dell'HV, la mappatura della memoria, la sequenza di boot documentata meglio, e i progressi sui driver della GPU. E ovviamente, la ricerca di un software exploit."

Questo exploit per adesso sfrutta l'otheros, una funzione che permette di installare linux purtroppo non presente sulle ps3 slim, è scritto in linguaggio C e occorre compilarlo e lanciarlo da linux con la versione 2.4.2 che utilizza lui, per le altre versioni è solo da provare. La sua utilità è quella di continuare li studi all'interno della ps3 in modo da poter sviluppare un software exploit ossia un vero e proprio hello world ma la meta forse è ancora un bel pò distante.
Ecco come sfruttarlo:
geohot: well actually it's pretty simple
geohot: i allocate a piece of memory
geohot: using map_htab and write_htab, you can figure out the real address of the memory
geohot: which is a big win, and something the hv shouldn't allow
geohot: i fill the htab with tons of entries pointing to that piece of memory
geohot: and since i allocated it, i can map it read/write
geohot: then, i deallocate the memory
geohot: all those entries are set to invalid
geohot: well while it's setting entries invalid, i glitch the memory control bus
geohot: the cache writeback misses the memory :)
geohot: and i have entries allowing r/w to a piece of memory the hypervisor thinks is deallocated
geohot: then i create a virtual segment with the htab overlapping that piece of memory i have
geohot: write an entry into the virtual segment htab allowing r/w to the main segment htab
geohot: switch to virtual segment
geohot: write to main segment htab a r/w mapping of itself
geohot: switch back
geohot: PWNED
geohot: and would work if memory were encrypted or had ECC
geohot: the way i actually glitch the memory bus is really funny
geohot: i have a button on my FPGA board
geohot: that pulses low for 40ns
geohot: i set up the htab with the tons of entries
geohot: and spam press the button
geohot: right after i send the deallocate call