iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
Security

我一個大調查下去:從零開始的數位鑑識系列 第 18

【Day 18】Memory Forensics 07:Meterpreter 分析 - DumpMe Lab

  • 分享至 

  • xImage
  •  

前言

今天要打的是 DumpMe Lab,難度為 medium,分類是 Endpoint Forensics。

DumpMe

情境

一位 SOC 分析師從一台感染了 meterpreter 惡意軟體的機器上獲取了記憶體轉儲。身為數位鑑識專家,你的工作是分析轉儲數據,提取可用的攻擊指標 (IOC),並回答相關問題。

工具

Volatility2

Q1:Triage-Memory.mem(記憶體轉儲)的 SHA1 雜湊值是多少?

sha1sum Triage-Memory.mem

https://ithelp.ithome.com.tw/upload/images/20250906/20177998FjzDO7Rdbb.png
Ans:c95e8cc8c946f95a109ea8e47a6800de10a27abd

Q2:哪種volatility profile最適合這台機器?(例如:Win10x86_14393)

python vol.py -f Triage-Memory.mem imageinfo

https://ithelp.ithome.com.tw/upload/images/20250906/2017799829dOKaRjU7.png
它的 suggest profile 是按名次排的,所以最適合的就是第一個 Win7SP1x64
Ans:Win7SP1x64

Q3:notepad.exe 的進程 ID 是什麼?

用pstree

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 pstree

https://ithelp.ithome.com.tw/upload/images/20250906/20177998TkXhJTGTAO.png
Ans:3032

Q4: wscript.exe 的子進程的名字

從 pstree 的輸出中,可以看到 UWkpjFjDzM.exe 是 wscript.exe 的子進程。
https://ithelp.ithome.com.tw/upload/images/20250906/20177998R6GvBCOnLq.png
這個很奇怪的檔案名稱不是一般合法進程的名稱,基本可以確定是惡意軟體
Ans:UWkpjFjDzM.exe

Q5:創建 RAM dump 時機器的 IP 位址是什麼?

Win7SP1x64 這個 profile 沒有 netstat 這個插件,但是有 netscan

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 netscan

https://ithelp.ithome.com.tw/upload/images/20250906/201779989CHIy66nux.png
Local Address 下有 3 個 IP,127.0.0.1、0.0.0.0、10.0.0.101。
127.0.0.1 是本機回環位址(localhost),用於本機內部通訊
0.0.0.0 表示監聽所有網路介面的服務,不是實際的機器 IP
10.0.0.101 則是實際的 IP 位址
Ans:10.0.0.101

Q6:根據受感染 PID 的答案,您能確定攻擊者的 IP 嗎?

netscan 的輸出中可以看到 UWkpjFjDzM.exe 建立了一個對 10.0.0.106:4444 的連線
https://ithelp.ithome.com.tw/upload/images/20250906/20177998wHQicRsTzj.png
Ans:10.0.0.106

Q7:有多少個進程與 VCRUNTIME140.dll 相關?

dlllist 會列印每個進程已載入的 DLL 列表

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 dlllist | grep VCRUNTIME140.dll

用 grep 把 VCRUNTIME140.dll 篩選出來
https://ithelp.ithome.com.tw/upload/images/20250906/20177998L9RJVlcjiz.png
可以看到五個結果
Ans:5

Q8:轉儲受感染的進程後,其 md5 雜湊值是多少?

剛剛已經辨識出 UWkpjFjDzM.exe 是受感染的進程了,用 procdump 插件把進程 dump 出來再用 md5sum 計算 MD5 hash

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 procdump -p 3496 -D dump/ 
md5sum dump/executable.3496.exe

https://ithelp.ithome.com.tw/upload/images/20250906/201779988NulPhWlLG.png
我們可以把他丟到 VirusTotal 上看看
https://ithelp.ithome.com.tw/upload/images/20250906/20177998t8wgTD3orv.png
Ans:690ea20bc3bdfb328e23005d9a80c290

Q9:Bob 帳戶的 LM 哈希值是多少?

hashdump 插件會從記憶體中 dump 出密碼雜湊值(LM/NTLM)

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 hashdump

https://ithelp.ithome.com.tw/upload/images/20250906/20177998FQg7i5eITM.png
這是 Windows 儲存密碼雜湊的標準格式,每個欄位用冒號分隔,第一個是使用者名稱,第二個是使用者 ID,第三個是 LM hash,第四個是 NTLM hash,後面是額外欄位用於儲存其他資訊。值得注意的是,LM 雜湊現在已被視為不安全,因此 Windows Vista 之後的版本預設停用,當 LM 雜湊停用時,系統會在該欄位顯示固定值 aad3b435b51404eeaad3b435b51404ee。
Ans:aad3b435b51404eeaad3b435b51404ee

Q10:0xfffffa800577ba10 處的 VAD 節點有哪些記憶體保護常數?

VAD 主要負責管理和追蹤進程虛擬位址空間內的記憶體分配,而 vadinfo 這個插件會輸出 VAD 的資訊。

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 vadinfo | grep 0xfffffa800577ba10 -A 10

grep 的參數 -A 10 代表顯示匹配的那行及後續 10 行的內容
https://ithelp.ithome.com.tw/upload/images/20250906/20177998dmDEXzK0z3.png
Ans:PAGE_READONLY

Q11:從 0x00000000033c0000 開始到 0x00000000033dffff 結束的 VAD 具有什麼記憶體保護?

用跟剛剛同樣的方法

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 vadinfo | grep 0x00000000033c0000 -A 10

https://ithelp.ithome.com.tw/upload/images/20250906/20177998IAhlCIghHQ.png
Ans:PAGE_NOACCESS

Q12:機器上運行了一個 VBS 腳本。該腳本的名稱是什麼? (提交時無需檔案副檔名)

用 cmdline 插件查看進程執行時帶的完整命令列參數

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 cmdline

https://ithelp.ithome.com.tw/upload/images/20250906/20177998YTiin6yGQl.png
wscript.exe 是 Windows 用來執行 VBScript 或 JScript 腳本的工具,//B 這個參數告訴 wscript.exe 在執行腳本時不顯示任何錯誤、腳本輸出或訊息框。//NOLOGO 這個參數會隱藏 wscript.exe 的啟動橫幅訊息,%TEMP%\vhjReUDEuumrX.vbs 腳本的路徑和名稱。
Ans:vhjReUDEuumrX

Q13:一個應用程式於 2019-03-07 23:06:58 UTC 運行。該程式的名稱是什麼? (包括擴展名)

在前面 imageinfo 的輸出可以看到擷取時間是 3/22,所以用 pslist、cmdline 等等都找不到,因為他在擷取的時候並沒有在執行。這時候就要用到 shimcache 插件。。
Shimcache(Application Compatibility Shim Cache)是 Windows 用於程式相容性的機制。當程式執行時,系統會將檔案路徑、修改時間、檔案大小等資訊記錄在 SYSTEM Hive 中。而 shimcache 插件用於分析它。

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 shimcache | grep '2019-03-07 23:06:58 UTC'

grep 搜尋目標時間
https://ithelp.ithome.com.tw/upload/images/20250906/2017799828nQ7cAvHw.png
Ans:Skype.exe

Q14:捕獲內存轉儲時 notepad.exe 中寫了什麼?

這個跟我們之前分析 Vim 的方法一樣,都是看它在暫存在記憶體裡的資料
用 memdump 提出它的記憶體區塊

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 memdump -p 3032 -D dump/ 

https://ithelp.ithome.com.tw/upload/images/20250906/20177998m5w0vAOiIF.png
把它存成txt用文字編輯器打開比較好瀏覽

strings -e l dump/3032.dmp > notepad.txt

notepad.exe 在 Windows 中文字預設以 UTF-16LE 編碼儲存的,strings -e l用來指定 UTF-16LE 編碼
https://ithelp.ithome.com.tw/upload/images/20250906/20177998oR1WYKRzls.png
https://ithelp.ithome.com.tw/upload/images/20250906/201779988iCqOgG4iC.png
Ans:flag<REDBULL_IS_LIFE>

Q15:file record 59045 的文件的簡稱是什麼?

這裡 file record 指的是 NTFS 中的 MFT (Master File Table),它是 Windows 用來管理檔案和資料夾的中央資料庫。
mftparser 插件會掃描並解析 MFT

python ~/volatility/vol.py -f Triage-Memory.mem  --profile=Win7SP1x64 mftparser

我這裡把它存成 txt 瀏覽
https://ithelp.ithome.com.tw/upload/images/20250906/201779981ncgbk6gKj.png
https://ithelp.ithome.com.tw/upload/images/20250906/20177998ZlwfXMtgeg.png
Ans:EMPLOY~1.XLS

Q16:這台機器已被利用,並且正在運行 meterpreter。受感染的 PID 是多少?

我們剛剛把 UWkpjFjDzM.exe 丟到 VirusTotal 上看過了,有幾家辨識出他是 Meterpreter。
https://ithelp.ithome.com.tw/upload/images/20250906/20177998JhZW8SzytE.png
UWkpjFjDzM.exe 的 pid 是 3496。
https://ithelp.ithome.com.tw/upload/images/20250906/20177998hzMoWqEmK5.png
Ans:3496

小結

今天的 lab 我們學到了更進階的記憶體分析技巧,像是使用 volatility2 的插件 hashdump 提出密碼雜湊、vadinfo 分析 VAD、shimcache 還原執行紀錄、MFT 條目識別檔案等等,並且成功辨識出此惡意軟體為 Meterpreter。
我們明天將繼續深入 Windows Disk Forensics。


上一篇
【Day 16】Memory Forensics 05:Code Injection 分析 - BlackEnergy Lab
下一篇
【Day 19】Disk Forensics 07:Prefetch 與 ShellBag - Africanfalls Lab
系列文
我一個大調查下去:從零開始的數位鑑識19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言