Jailbreakme: ecco come funziona il jailbreak per iPad 2 (aggiornato)

Avevo già analizzato alcuni aspetti della beta di Jailbreakme ma @comex si è superato nella realizzazione della versione definitiva del jailbreak per iPad 2 (e non solo). Il primo step da superare per visualizzare il sorgente pagina di Jailbreakme è ricorrere allo user agent spoofing per scaricare il sorgente completo visualizzato da un iPad.

Per far questo ho utilizzato il programma per Windows Malzilla, basterà impostare il seguente user agent:

Mozilla/5.0 (iPad; U; CPU OS 4_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F190 Safari/6533.18.5

Fatto questo su Malzilla sarà sufficiente impostare ovviamente la URL da scaricare, cioè www.jailbreakme.com, e cliccare su Get. Così facendo otterremo il sorgente pagina come se venisse visualizzato da iPad, per comodità l’ho postato su Pastebin (qui in formato raw).

L’exploit risiede, come sappiamo, in un PDF che però non viene scaricato da nessuna cartella o dominio esterno, bensì è codificato in base64 in uno script JavaScript, posto solo un pezzo del codice:

<script>pdf = ‘data:application/pdf;base64,JVBERi0xLjMKJeLjz9MNCjIg</script>

La decodifica del PDF da base64 genera un documento non proprio corretto per essere un vero e proprio PDF (se volete provare da voi la decodifica potete usare Malzilla oppure usare questo decoder Base64 web based. Il problema vero e proprio è che il PDF contiene al suo interno uno stream compresso con Flatedecode che contiene al suo interno l’exploit vero e proprio. Sinceramente non sono riuscito a decomprimerlo né con pdf-parser di Didier Stevens, né con PDF Stream Dumper, né con Ghostscript come spiegato qui. Diciamo che però l’aver continuato a far domande su Hacker News (il nickname che ho usato è demonfly) ha smosso comex in persona che ha così spiegato l’exploit usato:

It’s compressed with FlateDecode; if you decompress it you can see the embedded .pfb, which has the actual exploit

Sostanzialmente l’exploit che permette il jailbreak è costituito da un font .pfb.

Grazie ai suggerimenti di Gianni Amato sono riuscito non solo a individuare con pdf-parser il font ma anche ad estrarlo. La procedura che ho seguito è la seguente:

python pdf-parser.py -f pdfexploit.pdf

Usate il nome che volete al posto di pdfexploit.pdf, potete scaricare il pdf da qui, Il risultato mostra che l’oggetto 4, indicato come obj 4 0, sia proprio un Font (Type: /Font). A questo punto per estrarlo ho dato il seguente comando:

python pdf-parser.py --object 4 --filter --raw YuPrMhiE.pdf > font.pfb

Così facendo in font.pfb ho salvato il font che contiene l’exploit di comex, per memoria futura e per consentire di analizzarlo ho caricato il dump del font su Pastebin.

1 commento su “Jailbreakme: ecco come funziona il jailbreak per iPad 2 (aggiornato)”

I commenti sono chiusi.