Python Forensics - Forensik Seluler
Investigasi forensik dan analisis perangkat keras komputer standar seperti hard disk telah berkembang menjadi disiplin yang stabil dan diikuti dengan bantuan teknik untuk menganalisis perangkat keras non-standar atau bukti sementara.
Meskipun smartphone semakin banyak digunakan dalam investigasi digital, namun tetap dianggap tidak standar.
Analisis forensik
Investigasi forensik mencari data seperti panggilan masuk atau nomor keluar dari smartphone. Ini dapat mencakup pesan teks, foto, atau bukti memberatkan lainnya. Sebagian besar ponsel cerdas memiliki fitur penguncian layar menggunakan sandi atau karakter alfanumerik.
Di sini, kami akan mengambil contoh untuk menunjukkan bagaimana Python dapat membantu memecahkan kata sandi pengunci layar untuk mengambil data dari smartphone.
Pemeriksaan Manual
Android mendukung kunci kata sandi dengan nomor PIN atau kata sandi alfanumerik. Batas kedua frasa sandi harus antara 4 dan 16 digit atau karakter. Kata sandi smartphone disimpan di sistem Android dalam file khusus yang disebutpassword.key di /data/system.
Android menyimpan SHA1-hashsum dan MD5-hashsum password. Kata sandi ini dapat diproses dalam kode berikut.
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;
}
Tidak mungkin untuk memecahkan kata sandi dengan bantuan dictionary attack karena sandi berciri disimpan di file salt file. Inisaltadalah string representasi heksadesimal dari bilangan bulat acak 64 bit. Sangat mudah untuk mengakses filesalt dengan menggunakan Rooted Smartphone atau JTAG Adapter.
Smartphone yang Di-Root
Tempat pembuangan file /data/system/password.key disimpan dalam database SQLite di bawah lockscreen.password_saltkunci. Dibawahsettings.db, kata sandi disimpan dan nilainya terlihat jelas di tangkapan layar berikut.
Adaptor JTAG
Perangkat keras khusus yang dikenal sebagai adaptor JTAG (Joint Test Action Group) dapat digunakan untuk mengakses file salt. Demikian pula, aRiff-Box atau a JIG-Adapter juga dapat digunakan untuk fungsi yang sama.
Dengan menggunakan informasi yang diperoleh dari Riff-box, kita dapat menemukan posisi dari data yang dienkripsi, yaitu salt. Berikut adalah aturannya -
Cari string terkait "lockscreen.password_salt."
Byte mewakili lebar garam yang sebenarnya, yang merupakan miliknya length.
Ini adalah panjang yang sebenarnya dicari untuk mendapatkan kata sandi / pin yang tersimpan dari smartphone.
Kumpulan aturan ini membantu mendapatkan data salt yang sesuai.