昨天用 FTK Imager 把 RAM 保存成了一份 .mem,今天來看看裡面到底留下了什麼資料吧。
常見的 Memory Forensics 工具有 Volatility、Bulk Extractor 等等。
兩者看的方向不太一樣,Volatility 比較偏向分析 Process、Network Connection、Command Line 等系統執行狀態,而 Bulk Extractor 則可以直接從資料中掃描 URL、Email、IP 等特徵。
Bulk Extractor 不只可以分析 Memory Dump,也可以掃描 Disk Image、一般檔案或資料夾。
它比較特別的地方是,不需要先按照 File System 一層一層找檔案,而是直接掃描資料內容,透過不同的 Scanner 找出具有特徵的資料,再把結果整理成 Feature File。
例如可能找到:
掃描完成後,Bulk Extractor 還會產生不同類型的 Feature File、Histogram、Log 與 Report,方便後續繼續搜尋。
這次使用的是有 GUI 介面的 Bulk Extractor Viewer(BE Viewer),下載網址。
在安裝 Bulk Extractor 前,要先安裝 Java,避免 BE Viewer 無法正常執行。
開啟 BE Viewer 後,從上方選單選擇 Tools → Run bulk_extractor...
這裡不是直接打開 .mem 看內容,而是先讓 Bulk Extractor 對整份 Memory Dump 做一次掃描。

進入 Run bulk_extractor 的設定畫面後,首先要選擇要分析的來源檔案 Scan → Image File
然後在 Image file 選擇昨天用 FTK Imager 取得的 memdump.mem
雖然這裡顯示的是 Image File,但 .mem 這種 Memory Dump 一樣可以作為 Bulk Extractor 的 Input。
如果選擇檔案時沒有看到 .mem,可以把檔案類型改成 All Files(所有檔案)再選取。

接下來設定 Output Feature Directory,指定 Bulk Extractor 掃描結果要存放的資料夾,建議另外建立一個新的空資料夾來放結果,Bulk Extractor 會在這個資料夾裡建立許多 Feature Files、Histogram、Log 與 Report。
右側還可以看到一整排 Scanner,代表 Bulk Extractor 要搜尋哪些類型的特徵。勾選的 Scanner 越多,能找的資料類型越多,但分析時間也會越久。
| Scanner | 大概在找什麼 |
|---|---|
email |
Email、Domain、URL 等 |
net |
IP、網路相關特徵,部分情況可產生 packets.pcap |
accts |
電話、信用卡號、PII 等格式特徵 |
exif / gps |
圖片 Metadata、GPS 等 |
winpe |
Windows PE 執行檔特徵 |
winprefetch |
Windows Prefetch 結構 |
base64 |
Base64 編碼資料 |
gzip / zip / rar |
壓縮內容 |
sqlite |
SQLite 相關結構 |

選擇完畢後,於視窗下方按下 Submit Run 就會開始進行記憶體分析。

Bulk Extractor 掃描完成後,回到 BE Viewer 就可以開始看結果。
左側的 Reports 會列出剛剛 Output Feature Directory 中產生的各種 Feature File,例如:
另外還會看到像:
這類 Histogram 檔案。
Feature File 比較像是掃到了哪些資料,Histogram 則會再統計某個 Feature 出現的次數,方便先從比較常出現的內容下手。

例如點開 url.txt,BE Viewer 中間就會列出 Bulk Extractor 從 .mem 中找到的 URL。
除了直接看 Bulk Extractor 自動整理出的 Feature,也可以利用一些已知的字串去找 Memory 中可能留下的資料。上方的 Feature Filter 可以直接輸入關鍵字過濾結果。
輸入 search?
就可以快速找到帶有 Google Search Query 的 URL。
從右側的 Context 可以看到 https://www.google.com/search?q=ithome...
代表這段 URL 的內容曾經存在於這份 Memory Dump 中,就是我昨天在 google 搜尋 iThome 的紀錄。

其他已知可以嘗試的關鍵字如下:
| 軟體或適用標的 | 記憶體關鍵字 | 說明 |
|---|---|---|
| Browser | https://www.google.com.tw/search? |
曾 Google 之關鍵字 |
| (N/A) | "passwd=" or "Password" or "memberpw" |
其後可能帶有密碼 |
| Windows | file:\\\ |
Windows 開啟檔案紀錄 |
| (N/A) | rkr, yax |
以 Rot13 解碼 |
| PGP | [\x09-\x0A\x0D\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]PGPW.+[^\x09-\x0A\x0D\x20-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E] |
PGP 解密金鑰 |
| OneDrive | &login、&password |
登入之帳號密碼 |
| Dropbox | u 'xxx@gmail.com' |
登入之 email 帳號 |
| Dropbox | u 'ABC' |
ABC 為主機名稱 |
| Google Drive | <email> ... </email> |
登入之 email 帳號 |
| USB 媒體 | USBSTOR |
USB 使用紀錄 |
除了在 BE Viewer 裡看結果,也可以直接打開剛剛設定的 Output Feature Directory。
可以看到 Bulk Extractor 產生了很多檔案,其中比較特別的是 packets.pcap,也就是 Bulk Extractor 從資料中辨識並重建出的部分 Network Packet。
這個檔案之後可以拿去 Wireshark 或 NetworkMiner 看來源 IP、目的 IP、Port、Protocol 等 Network Evidence。
