12章
Hands-on-1
ここでは、プリフェッチファイルの記録内容を確認するハンズオンを行います。
このハンズオンで確認するプリフェッチファイルは、演習用データの以下の相対パスに保存されています。
s12\h1\Prefetch
プリフェッチファイル記録状況の確認
上記「Prefetch」フォルダは、調査用サンプルPCの「C:\Windows\Prefetch」フォルダを論理コピーしたものです。
エクスプローラーで、この「Prefetch」フォルダを開いて下さい。
以下のように、複数のプリフェッチファイルが保存されています。

メモ帳(notepad.exe) の実行により生成されたプリフェッチファイルを確認してみましょう。
エクスプローラーの検索キーワードに「notepad.exe」と入力します。
ファイル名に「notepad.exe」を含むプリフェッチファイルが1件ヒットしますので、プロパティを確認しましょう。

プリフェッチファイル「 NOTEPAD.EXE-B28CC291.pf」は、更新日時が「2021年3月9日 11:00:50」となっています。これは、notepad.exeの起動直後の時刻と考えられます。
ご利用の環境へ演習データを保存した際、更新日時等のタイムスタンプが変更されている場合があります。その場合、原本データの更新日時は上記だったものとして進めて下さい。
厳密には、起動後10秒間の挙動監視の後にプリフェッチファイルが作成(更新)されますので、実際の起動時刻に比べると、10秒以上は遅れた時刻ということになります。
※ ただし、起動後10秒以内にプロセスが終了した場合は、終了と同時にプリフェッチファイルが作成(更新)されます。
上記のプリフェッチファイルを、メモ帳で開いてみましょう(右クリックから「プログラムから開く」-「その他のアプリ」でメモ帳を選択、など)。
プリフェッチファイルは、次の図ようにバイナリ形式になっています。実行回数、実行日時、使用リソースのファイルパスなどが記録されているはずですが、可読文字はありません。
なお、これはWindows10のプリフェッチファイルの例です。Windowsのバージョンによってフォーマットは異なり、旧バージョンではファイルパスなど一部の情報が、文字列として読める場合もあります。

プリフェッチファイルのパース(PECmd)
プリフェッチファイルから情報を取得するためには、解析用のツールが必要になります。
ここでは、プリフェッチファイルを個別にパースできる、「PECmd」を使って、上記プリフェッチファイル(NOTEPAD.EXE-B28CC291.pf)の記録内容を取得してみましょう。
PECmd は、SANS社インストラクターの Eric Zimmerman氏が無償提供する、プリフェッチファイルのパーサーです。
以下のURL(SANS社公式サイト)から入手できますので、ダウンロードして解凍し、「PECmd.exe」をコマンドプロンプトから起動しやすい場所に配置して下さい。
https://www.sans.org/tools/pecmd/
コマンドプロンプトを立ち上げ、PECmd.exe を配置したフォルダに移動して実行しましょう。
パース対象のプリフェッチファイル(NOTEPAD.EXE-B28CC291.pf)を、「-f」オプションに続いて指定して下さい。パース結果は、リダイレクトで任意のファイルへ出力します。
入力コマンドの例を次に示します。
PECmd -f C:\_data\s12\h1\Prefetch\NOTEPAD.EXE-B28CC291.pf > notepad_pf.txt
パース結果をリダイレクトしたファイル(上記例では「notepad_pf.txt」)を、メモ帳などで開いて下さい。
PECmd version 1.5.0.0
Author: Eric Zimmerman (saericzimmerman@gmail.com)
https://github.com/EricZimmerman/PECmd
Command line: -f C:\CDIR-L_data\_data\s12\h1\Prefetch\NOTEPAD.EXE-B28CC291.pf
Warning: Administrator privileges not found!
Keywords: temp, tmp
Processing C:\CDIR-L_data\_data\s12\h1\Prefetch\NOTEPAD.EXE-B28CC291.pf
Created on: 2021-03-09 02:00:50
Modified on: 2021-03-09 02:00:50
Last accessed on: 2023-05-30 02:38:52
Executable name: NOTEPAD.EXE
Hash: B28CC291
File size (bytes): 48,534
Version: Windows 10 or Windows 11
Run count: 2
Last run: 2021-03-09 02:00:39
Other run times: 2021-03-04 03:16:42
Volume information:
#0: Name: \VOLUME{01d52cdf5b3e027f-d65b4ee7} Serial: D65B4EE7 Created: 2019-06-27 11:56:29 Directories: 12 File references: 94
Directories referenced: 12
00: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS
01: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\FONTS
02: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\GLOBALIZATION
03: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\GLOBALIZATION\SORTING
04: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\REGISTRATION
05: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32
06: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\IME
07: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\IME\IMEJP
08: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\IME\SHARED
09: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\JA-JP
10: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEMRESOURCES
11: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\WINSXS\AMD64_MICROSOFT.WINDOWS.COMMON-CONTROLS_6595B64144CCF1DF_6.0.18362.175_NONE_E6C3AB1F131014C9
Files referenced: 75
00: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\NTDLL.DLL
01: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\NOTEPAD.EXE (Executable: True)
02: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\KERNEL32.DLL
03: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\KERNELBASE.DLL
04: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\LOCALE.NLS
05: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\GDI32.DLL
06: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\WIN32U.DLL
(以下、省略)
この結果から、メモ帳(notepad.exe)の実行履歴や使用リソースについて、以下の情報が取得できます。
実行履歴
Run count: 2
Last run: 2021-03-09 02:00:39
Other run times: 2021-03-04 0
実行回数:2回
最終実行日時:2021/3/9 11:00:39(世界標準時:UTCで記録されているため、+9h後の日本時間:JST)
※ プリフェッチファイルの更新日時(同日 11:00:50)と比較して、11秒前
初回実行日:2021/3/4
最終実行時の使用リソース
Files referenced: 75
00: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\NTDLL.DLL
01: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\NOTEPAD.EXE (Executable: True) # <--実行ファイルパス
02: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\KERNEL32.DLL
03: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\KERNELBASE.DLL
04: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\LOCALE.NLS
05: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\GDI32.DLL
06: \VOLUME{01d52cdf5b3e027f-d65b4ee7}\WINDOWS\SYSTEM32\WIN32U.DLL
(以下、省略)
- 実行ファイルパス:
\WINDOWS\SYSTEM32\NOTEPAD.EXE - 起動時に読み込まれるファイル:「NTDLL.DLL」など75個(※実行ファイルのNOTEPAD.EXEを含む)
このように、プリフェッチファイルの解析により、各実行ファイルごとの実行回数、実行日時、実行ファイルパス、最終実行時の使用リソース情報が収集できます。
次節の「プリフェッチのファストフォレンジック」では、保全したすべてのプリフェッチファイルから一括でこれらの情報を抽出し、CSVファイルに出力して分析する方法を紹介します。
問題
- 演習用データの「Prefetch」フォルダに保存されたプリフェッチファイルから、CDIR-C(
cdir-collector.exe)の最終実行日時を調査して下さい。 - なお、プリフェッチファイル内部のタイムスタンプは、世界標準時:UTCで記録されています。
- Flagは、CDIR-C最終実行日時の時刻を、日本時間:JST(UTC +9h)に変換して回答して下さい。
- 回答例:
00:00:00であれば、09:00:00
- 回答例: