iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
Security

那些留在電腦裡的證據:從零開始認識數位鑑識系列 第 20 篇

[DAY 20] 線索這麼多,到底該看哪個 Windows Artifact?

  • 分享至 

  • xImage
  •  

前幾天一路從 $MFT、$Recycle.Bin 看到 LNK、Jump List 等等,其實已經碰過不少 Windows Artifact。

但看到這裡,很容易會有一個問題:

這些東西到底什麼時候要看?

這次在加拿大上課時,老師用一個我覺得很好記的方式整理 Windows Artifacts。大致可以分成四個方向:

Windows Artifacts
│
├─ What RAN? 跑過什麼?
│  ├─ Prefetch
│  ├─ AmCache
│  ├─ ShimCache
│  └─ Event Logs
│
├─ What was OPENED? 開過什麼?
│  ├─ LNK
│  ├─ Jump Lists
│  ├─ Shellbags
│  └─ Recent
│
├─ What was DELETED? 刪過什麼?
│  ├─ $Recycle.Bin
│  ├─ $MFT
│  ├─ $UsnJrnl
│  └─ Shadow Copies
│
└─ Where it CONNECTED? 連過哪裡?
   ├─ Browser Data
   ├─ Network / Wi-Fi
   ├─ USB History
   └─ Firewall Logs

例如今天拿到一台電腦,想知道使用者有沒有執行某支程式,就可以先往 Prefetch、AmCache、ShimCache、Event Logs 這條線找。

如果問題變成「使用者最近有沒有開過某個檔案」,則可以往 LNK、Jump List、Recent 這類 Artifact 看。


What RAN?這台電腦跑過什麼?

如果想知道某支程式有沒有出現在系統裡、是否留下執行相關痕跡,可以先從 Prefetch、AmCache、ShimCache 和 Event Logs 開始找。

  • Prefetch

DAY 19 介紹過 Windows 的 Prefetch 原本是用來加速程式啟動,但其中也可能留下程式執行相關資訊。

常見位置:

C:\Windows\Prefetch\

裡面通常會看到:

*.pf

從 Prefetch 可以關注程式是否曾經執行、執行時間、執行次數,以及啟動時使用到的檔案與資料夾。

所以即使某個可疑的 .exe 已經被刪掉,Prefetch 還是可能留下它曾經出現過的線索。

  • AmCache

AmCache 也是 Windows 中常被拿來分析 Application 的 Artifact,其中可能包含 Executable Path、File Metadata、SHA-1 等程式相關資訊。

因此,即使原始 Executable 已經不存在,AmCache 中仍可能留有和它相關的紀錄。

  • ShimCache

ShimCache 又常被稱為 AppCompatCache,和 Windows 的 Application Compatibility 機制有關,也可能留下 Executable 曾經存在於系統中的資訊。

不過要特別注意,看到 ShimCache 紀錄,不代表單靠這一筆就能直接證明程式一定執行過。

實際分析時,通常還是會和 Prefetch、AmCache、Event Log 等其他 Artifact 一起比對。

  • Event Logs

Windows Event Logs 記錄的是系統、安全性以及 Application 發生的各種事件。

常見位置:

C:\Windows\System32\winevt\Logs\

檔案通常是:

*.evtx

裡面可能包含登入行為、權限使用、帳號或 Policy 異動、Process 啟動、Service 安裝、Scheduled Task、Network Activity 和 Firewall Event。

所以 Event Logs 不只可以拿來看「跑過什麼」,後面做登入、網路或 Timeline 分析時也常會用到。


What was OPENED?使用者開過什麼?

這一組就和前兩天的內容很有關係,常見的 Artifact 包括 LNK、Jump Lists、Shellbags 和 Recent。

  • LNK

DAY16、DAY17 我們了解一個 LNK 裡可能會留下 Target File Path、Target File Size、Timestamp、Volume Serial Number、Machine / Host Information 和 Object ID 等資訊。

所以如果想知道使用者曾經接觸過哪些檔案,LNK 是很重要的一條線索。

  • Jump Lists

DAY18 提到 Jump List 和 Windows 工作列中的「最近開啟」內容有關。

像是 Word 最近開過哪些文件、PDF Reader 最近看過哪些 PDF,都可能留下相關紀錄。

因此,LNK 比較像是在看 「這個檔案留下了什麼資訊?」,Jump List 則可以換個角度,看 「這個 Application 最近開過什麼?」

  • Shellbags

Shellbags 比較偏向 Folder Browsing 的使用痕跡,也就是使用者曾經透過 Windows Explorer 瀏覽過哪些位置。

所以即使某個資料夾後來已經不存在,某些瀏覽相關資訊仍可能留在 Windows 裡。

  • Recent

Windows 也會保留各種最近使用紀錄。

其實前面看的 LNK、Jump List,都可以放在「最近使用行為」這條線上理解。

因此,如果想確認「使用者有沒有打開過這份文件」,通常不會只看單一 Artifact,而是會把 LNK、Jump List、Recent,甚至 $MFT 的資訊一起比對,看不同地方留下來的紀錄能不能互相對上。


What was DELETED?什麼東西被刪掉了?

這一組其實前面已經碰過不少,常見的 Artifact 包括 $Recycle.Bin、$MFT、$UsnJrnl 和 Shadow Copies。

  • $Recycle.Bin

DAY15 提到,當使用者透過 Windows 正常刪除檔案時,可能會留下 $Rxxxxxx 和 $Ixxxxxx。其中 $I 可以提供 Original Path、Original File Size 和 Deletion Time。

所以即使使用者已經按下 Delete,系統還是可能留下不少資訊。

  • $MFT

DAY13、DAY14 裡,我們看過 NTFS 中每個檔案都會有對應的 MFT Record。即使檔案被刪除,相關 Record 也不一定會立刻從磁碟上消失。

因此 $MFT 可以幫助我們了解檔案名稱、檔案大小、Timestamp、Record Number 和 Allocation Status,甚至還能進一步從 Data Run 找到原本 File Data 所在的位置。

  • $UsnJrnl

$UsnJrnl 是 NTFS 用來記錄檔案系統變更的 Journal。

檔案被建立、修改、重新命名或刪除,都可能在這類變更紀錄中留下線索。

所以有時候 $MFT 看到的是檔案現在或殘留的狀態,而 $UsnJrnl 則可以從另一個角度看檔案系統曾經發生過哪些變化。

  • Shadow Copies

Windows 的 Volume Shadow Copies 可能保留某個時間點的 Snapshot。

如果現在的檔案已經被修改、刪除或覆蓋,有時候還能從較早的 Shadow Copy 找到不同版本。


Where it CONNECTED?這台電腦連過哪裡?

最後一組是 Browser Data、Network / Wi-Fi、USB History 和 Firewall Logs。

這類 Artifact 比較像是在回答:這台電腦和外面的世界發生過什麼互動?

  • Browser Data

Browser 本身就會留下不少 Artifact,例如 History、Download、Cache 和 Cookie。

透過這些紀錄,可以了解使用者曾經造訪哪些網站、下載過什麼,以及大概在什麼時間發生。

如果要調查釣魚、惡意下載或資料外洩,Browser Artifact 就會是一條很重要的線索。

  • Network / Wi-Fi

Windows 也可能留下和網路連線相關的紀錄,例如曾經使用過哪些 Wi-Fi、Network Profile,或系統當時的網路活動。

這些資訊放進 Timeline 之後,也可能幫助判斷這台電腦當時處在哪個網路環境。

  • USB History

USB 也是很常見的調查方向。

例如懷疑有人利用 USB 把公司資料帶走,就可以先從系統留下的 USB Device 與裝置識別資訊開始找,再和檔案 Timestamp、LNK 或 Event Log 等 Artifact 一起比對。

  • Firewall Logs

Firewall Log 可以提供另一個 Network Activity 的角度,例如 Source / Destination、IP、Port、Connection,以及 Blocked / Allowed 等資訊。

所以「連過哪裡」通常也不會只看一個地方,而是可能把 Browser、Network、Firewall,甚至前面 Memory Analysis 用過的 netscan 一起拿來比對。


上一篇
[DAY 19] 程式跑過幾次、什麼時候跑?Prefetch 都記得
下一篇
[DAY 21] 硬碟壞一顆,RAID 怎麼把資料救回來?
系列文
那些留在電腦裡的證據:從零開始認識數位鑑識 共 22 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言