Учебники

Python Forensics — Мобильная криминалистика

Судебно-медицинская экспертиза и анализ стандартного компьютерного оборудования, такого как жесткие диски, превратились в стабильную дисциплину, и за ней следуют методы анализа нестандартного оборудования или временных данных.

Хотя смартфоны все чаще используются в цифровых расследованиях, они все еще считаются нестандартными.

Судебный анализ

Судебные расследования осуществляют поиск данных, таких как принятые звонки или набранные номера со смартфона. Он может включать текстовые сообщения, фотографии или любые другие улики. Большинство смартфонов имеют функции блокировки экрана с помощью паролей или буквенно-цифровых символов.

Здесь мы возьмем пример, чтобы показать, как Python может помочь взломать пароль блокировки экрана для получения данных со смартфона.

Ручное обследование

Android поддерживает блокировку паролем с помощью PIN-кода или буквенно-цифрового пароля. Предел обеих паролей должен быть от 4 до 16 цифр или символов. Пароль смартфона хранится в системе Android в специальном файле с именем password.key в / data / system .

Android хранит соленые SHA1-хэш-суммы и MD5-хэш-суммы паролей. Эти пароли могут быть обработаны в следующем коде.

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

Взломать пароль с помощью атаки по словарю невозможно, так как хешированный пароль хранится в солт-файле . Эта соль представляет собой строку шестнадцатеричного представления случайного целого числа из 64 бит. Легко получить доступ к соли с помощью Rooted Smartphone или JTAG Adapter .

Рутованный смартфон

Дамп файла /data/system/password.key хранится в базе данных SQLite под ключом lockscreen.password_salt . В файле settings.db пароль сохраняется, и значение четко видно на следующем снимке экрана.

Рутованный смартфон

JTAG-адаптер

Для доступа к соли можно использовать специальное оборудование, известное как адаптер JTAG (Joint Test Action Group). Точно так же Riff-Box или JIG-адаптер также могут использоваться для той же функциональности.

Используя информацию, полученную из Riff-box, мы можем найти положение зашифрованных данных, то есть соли . Ниже приведены правила —

  • Найдите связанную строку «lockscreen.password_salt.»

  • Байт представляет фактическую ширину соли, которая является ее длиной .

  • Это та длина, которая фактически ищется, чтобы получить сохраненный пароль / пин-код смартфона.

Найдите связанную строку «lockscreen.password_salt.»

Байт представляет фактическую ширину соли, которая является ее длиной .

Это та длина, которая фактически ищется, чтобы получить сохраненный пароль / пин-код смартфона.

Этот набор правил помогает в получении соответствующих данных о соли.