Python Forensics - Mobile Forensics

Badania kryminalistyczne i analiza standardowego sprzętu komputerowego, takiego jak dyski twarde, rozwinęły się w stabilną dyscyplinę i są śledzone za pomocą technik analizy niestandardowego sprzętu lub przejściowych dowodów.

Chociaż smartfony są coraz częściej wykorzystywane w dochodzeniach cyfrowych, nadal uważa się je za niestandardowe.

Analiza kryminalistyczna

Badania kryminalistyczne wyszukują dane, takie jak odebrane połączenia lub wybrane numery ze smartfona. Może zawierać wiadomości tekstowe, zdjęcia lub inne obciążające dowody. Większość smartfonów ma funkcje blokowania ekranu za pomocą haseł lub znaków alfanumerycznych.

Tutaj weźmiemy przykład, aby pokazać, w jaki sposób Python może pomóc złamać hasło blokujące ekran w celu pobrania danych ze smartfona.

Badanie ręczne

Android obsługuje blokadę hasłem za pomocą numeru PIN lub hasła alfanumerycznego. Limit obu haseł musi mieć od 4 do 16 cyfr lub znaków. Hasło smartfona przechowywane jest w systemie Android w specjalnym pliku o nazwiepassword.key w /data/system.

Android przechowuje zasoloną sumę skrótu SHA1 i sumę skrótu MD5 hasła. Te hasła można przetwarzać w poniższym kodzie.

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

Nie jest możliwe złamanie hasła za pomocą dictionary attack ponieważ zaszyfrowane hasło jest przechowywane w pliku salt file. Tosaltjest ciągiem szesnastkowym reprezentującym losową liczbę całkowitą 64-bitową. Dostęp dosalt używając Rooted Smartphone lub JTAG Adapter.

Zrootowany smartfon

Zrzut pliku /data/system/password.key jest przechowywany w bazie danych SQLite pod nazwą lockscreen.password_saltklucz. Podsettings.dbhasło jest przechowywane, a wartość jest wyraźnie widoczna na poniższym zrzucie ekranu.

Adapter JTAG

Specjalny sprzęt znany jako adapter JTAG (Joint Test Action Group) może być użyty do uzyskania dostępu do salt. Podobnie, plikRiff-Box lub a JIG-Adapter może być również używany do tej samej funkcji.

Korzystając z informacji uzyskanych z Riff-boxa, możemy znaleźć położenie zaszyfrowanych danych, tj salt. Oto zasady -

  • Wyszukaj powiązany ciąg „lockscreen.password_salt”.

  • Bajt reprezentuje rzeczywistą szerokość soli, która jest jej length.

  • Jest to długość, której faktycznie poszukuje się, aby uzyskać zapisane hasło / kod PIN smartfonów.

Ten zestaw reguł pomaga w uzyskaniu odpowiednich danych dotyczących soli.