iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0
Security

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

【Day 07】Memory Forensics 01:Chrome 面具下的惡意軟體 - Ramnit Lab

  • 分享至 

  • xImage
  •  

前言

今天要打的是 Cyber Defenders 的 Ramnit Lab,這題的分類是 Endpoint Forensics,難度為 easy。

Ramnit

情境

我們的入侵偵測系統已提醒我們工作站上存在可疑行為,表示可能存在惡意軟體入侵。我們已取得此系統的記憶體轉儲 (memory dump) 進行分析。您的任務是分析此轉儲,追蹤惡意軟體的行為,並報告關鍵發現。

工具

我們今天要使用 volatility3 和 exiftool。 我使用的是 Linux 平台,所以有的安裝方式和指令與其他平台 (ex: Windows) 並不相通。

安裝 volatility3

Volatility 是一個開源的記憶體鑑識 (memory forensics) 框架,包含了各種實用的插件,專門用於分析記憶體轉儲,是數位鑑識中不可或缺的工具。 可以直接使用

pip install volatility3

或是

git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3/
python3 -m venv venv && . venv/bin/activate
pip install -e ".[dev]"

後者可以安裝最新版本,安裝完成後輸入

vol -h 

來查看指令參數,若有輸出指令參數就代表安裝成功。
這是 Windows 和 Linux 通用的安裝方法。

安裝 exiftool

ExifTool 是一個強大且用途廣泛的開源軟體,用於讀取、寫入和編輯檔案的元數據 (metadata)。
用以下指令安裝

sudo apt install exiftool 

Windows 系統可以直接下載 exiftool.exe 來使用

Q1:造成可疑活動的進程名稱是什麼?

要辨識可疑進程我們首先使用 pslist 這個插件,它會會列出所有進程,並顯示它們的名稱、啟動時間、 ID 等等,我們可以查看有沒有可疑的進程名稱。

vol -f memory.dmp windows.pslist

-f 指定記憶體轉的檔案路徑
https://ithelp.ithome.com.tw/upload/images/20250826/20177998qfrAFF1xW5.png
這裡用 pslist 沒有看到可疑的進程名稱。
接下來我們要使用 cmdline 插件,它會列出所有進程執行時帶的完整命令列參數和完整路徑,我們可以用來判斷是否有異常位置的程式執行或是奇怪的參數。

vol -f memory.dmp windows.cmdline

https://ithelp.ithome.com.tw/upload/images/20250826/201779989qGdngEUHh.png
在輸出中我們看到大部分都是合法的 Windows 系統進程,但是這個 ChromeSetup.exe 在使用者下載資料夾下,且不屬於系統進程,非常可疑。
接著我們使用 netstat 插件,netstat 插件會提取網路連線資訊,我們可以透過它來檢查可疑連線。

vol -f memory.dmp windows.netstat

https://ithelp.ithome.com.tw/upload/images/20250826/20177998LH5IdWLVE4.png
可以看到我們懷疑的 ChromeSetup.exe 發起對外連線,進一步增加他的嫌疑 (svchost, WAASHost 是合法系統進程)
透過 dumpfiles 插件我們可以把我們懷疑的進程轉儲出來,包含它載入的 DLL 等等

vol -f memory.dmp -o dump windows.dumpfiles --pid 4628 

-o 指定導出路徑 --pid 指定要導出進程的 PID (process id 可以在 pslist, cmdline 等等的輸出下找到),所以上面這條指令的意思是導出 PID 4628 的進程的轉儲 (ChromeSetup.exe) 到 /dump 資料夾下。
轉儲完成後進入 /dump 目錄,輸入

md5sum file.0xca82b85325a0.0xca82b7e06c80.ImageSectionObject.ChromeSetup.exe.img

計算可疑程式的MD5 hash
https://ithelp.ithome.com.tw/upload/images/20250826/20177998aUhsIEvbKG.png
複製丟到 VirusTotal
VirusTotal 是一個免費網站,它能讓你分析檔案、URL、網域和 IP 位址,以檢查它們是否含有惡意內容。
https://ithelp.ithome.com.tw/upload/images/20250826/20177998bwjZB0iXEK.png
圖中可以看到有 68 家防毒軟體判斷其為惡意程式,基本可以確定他就是個惡意程式了。
Ans:ChromeSetup.exe

Q2:惡意進程的可執行檔的確切路徑是什麼?

從剛剛 vol -f memory.dmp windows.cmdline 的輸出中能看到。
Ans:C:\Users\alex\Downloads\ChromeSetup.exe

Q3:識別網路連線對於理解惡意軟體的通訊策略至關重要。惡意軟體嘗試連線到哪個 IP 位址?

剛才 vol -f memory.dmp windows.netstat 的輸出中能看到。
Ans:58.64.204.181

Q4:為了確定攻擊的具體地理來源,惡意軟體通訊的 IP 位址與哪個城市相關聯?

用 IP 查詢網站查詢剛剛得到的 IP
https://ithelp.ithome.com.tw/upload/images/20250826/20177998JdTlc4szJQ.png
Ans:Hong Kong

Q5:hash是檔案的獨特標識符,有助於偵測不同機器上的類似威脅。惡意可執行檔的 SHA1 hash是多少?

進入剛剛導出的資料夾,使用 sha1sum 這個指令來計算 SHA1 hash

sha1sum file.0xca82b85325a0.0xca82b7e06c80.ImageSectionObject.ChromeSetup.exe.img

https://ithelp.ithome.com.tw/upload/images/20250826/20177998ZbsroNKrLI.png
Ans:280c9d36039f9432433893dee6126d72b9112ad2

Q6:檢查惡意軟體的開發時間軸可以深入了解其部署情況。該惡意軟體的編譯時間戳記是什麼?

用 exiftool 查看檔案元數據

exiftool file.0xca82b85325a0.0xca82b7e06c80.ImageSectionObject.ChromeSetup.exe.img

https://ithelp.ithome.com.tw/upload/images/20250826/20177998i8qHbHFJN8.png
把時間戳轉換成 UTC+0
Ans:2019-12-01 08:36

Q7:識別與該惡意軟體關聯的網域對於阻止未來的惡意通訊以及檢測我們網路中與這些網域的任何持續互動至關重要。您能提供與該惡意軟體關聯的網域嗎?

點進 VirusTotal 的 Relations 介面,VirusTotal 的 Relations 介面能讓你看到你上傳的檔案或網址,與其他惡意檔案、網址和基礎設施之間的關聯。
https://ithelp.ithome.com.tw/upload/images/20250826/20177998dAbYSeUaqy.png
Ans:dnsnb8.net

小結

今天我們學會了 volatility3 的基本操作和使用它識別惡意程序的基本方法:pslist 程序清單 -> cmdline 命令分析-> netstat 網路驗證,建立了一套基礎的工作流程。
不只 volatility3 的操作,我們還學會了檔案雜湊驗證、IP 地理位置查詢、VirusTotal 威脅情報這些必備技術。
透過這些技術,我們發現了偽裝成 Chrome 安裝程式的惡意軟體,連線至香港 IP,體現了社交工程的攻擊手法。
明天我們將深入記憶體分析技術,繼續追尋惡意軟體的蹤跡。


上一篇
【Day 06】Disk Forensics 01:內鬼現形記 - Insider Lab
下一篇
【Day 08】Memory Forensics 02:VPN隧道下的隱形攻擊者 - RedLine Lab
系列文
我一個大調查下去:從零開始的數位鑑識14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言