iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
Security

Blue 了 Blue 了!只會看封包與log的我錯了嗎!系列 第 2

Day2 撥開電腦的記憶找出最黑暗的部分

  • 分享至 

  • xImage
  •  

🧂 前言

記憶體分析我認為是如果在一個 CTF 的 Forensic 分類上是比較有趣的題目,因為他不像硬碟鑑事隨隨便便就需要很大的空間,但是可以體驗到在一台被攻擊的電腦上尋找線索的感覺,因此今天要分享的是什麼是記憶體分析,以及最常使用的記憶體分析工具 Volatility。


🧠 什麼是記憶體鑑識?

記憶體鑑識是從電腦的隨機存取記憶體(RAM)中提取、分析和解釋數位證據的過程。其中會需要得知的是正在執行的程式、process、載入的library、網路連線狀態、使用者輸入、甚至密碼或加密金鑰,有些是根本沒寫到硬碟

那為什麼需要記憶體鑑識?

  1. 易失性資料保存
    1. RAM中的資料在斷電後會消失
    2. 許多重要證據只存在於記憶體中
    3. 需要及時捕獲這些易失性資訊
  2. 惡意軟體分析
    1. 現代惡意軟體常駐記憶體,不留檔案痕跡
    2. Rootkit、無檔案攻擊
    3. 記憶體注入技術
  3. 攻擊行為追蹤
    1. 網路連線狀態
    2. 執行中的程序
    3. 系統呼叫和API使用

所以如果拿到一台受攻擊的電腦,第一部會先對記憶體進行 dump ,因為有可能攻擊者會對 disk 做清除或者煙滅證據,但記憶體通常還是會紀錄這些攻擊證據,這就是為什麼記憶體分析這麼重要。

而記憶體鑑識工具大家最常用的就是Volatility


📈 Volatility

Volatility 是一個 memory forensics框架,用來從memory dump中提取系統運作時的各種資訊,包含正在跑的 process、網路連線、註冊表資料、開啟的 file handles 等等

最初的版本是 Volatility 2 ,因為寫在 Python 2 上,之後推出了 Volatility 3,並使用 Python3 編寫

下載連結:

Github 中安裝步驟都有寫在README.md上,而 Volatility 2 的安裝方式會比 3 的安裝會多一步是需要先安裝Python2

以下介紹一些 Volatility 2 跟 3 的基本操作

📌 Volatility 2 基本操作

當你有一個記憶體 dump 的檔案,例如 memdump.img

  1. 取得作業系統與版本
    python2 vol.py -f memdump.img imageinfo
    
  2. 列出process列表
    python2 vol.py -f memdump.img --profile=Win7SP1x64 pslist
    python2 vol.py -f memdump.img --profile=Win7SP1x64 pstree
    
  3. 查看網路連線
    python2 vol.py -f memdump.img --profile=Win7SP1x64 netscan
    
  4. 列出檔案
    python2 vol.py -f memdump.img --profile=Win7SP1x64 filescan
    
  5. dump files
    python2 vol.py -f memdump.img --profile=Win7SP1x64 dumpfiles dumpfiles -Q 0x000000003fc61be0 -D c:\files -u
    
  6. 查看使用者活動或命令列歷史
    python2 vol.py -f memdump.img --profile=Win7SP1x64 cmdline
    

其他對應指令可以下 -h 查看或者看官方的doc


📌 Volatility 3 基本操作

Volatility 3 就不用再下 profile ,先假設 memdump.img 是 Windows

  1. 取得作業系統與版本
    python2 vol.py -f memdump.img imageinfo
    
  2. 列出process列表
    python3 vol.py -f memdump.img windows.pslist
    python3 vol.py -f memdump.img windows.pstree
    
  3. 查看網路連線
    python3 vol.py -f memdump.img windows.netscan
    python3 vol.py -f memdump.img windows.netstat
    
  4. 列出檔案
    python3 vol.py -f memdump.img windows.filescan
    
  5. dump files
    python3 vol.py -f memdump.img -o ./files_out windows.dumpfiles --pid 1234
    
  6. 查看使用者活動或命令列歷史
    python3 vol.py -f memdump.img windows.cmdline
    

其他指令可以下 -h 查看或者看官方的doc


🤨 要選 Volatility2 還是 Volatility3 ?

我個人會建議兩個都裝, 因為有時候會出現Volatility2 跑出不來的,Volatility3 就可以,不然就是Volatility2有的插件Volatility3 沒有......等等,另外現在 Volatility2 已經沒有再維護了,現在主要都是Volatility3還在持續的更新,但是 Volatility2 以目前來說 Plugin 的完整度還是大於Volatility3,因此常常會看到有些人到現在還是會使用 Volatility2 進行記憶體分析


結論

今天介紹了什麼是記憶體鑑識以及Volatilty 工具使用,接下來幾天會分享我在學習記憶體分析時學到的有趣技術或者


上一篇
Day1 上一世我玩CTF之後我重生了,這一世我將變成藍隊向大家復仇
下一篇
Day3 蛤?為什麼我做記憶體鑑識還要看evtx,我不知道我還要記Event ID啊,不鑑了,爛鑑識!
系列文
Blue 了 Blue 了!只會看封包與log的我錯了嗎!11
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言