Pythonフォレンジック-モバイルフォレンジック

ハードディスクなどの標準的なコンピュータハードウェアの法医学的調査と分析は、安定した分野に発展し、非標準的なハードウェアまたは一時的な証拠を分析するための技術の助けを借りて続いています。

スマートフォンはデジタル調査でますます使用されていますが、それでも非標準と見なされています。

フォレンジック分析

フォレンジック調査では、スマートフォンからの着信やダイヤル番号などのデータを検索します。これには、テキストメッセージ、写真、またはその他の有罪となる証拠を含めることができます。ほとんどのスマートフォンには、パスワードまたは英数字を使用した画面ロック機能があります。

ここでは、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;
}

の助けを借りてパスワードを解読することは実行可能ではありません dictionary attack ハッシュされたパスワードはに保存されているため salt file。このsalt64ビットのランダム整数の16進表現の文字列です。アクセスは簡単ですsalt を使用して Rooted Smartphone または JTAG Adapter

根ざしたスマートフォン

ファイルのダンプ /data/system/password.key SQLiteデータベースの lockscreen.password_saltキー。下settings.db、パスワードが保存され、次のスクリーンショットに値がはっきりと表示されます。

JTAGアダプター

JTAG(Joint Test Action Group)アダプターと呼ばれる特別なハードウェアを使用して、 salt。同様に、Riff-Box または JIG-Adapter 同じ機能に使用することもできます。

Riff-boxから取得した情報を使用して、暗号化されたデータの位置を見つけることができます。 salt。以下はルールです-

  • 関連する文字列「lockscreen.password_salt」を検索します。

  • バイトは、塩の実際の幅を表します。 length

  • これは、スマートフォンの保存されたパスワード/ピンを取得するために実際に検索される長さです。

これらの一連のルールは、適切なソルトデータを取得するのに役立ちます。