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.