分析堆噴射利用技術
概述
堆噴射是一種利用技術,透過將攻擊者控制的資料(通常是 NOP 滑行區後接 shellcode)填入程式堆疊的大片區域,以提升程式碼執行漏洞的可靠度。本技能涵蓋使用 Volatility3 的 malfind、vadinfo 及 memmap 外掛在記憶體傾印檔中偵測堆噴射痕跡、識別可疑的連續記憶體配置、掃描 NOP 滑行模式(0x90、0x0c0c0c0c),以及萃取內嵌的 shellcode 進行分析。
使用時機
- 調查涉及分析堆噴射利用技術的安全性事件時
- 建立此領域的偵測規則或威脅獵捕查詢時
- SOC 分析師需要此類分析的結構化程序時
- 驗證相關攻擊技術的安全監控覆蓋範圍時
先決條件
- 已安裝
volatility3框架的 Python 3.9+ 環境 - 記憶體傾印檔(.raw、.vmem、.dmp 格式)
- 了解虛擬記憶體佈局與 VAD(虛擬位址描述元)樹
- 熟悉常見的 shellcode 模式與 NOP 滑行編碼
步驟
步驟 1:識別可疑程序
使用 Volatility3 windows.malfind 掃描具有可執行注入記憶體區域的程序。
步驟 2:分析 VAD 項目
使用 windows.vadinfo 檢查 VAD 樹項目,尋找具有 RWX 權限的大型連續配置。
步驟 3:掃描 NOP 滑行模式
搜尋可疑記憶體區域中的 NOP 滑行特徵(0x90 序列、0x0c0c0c0c 模式)。
步驟 4:萃取並分析 Shellcode
傾印可疑記憶體區域,並透過位元組模式分析識別 shellcode。
預期輸出
JSON 報告,內含可疑程序、堆噴射指標、NOP 滑行位置、記憶體區域大小以及萃取出的 shellcode 雜湊值。