Python Forensics - Mobile Forensics
L'indagine e l'analisi forense dell'hardware standard del computer come i dischi rigidi si sono sviluppate in una disciplina stabile ed è seguita con l'aiuto di tecniche per analizzare hardware non standard o prove transitorie.
Sebbene gli smartphone siano sempre più utilizzati nelle indagini digitali, sono ancora considerati non standard.
Analisi forense
Le indagini forensi cercano dati come chiamate ricevute o numeri composti dallo smartphone. Può includere messaggi di testo, foto o qualsiasi altra prova incriminante. La maggior parte degli smartphone dispone di funzionalità di blocco dello schermo tramite password o caratteri alfanumerici.
Qui, faremo un esempio per mostrare come Python può aiutare a decifrare la password di blocco dello schermo per recuperare i dati da uno smartphone.
Esame manuale
Android supporta il blocco della password con numero PIN o password alfanumerica. Il limite di entrambe le passphrase deve essere compreso tra 4 e 16 cifre o caratteri. La password di uno smartphone è memorizzata nel sistema Android in un file speciale chiamatopassword.key in /data/system.
Android memorizza un hash SHA1 salato e un hash MD5 della password. Queste password possono essere elaborate nel codice seguente.
public byte[] passwordToHash(String password) {
if (password == null) {
return null;
}
String algo = null;
byte[] hashed = null;
try {
byte[] saltedPassword = (password + getSalt()).getBytes();
byte[] sha1 = MessageDigest.getInstance(algo = "SHA-1").digest(saltedPassword);
byte[] md5 = MessageDigest.getInstance(algo = "MD5").digest(saltedPassword);
hashed = (toHex(sha1) + toHex(md5)).getBytes();
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "Failed to encode string because of missing algorithm: " + algo);
}
return hashed;
}
Non è possibile decifrare la password con l'aiuto di dictionary attack poiché la password con hash è archiviata in un file salt file. Questosaltè una stringa di rappresentazione esadecimale di un numero intero casuale di 64 bit. È facile accedere al filesalt usando Rooted Smartphone o JTAG Adapter.
Smartphone con root
Il dump del file /data/system/password.key è memorizzato nel database SQLite sotto il lockscreen.password_saltchiave. Sottosettings.db, la password viene memorizzata e il valore è chiaramente visibile nello screenshot seguente.
Adattatore JTAG
Un hardware speciale noto come adattatore JTAG (Joint Test Action Group) può essere utilizzato per accedere al file salt. Allo stesso modo, aRiff-Box o a JIG-Adapter può essere utilizzato anche per la stessa funzionalità.
Utilizzando le informazioni ottenute da Riff-box, possiamo trovare la posizione dei dati crittografati, ovvero il file salt. Di seguito sono riportate le regole:
Cerca la stringa associata "lockscreen.password_salt".
Il byte rappresenta la larghezza effettiva del sale, che è la sua length.
Questa è la lunghezza effettivamente ricercata per ottenere la password / il pin memorizzati degli smartphone.
Questo insieme di regole aiuta a ottenere i dati salini appropriati.