Python Forensics - Mobile Forensics

Die forensische Untersuchung und Analyse von Standard-Computerhardware wie Festplatten hat sich zu einer stabilen Disziplin entwickelt und wird mithilfe von Techniken zur Analyse von Nicht-Standardhardware oder vorübergehenden Beweisen verfolgt.

Obwohl Smartphones zunehmend in digitalen Untersuchungen eingesetzt werden, gelten sie immer noch als nicht standardisiert.

Forensische Analyse

Forensische Untersuchungen suchen nach Daten wie empfangenen Anrufen oder gewählten Nummern vom Smartphone. Es kann Textnachrichten, Fotos oder andere belastende Beweise enthalten. Die meisten Smartphones verfügen über Bildschirmsperrfunktionen mit Kennwörtern oder alphanumerischen Zeichen.

Hier zeigen wir anhand eines Beispiels, wie Python dabei helfen kann, das Kennwort für die Bildschirmsperre zu knacken, um Daten von einem Smartphone abzurufen.

Manuelle Prüfung

Android unterstützt die Kennwortsperre mit PIN-Nummer oder alphanumerischem Kennwort. Die Grenze beider Passphrasen muss zwischen 4 und 16 Ziffern oder Zeichen liegen. Das Passwort eines Smartphones wird im Android-System in einer speziellen Datei namens gespeichertpassword.key im /data/system.

Android speichert eine gesalzene SHA1-Hashsum und MD5-Hashsum des Passworts. Diese Passwörter können im folgenden Code verarbeitet werden.

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;
}

Es ist nicht möglich, das Passwort mit Hilfe von zu knacken dictionary attack da das Hash-Passwort in a gespeichert ist salt file. Diesesaltist eine hexadezimale Zeichenfolge einer zufälligen Ganzzahl von 64 Bit. Es ist leicht zu erreichensalt durch die Nutzung Rooted Smartphone oder JTAG Adapter.

Verwurzeltes Smartphone

Der Speicherauszug der Datei /data/system/password.key wird in der SQLite-Datenbank unter dem gespeichert lockscreen.password_saltSchlüssel. Untersettings.dbwird das Passwort gespeichert und der Wert ist im folgenden Screenshot deutlich sichtbar.

JTAG-Adapter

Für den Zugriff auf das Gerät kann eine spezielle Hardware verwendet werden, die als JTAG-Adapter (Joint Test Action Group) bekannt ist salt. Ebenso aRiff-Box oder ein JIG-Adapter kann auch für die gleiche Funktionalität verwendet werden.

Unter Verwendung der von Riff-Box erhaltenen Informationen können wir die Position der verschlüsselten Daten ermitteln, dh die salt. Es folgen die Regeln -

  • Suchen Sie nach der zugehörigen Zeichenfolge "lockscreen.password_salt".

  • Das Byte repräsentiert die tatsächliche Breite des Salzes, die seine ist length.

  • Dies ist die Länge, nach der tatsächlich gesucht wird, um das gespeicherte Passwort / die gespeicherte PIN des Smartphones zu erhalten.

Diese Regeln helfen dabei, die entsprechenden Salzdaten zu erhalten.