ddでハードディスクのイメージをとっておく

| | コメント(0) | トラックバック(6)

何かあったっぽかったら、ddでディスクイメージを取っておきます。
とりあえず、「何かあったぽい時は、いじくり回す前にddでイメージを作成する」ということで、その練習。
その先は専門家に任せましょう・・・。

不備がありそう。
何か間違い等ありましたら、よろしくお願いします。

今回は、実行結果が沢山です。

Forensic Acquisition Utilities

・Forensic Acquisition Utilities
http://users.erols.com/gmgarner/forensics/

「Forensic Acquisition Utilities」を使用しました。
2004/03/21現在ののバージョンは1.0.0.1032 (beta1)。

含まれているファイルはこんな感じ。

  1. dd.exe: A modified version of the popular GNU dd utility program
  2. md5lib.dll: A modified version of Ulrich Drepper's MD5 checksum implementation in Windows DLL format.
  3. md5sum.exe: A modified version of Ulrich Drepper's MD5sum utility.
  4. Volume_dump.exe: An original utility to dump volume information
  5. wipe.exe: An original utility to sterilize media prior to forensic duplication.
  6. zlibU.dll: A modified version of Jean-loup Gailly and Mark Adler's zlib library based on zlib-1.1.4.
  7. nc.exe: A modified version of the netcat utility by Hobbit.
  8. getopt.dll: An implementation of the POSIX getopt function in a Windows DLL format.
Forensic Acquisition Utilities

ダウンロードして適当なフォルダに解凍するだけ。
「\bin\UnicodeRelease\」以下のファイルを使用します。

ただし、リリースビルドでは「MSVCR70.DLL」と「MSVCP70.DLL」が必要になります。
%SystemRoot% (「c:\windows\system32」とか) に入ってればいい。

・www.dll-files.com - Index of downloadable dll-files
http://www.dll-files.com/dllindex/index.shtml
とかから入手できるっぽい。

(2004/04/04 追記 ここから)
よく見たら、解凍後のファイル群の「\bin\System\」以下に「MSVCR70.DLL」と「MSVCP70.DLL」が入ってました。。
(2004/04/04 追記 ここまで)

コマンドラインのヘルプを表示ます。

# dd
C:\> dd --help
# MD5ハッシュ
C:\> md5sum.exe --help
# ボリューム情報を表示(not ヘルプ)
C:\> Volume_dump.exe
# 完全削除ツール(「0」を書き込む)
C:\> wipe.exe -?
# netcat
C:\> nc.exe

■ 別PCへイメージを保存

Online(Live)って言うのかな?

● 環境

・マシンA:
Windows2000。
マシンAのドライブ(D:)のイメージを保存します。
NTFS。

・マシンB
WindowsXP
マシンAのDドライブのイメージファイルを保存するマシン。
NTFS。

dd.exe実行時にエラーがあるとその部分は「0」で埋められます。
取れるはずのデータをなるべく失わないために、dd.exeで一回に読み込むサイズ(ブロックサイズ)はセクタサイズにしておきます。
事前にハードディスクのセクタサイズを確認しておきます。
マシンA(dd.exeで読み込む側)のセクタサイズだけ考えれば良いのかな?

セクタサイズはCHKDSKで調べていいのかな?
少なくとも「/F」オプションは使っちゃだめ。
事前に調べておきましょう。
普通は512Byte。

● 消毒

ディスクイメージを保存するハードディスクを消毒(0埋め)しておきます。
今回の例では、マシンBのデータを保存するドライブを消毒します。
今回は省略しましたがやり方だけ書いておきます。

例えば、Dドライブを「0埋め」するには、こんな感じです。
Dドライブの内容が全て消されちゃうのでそのつもりで。

C:\> wipe \\.\D:
Forensic Acquisition Tools, 1, 0, 0, 1032
wipe, 1, 0, 0, 1032
Copyright (C) 2002 George M. Garner Jr.
 
Command Line: wipe \\.\D:
Module: c:\bin\wipe.exe
File and digital media sterilization program.
Microsoft Windows Version 5.0 (Build 2195.Professional Service Pack 4)
 
21/03/2004  10:50:13 (UTC)
Current User: HOSTNAME\USERNAME
 
Do you want to wipe \\.\D:: [Y]es or [N]o?y
 
WARNING!!! ALL DATA WILL BE DESTROYED.
Are you sure that you want to wipe \\.\D:: [Y]es or [N]o?y
Writing FF bits to allocated range 0x00000000,9223372036854775807 of \\.\D::
Completed in 19839 milliseconds, 136216576 bytes written.
Writing random bits to allocated range 0x00000000,9223372036854775807 of \\.\D::
Completed in 46086 milliseconds, 136216576 bytes written.
Writing zero bits to allocated range 0x00000000,9223372036854775807 of \\.\D::
Completed in 22883 milliseconds, 136216576 bytes written.
 
21/03/2004  10:52:01 (UTC)

1回目、全て「1」で埋める。
2回目、ランダムな数字で埋める。
3回目、全て「0」で埋める。
と、3回書き込みを行っています。

このままだと「フォーマットされていない」とエラーが出ます。
フォーマットをします。
以上で保存先のハードディスクの消毒おしまい。

(2004/03/22 追記 ここから)
KNOPPIXを起動してむかーしの2.5GBのハードディスクをwipeしてみました。
何回も繰り返して終わらないので「man」してみたら、デフォルトで34回実行するんですね。
中断して、クイックモード(「-q」オプション)でやり直しました。
クイックモードの時は、4回だけ。
「-Q」オプションで回数は指定できるっぽい。
4回とも全部ランダムに書き込むっぽい。
「0」埋めするには・・・?
(2004/03/22 追記 ここまで)

ちなみに、ファイルを「0埋め」(wipe)すると以下のような感じになります。

D:\> wipe -b 512 d:\delete.txt
Forensic Acquisition Tools, 1, 0, 0, 1032
wipe, 1, 0, 0, 1032
Copyright (C) 2002 George M. Garner Jr.
 
Command Line: wipe -b 512 d:\delete.txt
Module: c:\bin\wipe.exe
File and digital media sterilization program.
Microsoft Windows Version 5.0 (Build 2195.Professional Service Pack 4)
 
21/03/2004  10:37:15 (UTC)
Current User: HOSTNAME\USERNAME
 
Do you want to wipe d:\delete.txt: [Y]es or [N]o?y
 
WARNING!!! ALL DATA WILL BE DESTROYED.
Are you sure that you want to wipe d:\delete.txt: [Y]es or [N]o?y
Writing FF bits to allocated range 0x00000000,16 of d:\delete.txt:
Completed in 40 milliseconds, 4096 bytes written.
Writing random bits to allocated range 0x00000000,16 of d:\delete.txt:
Completed in 160 milliseconds, 4096 bytes written.
Writing zero bits to allocated range 0x00000000,16 of d:\delete.txt:
Completed in 10 milliseconds, 4096 bytes written.
 
21/03/2004  10:38:01 (UTC)

ファイルを開くと中身が空(0x00)になってます。

● マシンBでnetcat起動

マシンBでncをlistenモードで起動します。
ポート10000でlistenして、受け取ったデータをマシンBの「c:\diskimages\ddrive.dd」へ書き出します。

# マシンB
# ポート10000でデータを待ち受けて、その結果をファイルに書き出します。
C:\> nc -l -p 10000 > c:\diskimages\ddrive.dd
# データが送られてくるのを待つ・・・

● マシンAのハードディスクの内容を転送する

マシンAでディスクイメージをマシンBに送出します。
ddの出力を192.168.99.10のポート10000に送る例です。

# マシンA
# マシンAの物理メモリの内容を192.168.99.10のポート10000に送出します。
C:\> dd if=\\.\d: bs=512 conv=noerror | nc 192.168.99.10 10000
Forensic Acquisition Utilities, 1, 0, 0, 1032
dd, 3, 16, 2, 1032
Copyright (C) 2002, 2003 George M. Garner Jr.
 
Command Line: dd if=\\.\d: bs=512 conv=noerror
Based on original version developed by Paul Rubin, David MacKenzie, and Stuart Kemp
Microsoft Windows: Version 5.0 (Build 2195.Professional Service Pack 4)
 
21/03/2004  08:47:35 (UTC)
Current User: HOSTNAME\USERNAME
 
Statistics for logical volume \\.\d:
                111577600 bytes available
                111577600 bytes free
                136216576 bytes total
 
Volume Name:            \\.\d:
Volume Label:           ボリューム
Drive Type:             fixed
Volume Serial Number:           B526-2650
Maximum Component Length:       255
Volume Characteristics:
 
                        File system preserves case
                        File system supports case sensitive file names
                        File system supports Unicode file names
                        File system preserves and supports persistent ACL's
                        File system supports file level compression
                        File system supports named streams
                        File system supports encryption
                        File system supports object identifiers
                        File system supports reparse points
                        File system supports sparse files
                        File system supports quotas
File System:            NTFS
Clustered:              No
 
Volume Extents:
 
        Disk Number:            1
        Starting Offset:        0x0000000000007e00
        Extent Length:          0000000136217088
Copying \\.\d: to CONOUT$...
 
266048+0 records in
266048+0 records out
 
21/03/2004  08:50:17 (UTC)

と同時に、待ち状態だったマシンBのコンソールにも表示が始まります。

# マシンBで待ち受けてた状態から
rnleft = 5120
rnleft = 6656
rnleft = 1460
rnleft = 76
rnleft = 512
rnleft = 1460
rnleft = 76
rnleft = 512
rnleft = 1460
rnleft = 76
rnleft = 512
rnleft = 1460
rnleft = 76
rnleft = 512
(略)

● 物理メモリの内容を転送するには

おまけ(?)で、物理メモリをファイルに変換する例。
Computer Forensic的には、メモリの揮発性は高いのではやいうちに(HDDより前に)保存しておかないといけません。

# マシンB
# ポート10000でデータを待ち受けて、その内容をファイルに書き出します。
C:\> nc -l -p 10000 > c:\diskimages\PhysicalMemory.dd
# マシンA
# マシンAの物理メモリの内容を192.168.99.10のポート10000に送出します。
C:\> dd.exe if=\\.\PhysicalMemory bs=512 conv=noerror | nc 192.168.99.10 10000
Forensic Acquisition Utilities, 1, 0, 0, 1032
dd, 3, 16, 2, 1032
Copyright (C) 2002, 2003 George M. Garner Jr.
 
Command Line: dd.exe if=\\.\PhysicalMemory bs=512 conv=noerror
Based on original version developed by Paul Rubin, David MacKenzie, and Stuart Kemp
Microsoft Windows: Version 5.0 (Build 2195.Professional Service Pack 4)
 
21/03/2004  09:11:40 (UTC)
Current User: HOSTNAME\USERNAME
 
Total physical memory reported: 522716 KB
Copying physical memory...
c:\bin\dd.exe:
        Stopped reading physical memory:
 
パラメータが間違っています。
パラメータが間違っています。
 
1046352+0 records in
1046352+0 records out
 
21/03/2004  09:13:24 (UTC)

パラメータが間違っています。」ってなんだろう・・・。

● ハッシュ値を取る (MD5)

マシンAのDドライブのハッシュ値を取ります(MD5)

# マシンA
C:\> md5sum \\.\d:
\9810f32594692ee0b5100a94b8da1dcf *\\\\.\\d:

マシンBのイメージファイルのハッシュ値を取ります(MD5)

# マシンB
C:\> md5sum c:\diskimages\ddrive.dd
\9810f32594692ee0b5100a94b8da1dcf *c:\\diskimages\\ddrive.dd

比較します。
紙にメモしたり、プリントアウトするのも良い。

ハッシュ値が一致しました。
システムドライブじゃなかったので、変更はなかったようです。

● マウントしてみる

「Virtual Disk Driver Version 3」を使用しました。
2004/03/21現在のバージョンは version 3.1 (2003/11/10 更新)。

・VMware の背中
http://chitchat.at.infoseek.co.jp/vmware/vdkj.html

VMware の仮想ディスクを Windows ホストにマウントして、普通のディスクドライブのように使用することができます。

また、「単純なセクタイメージファイル(dd など一般のディスクダンプツールで作成したもの)」や「フロッピイメージや単一パーティションの dd イメージのような、パーティションテーブルのないディスクイメージ」にも使用できます。

「READMEJ.TXT」をきちんと読みましょう。
「注意・制限事項」があります。
また「その他」もきちんと読みましょう。

今回は、Windows 2000にマウントしました。

バイナリパッケージをダウンロードし適当なフォルダに解凍します。
「c:\vdk\」に解凍しました。

# Virtual Disk ドライバをインストールします。
C:\vdk> VDK INSTALL
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
Virtual Disk ドライバをインストールしました。
 
# Virtual Disk ドライバを開始します。
C:\vdk> VDK.EXE START
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
Virtual Disk ドライバを開始しました。
 
# Virtual Disk ドライバ状態を表示します。
C:\vdk> VDK.EXE DRIVER
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
ドライバファイル: C:\vdk\vdk.sys
バージョン      : 3.1
開始方法        : 手動
ドライバの状態  : 実行中
ディスクデバイス数   : 4
 
# イメージファイル情報を表示します。(やらなくても良いけど)
C:\vdk> VDK.EXE VIEW c:\diskimages\ddrive.dd
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
'c:\diskimages\ddrive.dd' ファイル種別が判別できませんでした。
単純なセクタイメージファイルとして開きます。
Y) はい / N) いいえ ? y
イメージ名称    : ddrive
ディスク容量    : 266048 セクタ (129 MB)
総ファイル数    : 1
 
  種別     サイズ  パス
 -------  -------  ----
  FLAT     266048  c:\diskimages\ddrive.dd
 
パーティション  :
      #    開始セクタ          サイズ          種別
     --   ------------  ---------------------  ----
      0              0     266048 (   129 MB)  NTFS
 
# 仮想ディスクイメージをオープンします。
# 仮想パーティションにドライブ文字「x」を割り当てます。
# 「書き込みブロックモード」で開きます。
C:\vdk> VDK.EXE OPEN * c:\diskimages\ddrive.dd /WB /L:x
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
'c:\diskimages\ddrive.dd' ファイル種別が判別できませんでした。
単純なセクタイメージファイルとして開きます。
Y) はい / N) いいえ ? y
仮想ディスク 0
アクセス種別    : 書き込みブロック
ディスク容量    : 266048 セクタ (129 MB)
ジオメトリ      : (C) 129 * (H) 64 * (S) 32
総ファイル数    : 1
 
  種別     サイズ  パス
 -------  -------  ----
  FLAT     266048  c:\diskimages\ddrive.dd
 
パーティション  :
      #    開始セクタ          サイズ          種別
     --   ------------  ---------------------  ----
 X:   0              0     266048 (   129 MB)  NTFS
 
# オープン中のイメージファイル情報を表示します。(やらなくても良いけど)
C:\vdk> VDK.EXE IMAGE x
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
仮想ディスク 0
アクセス種別    : 書き込みブロック
ディスク容量    : 266048 セクタ (129 MB)
ジオメトリ      : (C) 129 * (H) 64 * (S) 32
総ファイル数    : 1
 
  種別     サイズ  パス
 -------  -------  ----
  FLAT     266048  c:\diskimages\ddrive.dd
 
パーティション  :
      #    開始セクタ          サイズ          種別
     --   ------------  ---------------------  ----
 X:   0              0     266048 (   129 MB)  NTFS
 
# ハッシュ値を取ります。
# イメージファイルを作成した時のハッシュ値と同じ事を確認します。
C:\vdk> md5sum \\.\x:
\9810f32594692ee0b5100a94b8da1dcf *\\\\.\\x:
 
# 仮想ディスクイメージをクローズします。
C:\vdk> VDK.EXE CLOSE x
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
イメージをクローズしています:ディスク 0...クローズしました。
 
# Virtual Disk ドライバを停止します。
C:\vdk> VDK.EXE STOP
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
イメージをクローズしています:ディスク 0...イメージはありません。
イメージをクローズしています:ディスク 1...イメージはありません。
イメージをクローズしています:ディスク 2...イメージはありません。
イメージをクローズしています:ディスク 3...イメージはありません。
Virtual Disk ドライバを停止しました。
 
# Virtual Disk ドライバをアンインストールします。
C:\vdk> VDK.EXE REMOVE
Virtual Disk Driver for Windows version 3.1
http://chitchat.at.infoseek.co.jp/vmware/
 
Virtual Disk ドライバをアンインストールしました。

コマンドの対応関係はこんな感じ。
他の人が意味分からなくても、私の頭の中ではこんな感じ。

(HELP)
INSTALL
  START
  (DRIVER)
  (DISK)
    CREATE
      (VIEW)
      OPEN
        (IMAGE)
        LINK
        ULINK
      CLOSE
    DELETE
  STOP
REMOVE

MD5ハッシュ値が一致したので、正しくddできたと思われます。
一致しないと困るけど、一致するとうれしいね。

同じPCにイメージを作成

とりあえず、やってみた。

DドライブのイメージをCドライブ(今回の例では「c:\diskimages\」)に作成します。
出力ファイルはリードオンリーで出力されます。

# 物理メモリ
C:\> dd.exe if=\\.\PhysicalMemory of=c:\diskimages\PhysicalMemory.dd bs=512 --md5sum --verifymd5 --md5out=c:\diskimages\PhysicalMemory.dd.md5
C:\>dd.exe if=\\.\PhysicalMemory of=c:\diskimages\PhysicalMemory.dd bs=512 --md5sum --verifymd5 --md
5out=c:\diskimages\PhysicalMemory.dd.md5
Forensic Acquisition Utilities, 1, 0, 0, 1032
dd, 3, 16, 2, 1032
Copyright (C) 2002, 2003 George M. Garner Jr.
 
Command Line: dd.exe if=\\.\PhysicalMemory of=c:\diskimages\PhysicalMemory.dd bs=512 --md5sum --veri
fymd5 --md5out=c:\diskimages\PhysicalMemory.dd.md5
Based on original version developed by Paul Rubin, David MacKenzie, and Stuart Kemp
Microsoft Windows: Version 5.0 (Build 2195.Professional Service Pack 4)
 
21/03/2004  09:58:55 (UTC)
Current User: HOSTNAME\USERNAME
 
Total physical memory reported: 522716 KB
Copying physical memory...
c:\bin\dd.exe:
        Stopped reading physical memory:
 
パラメータが間違っています。
\24024a0c1c9f97bf47d862d81a9808f9 [\\\\.\\PhysicalMemory] *c:\\diskimages\\PhysicalMemory.dd
 
Verifying output file...
\24024a0c1c9f97bf47d862d81a9808f9 [c:\\diskimages\\PhysicalMemory.dd] *c:\\diskimages\\PhysicalMemor
y.dd
The checksums do match.
この操作を正しく終了しました。
 
Output c:\diskimages\PhysicalMemory.dd 535732224/535732224 bytes (compressed/uncompressed)
1046352+0 records in
1046352+0 records out
  
# Dドライブ
C:\> dd if=\\.\d: of=c:\diskimages\ddrive.dd bs=512 conv=noerror --md5sum --verifymd5 --md5out=c:\diskimages\ddrive.dd.md5
Forensic Acquisition Utilities, 1, 0, 0, 1032
dd, 3, 16, 2, 1032
Copyright (C) 2002, 2003 George M. Garner Jr.
 
Command Line: dd if=\\.\d: of=c:\diskimages\ddrive.dd bs=512 conv=noerror --md5sum --verifymd5 --md5
out=c:\diskimages\ddrive.dd.md5
Based on original version developed by Paul Rubin, David MacKenzie, and Stuart Kemp
Microsoft Windows: Version 5.0 (Build 2195.Professional Service Pack 4)
 
21/03/2004  10:03:11 (UTC)
Current User: HOSTNAME\USERNAME
 
Statistics for logical volume \\.\d:
                111577600 bytes available
                111577600 bytes free
                136216576 bytes total
 
Volume Name:            \\.\d:
Volume Label:           ボリューム
Drive Type:             fixed
Volume Serial Number:           B526-2650
Maximum Component Length:       255
Volume Characteristics:
 
                        File system preserves case
                        File system supports case sensitive file names
                        File system supports Unicode file names
                        File system preserves and supports persistent ACL's
                        File system supports file level compression
                        File system supports named streams
                        File system supports encryption
                        File system supports object identifiers
                        File system supports reparse points
                        File system supports sparse files
                        File system supports quotas
File System:            NTFS
Clustered:              No
 
Volume Extents:
 
        Disk Number:            1
        Starting Offset:        0x0000000000007e00
        Extent Length:          0000000136217088
Copying \\.\d: to c:\diskimages\ddrive.dd...
\df401e62a342f4d73140c259cb6e00d9 [\\\\.\\d:] *c:\\diskimages\\ddrive.dd
 
Verifying output file...
\df401e62a342f4d73140c259cb6e00d9 [\\\\.\\d:] *c:\\diskimages\\ddrive.dd
The checksums do match.
 
Output c:\diskimages\ddrive.dd 136216576/136216576 bytes (compressed/uncompressed) 
266048+0 records in
266048+0 records out

追加したいこと

保存対象のイメージを持つマシン側(マシンA)やイメージを保存する側(マシンB)をHDDから起動して、HDD内のバイナリを使いました。
1CD LinuxをCDでブートしてやりたいなあ。

その他

作成したイメージの扱いには気をつけましょう。
とっくの昔に消したはずのモノとか人に見られると恥ずかしいものが出てくるかも;)。
他にも、、、?

暗号化・圧縮やダイナミックディスクとかについてはちょっとノータッチ。

資料

・2004/03/17 【PASSJ Seminar】Windows セキュリティ セミナー
http://www.sqlpassj.org/semievent/semi/secsemi3/intro.aspx
伊原 秀明 氏(Port139)の「インシデント・レスポンス」の講義テキストを見ながら格闘。
セッション資料のダウンロードにはログインが必要です。

・Cake Off & port139ml
http://www.port139.co.jp/cakeoff.htm
『 3.「The Sleuth Kit 入門編 1」』に似た資料がありました。

トラックバック(6)

このブログ記事を参照しているブログ一覧: ddでハードディスクのイメージをとっておく

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/232

» Civil service test guides (Civil service test guides )~のトラックバック

Jaco pastorius posters 続きを読む

» City map of mississauga ontario(Rcon for cod )~のトラックバック

System of a down posters 続きを読む

» Symbiotic relationship examples (Symbiotic relationship examples )~のトラックバック

Central in marketing oregon 続きを読む

» Central in marketing oregon web (All2easy net )~のトラックバック

Central in marketing oregon 続きを読む

» Event calendar april 2006 (Dad poem single )~のトラックバック

Central in marketing 続きを読む

» Illinois state university theatre (Scandinavan airlines )~のトラックバック

Scandinavan airlines 続きを読む

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2004年3月21日 22:47に書いたブログ記事です。

ひとつ前のブログ記事は「イベントログを監視する」です。

次のブログ記事は「SNMP関係のツール」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261