@port139 Blog

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

CmdLine

昨日の日記コメントで、けんさんに教えていただいた CmdLine ですが、このツールだと svchost.exe のパラメータまで取得できるんですね〜これは便利です!
どのサービスを起動している svchost.exe なのか確認しやすい。

CmdLine http://www.diamondcs.com.au/index.php?page=console-cmdline
実行例:RPCサービス(rpcss)
C:\temp\cmdline>cmdline.exe -pid:792
792 - C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\system32\svchost -k rpcss

winmsd では svchost.exe の実行は確認できても、どのサービスを起動しているのかわからなかったんですよねぇ。

ddのエラー

dd でディスクイメージを作成していると、時々『Input/output error』というエラーを表示することがあります。通常は conv=noerror を指定してエラーが発生しても作業を継続させていますが、これってどういう時に発生するエラーなんでしょ?ちなみにコマンドラインはこんな↓感じ

dd if=/dev/sda1 bs=512 conv=noerror

恐らく読み取り中にエラーが発生した為に『Input/output error』が表示されるのだろうと予想していますが、エラーが発生した位置のセクターが不良セクタなどで読み取りできない?

OSによる違いは発生するのか?

dd コマンドによるディスクイメージ作成の途中で『Input/output error』が発生した場合、異なるOSでも同じ位置でエラーが発生するのか素朴な疑問を持っていたりします。Linux の dd を実行した場合と、Windows の dd を実行した場合で、同じレコード位置でエラーが発生しないと出力されたイメージファイルのハッシュ値が一致してくれない気がしています。
さて、これを確かめるにはどういう手順で作業すればいいかな?とりあえず『Input/output error』が発生する VMware のイメージ作りから?(笑)

エラーを発生させるには?

VMware にインストールした OS のハードディスクイメージを KNOPPIX*1 の dcfldd を使って読み取っているんですが、残念ながら『Input/output error』がでてくれません。
KNOPPIX から対象パーティションをマウント後に dd すると『Input/output error』が発生するのですが、この方法では Windows からこの VMware イメージを読み取って dd でイメージ作成したらきっと『Input/output error』が発生しない気がする_| ̄|○
#っていうかマウントしない状態ではエラーが発生しないので当たり前ですが。*2

*1:http://www.linux-forensics.com/

*2:インシデントレスポンスでスナップショットを作るのであればマウントしない

異なるOSでチェックしてみた

手元のVMwareのゲストOSで、Input/output error が発生するイメージがあったので、KNOPPIX の dcfldd で読み出した MD5 値と、Windows 用の Forensic Acquisition Utilities*1に含まれる md5sum.exe を利用して MD5 値を確認してみました。手順としてはこんな↓かんじ。

1.ゲストOSを KNOPPIX で起動
2.dcfldd で /dev/sda2(エラーが発生する領域)の内容を読み出し md5sum へ渡す
3.dcfldd if=/dev/sda2 bs=512 conv=noerror | md5sum -b
4.dcfldd が Input/output error を表示する
5.最終的に出力された MD5値をメモ(51e294c82451e6345236aff6c03c5552)
6.VMware の背中から Virtual Disk Driver をダウンロード*2
7.仮想ディスク ファイルを Windows に読み取り専用(/WB)でマウント(Fドライブ)
8.Forensic Acquisition Utilities の dd.exe を利用してイメージを作成
9.dd if=\\.\f: of=c:\temp\fimage.dd bs=512 conv=noerror
10.作成された fimage.dd の MD5 値を先ほどの値と比較

結果としては、LinuxWindows 両方イメージファイルの MD5 値が一致したので、同じイメージを取れていることを確認できました。