Un giorno l' amico Armando Buzzanca mi chiama perchè deve recuperare una nota vocale (un file audio) di un suo amico, che l'ha cancellato per errore dal proprio IPhone.
La vedo difficile, anche perchè col mondo della Mela non ho molto a che fare, quindi si procede per tentativi, non essendo un'attivita forense ma di semplice recupero dati.
Noto subito che l'IPhone non dà accesso a tutti i dati per questo motivo ha bisogno di essere Jailbrekkato, ossia una specie di sblocco che permetterà anche l'istallazione di un'APP chiamata Cydia tramite la quale si potranno scaricare diverse altre applicazioni utili per eseguire l'immgine di tutto l'IPhone su file.
Inizia il gioco di squadra:
Telefono all'amico Nicola Troccoli, che mi suggerisce di collegarmi col Safari dell'IPhone al sito:http://www.jailbreakme.com , ma questo jailbreak non funziona sul firmware 4.01, quindi apro Facebook e chiedo aiuto, tra commenti e chat becco Antonio Di Giorgio che mi suggerisce Limera1n un altro Jailbreak, che questa volta funziona (mi suggeriscono anche GreenPois0n)! Intanto, fioccano i commenti ed i consigli di altri amici.
Riavviato l'IPhone, appare Cydia, dopo aver smanettato un pò, riesco a scaricare ed istallare Mobile Terminal e OpenSSH, a questo punto entra in ballo Linux!
Colleghiamo l'IPhone alla rete WIFi e poi loggandoci nel router vediamo quale indirizzo IP ha preso l'IPhone:
192.168.1.154
Lanciamo CAINE Live su una macchina ed istalliamo il server SSH
sudo apt-get install ssh
poi
sudo /etc/init.d/ssh start per avviare il server SSH. (per approfondimento il libro di Denis)
A questo punto da Caine, montiamo un disco NTFS in scrittura e lanciamo la Terminal Window poi digitiamo:
sudo ssh 192.168.1.154
ci appare il prompt del terminale dell'IPhone, inseriamo le credenziali:
user: root
password: alpine
(sono quelle di default dell'IPhone)
poi digitiamo
dd if=/dev/disk0 | ssh caine@192.168.1.233 dd of=/media/sda1/iphone/iphone.dd
dove 192.168.1.233 è l'IP di Caine collegato anch'esso in rete WiFi.
Adesso il sistema chiederà la password di Caine (dato che deve collegarsi al server SSH di Caine) e quindi digitiamo "caine".
Il dd parte e comincia a scrivere i 16Gb del file immagine nella directory scelta.
ANALISI
Adesso dobbiamo trovare il file della nota vocale, chiamo di nuovo Nicola e mi faccio spedire una nota vocale, il file èprova.m4a
Apro prova.m4a con l'editor esadecimale e tiro fuori l'header:
00 00 00 1C 66 74 ed il footer 00 00 2C
Creo il file foremost.conf
m4a y 8000000 \x00\x00\x00\x1C\x66\x74 \x00\x00\x2C
lancio da Caine:
foremost -c foremost.conf -i iphone.dd -o ./carv
parte il data carving...ed alla fine...non ricaviamo un ragno dal buco!
Adesso non so se è a causa del tipo di file particolare oppure per altri motivi, però provando a cercare JPG, AIFF, MOV il carving è andato a buon fine....quindi il tutto funziona, indagherò ulteriormente per capire come estrarre o montare quel tipo di file immagine.
Il tutto è stato fatto con strumenti gratuiti e manualmente, certamente se avessimo usato un UFED, magari avremmo avuto meno problemi ;)
Il gioco di squadra è stato fondamentale la RETE di aiuti e competenze che si attivano ed io son partito da zero....la stessa sensazione di quando sviluppavo Caine, chat, email, telefono, sembra di essere in un mega team ....REMOTO e tutto si velocizza e si impara.
In fondo, quelli che hanno inventato il calcolo distribuito l'avevano vista giusta...meglio tanti cervelli al lavoro su un problema in parallelo...e senza bisogno di essere nella stessa stanza...!
Non so se questa mia soddisfazione sia giusta o sbagliata, so solo che oggi ho imparato tanto e forse da solo ci avrei messo di più o mi sarei annoiato nel farlo!
Continuiamo a confrontarci ed a scambiarci le conoscenze...si cresce!
Anzi confido nei commenti a questo articolo per continuare a suggerire come agire e migliorare alcuni passaggi di questa procedura ;)
Adesso un pò di note:
http://www.ispazio.net/guide-jailbreak-iphone-3g (vari JailBreak)
The whole shebang:
ssh user@iphone-ip dd if=/dev/rdisk0 bs=1M | dd of=iphone-dump.img
Just the system partition:
ssh user@iphone-ip dd if=/dev/rdisk0s1 bs=1M | dd of=iphone-root.img
Just the user data partition:
ssh user@iphone-ip dd if=/dev/rdisk0s2s1 bs=1M | dd of=iphone-user.img
Se avessimo voluto usare MS Windows al posto di Caine:
PuTTY come client SSH
freeSSHd come server SSH - (create un utente Windows per usarlo come user non loggato in freeSSHd)