@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

SANSからの練習問題を試す ファイルの取り出し (6)

bulk_extractor が検出した winpe.txt ファイル内の情報にはハッシュ値が含まれています。マニュアルによると、このハッシュ値は 4096byte 分だけで計算されているという事です。

実験として、EXEファイルのシグネチャをベースに、ヒットした位置から 4096バイトを全て切りだしファイルとして保存しておきます。試してみたところ、適当なシグネチャベースですが、2177件ヒットしてきましたので、これら2177件のファイルのMD5ハッシュを計算します。

winpe.txt の一番最初のオフセット位置は 73728で、ハッシュ値は8b156dd7eaf7056145b770da4932fbb7となっていました。

先ほど取り出した2177件のうち、最初の切り出された4096バイト部分のオフセット位置 73728 となっていますので、このハッシュ値を比較してみたところ、winpe.txt のハッシュ値 8b156dd7eaf7056145b770da4932fbb7 と一致します。

 

では次に、Volatilityのprocmemdumpとprocexedumpのコマンドを使い、PID 796 の実行ファイルイメージを取り出しておきます。次に、これらのダンプしたファイルの4096バイトだけを切り出し、これらのMD5ハッシュ値を計算します。

procmemdump:d72a8f28295bf427503443e90fb64bfa

procexedump:08a71907af164a549c988b7c09415740

 さて、このハッシュ値2件を、先ほどの2177件でヒットしたファイルのハッシュ値と一致するかを検索してみたところ、残念ながらどちらのハッシュ値も一致しませんでした。

 

これはなかなか興味深いと思ったのですが、メモリイメージ内から直接切り出したファイルと、Volatilityのプラグイン経由で取り出したイメージで、先頭からの4096byte範囲内だけでも一致してこない理由は何処にあるんでしょうかね?