我偷看了你的 Prefetch,它告訴我你開過什麼
🧂 前言
今天會分享在 Windows 底下的 Prefetch 資料夾內的檔案有什麼功能,以及如何使用 PECmd 分析,可以帶給鑑識人員什麼資訊
Prefetch 是什麼?
位置:%WinDir%\prefetch
Prefetch(.pf)是 Windows 為了加速程式啟動而維護的快取檔案。系統會在 %WinDir%\prefetch
路徑下為執行過的可執行檔建立 .pf 檔,裡面包含:
- 執行時間戳:Windows 8 以後的 Prefetch 能記錄多達 8 個執行時間點,可用來建立事件時間線,另外 Prefetch 的時間戳在精確到秒時通常要減掉 10 秒,在做精細時間對帳時要留意此差異,參考網址。
- Run count:表示該程式被執行了多少次。
- 可執行檔名稱與路徑:指出實際被執行的檔案與來源路徑,對判斷惡意軟體的落點很重要。
- 程式啟動時存取過的檔案清單:有時會列出其他被呼叫或載入的 DLL、路徑,可用來找出程式的行為鏈,例如開啟哪些檔。
- volume / system info、執行檔雜湊等元資料:可用來確認是在哪個 volume / 機器上被執行
檔名通常會長得像 PROGRAM.EXE-XXXXXXXX.pf,後面的 8 字元為路徑雜湊,用來區分相同名稱但路徑不同的執行檔。
為了讀取裡面的資料,可以使用 Eric Zimmerman’s tools 當中的 PECmd 轉換成 CSV 檔
PECmd
下載連結:https://ericzimmerman.github.io/#!index.md
PECmd 是由 Eric Zimmerman 開發的一個命令行工具,它的目的是解析 Windows 的 Prefetch 檔案(.pf),抽取其中的 metadata(如執行時間戳、執行次數、被參照的檔案清單等),以便用於鑑識分析
有一個很方便的功能是可以使用以下指令批量處理 Prefetch 裡面的所有檔案,並把它們合成一個 CSV 檔
.\PECmd.exe -d C:\Users\yunshiuan\Desktop\The_Enduring_Echo\C\Windows\prefetch --csv "C:\Users\yunshiuan\Desktop\output"
如果想要單獨轉換某個 .pf 檔的話可以使用 -f
接下來就會在 output 中出現轉換好的 CSV 檔
可以使用 Timeline Explorer 或者其他查看 CSV 檔的軟體查看
假設我想要知道 cmd.exe 執行了幾次,直接按照剛剛的步驟並搜尋 cmd.exe,發現它執行了 26 次
總結
今天介紹了 Prefetch 的功用以及可以利用 Prefetch 去得知什麼線索,透過這些 .pf 檔案,我們可以看到哪個程式被執行過、從哪裡執行、跑了幾次,並利用了 PECmd 將這些 Prefetch 檔案轉成可以看懂的 CSV 樣式,明天繼續介紹其他可以分析的地方