目錄
簡介
Volatility3是對Volatility2的重寫,它基於Python3編寫,對Windows 10的內存取證很友好,且速度比Volatility2快很多。對於用戶而言,新功能的重點包括:大幅提升性能,消除了對--profile的依賴,以便框架確定需要哪個符號表(配置文件)來匹配內存示例中的操作系統版本,在64位系統(例如Window的wow64)上正確評估32位代碼,自動評估內存中的代碼,以避免對分析人員進行儘可能多的手動逆向工程。對於開發人員:更加輕鬆地集成到用戶的第三方接口和庫中,廣泛的API文檔,插件可以直接調用其他插件的能力,插件版本控,直接集成自定義符號表和數據結構。
使用要求
- Python 3.5.3或更高版本。
- Pefile 2017.8.1或更高版本
可選依賴項
- yara-python 3.8.0或更高版本。
- capstone 3.0.0或更高版本
符號表
用於分析相關操作系統數據的內核符號表壓縮包。注意:由於Linux內核易於編譯且無法唯一區分它們,因此無法輕鬆提供詳盡的Linux符號表集。官方下載地址:
- https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip
- https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip
- https://downloads.volatilityfoundation.org/volatility3/symbols/linux.zip
安裝
Volatility3目前處於測試階段,在Kali Linux中無法直接通過apt進行安裝,因此需要通過源碼進行安裝。使用git clone https://github.com/volatilityfoundation/volatility3.git將項目克隆到本地,然後下載符號表,解壓之後移動到volatility/symbols目錄中即可。如圖:
基本用法
Volatility3和Volatility2用法差不多,但不需要指定profile。只是插件調用方式改變,特定的操作系統有特定的插件。
python3 vol.py [plugin] -f [image]
常用插件:
layerwriter:列出內存鏡像platform信息
linux.bash:從內存中恢復bash命令歷史記錄
linux.check_afinfo:驗證網絡協議的操作功能指針
linux.check_syscall:檢查系統調用表中的掛鉤
linux.elfs:列出所有進程的所有內存映射ELF文件
linux.lsmod:列出加載的內核模塊
linux.lsof:列出所有進程的所有內存映射
linux.malfind:列出可能包含注入代碼的進程內存範圍
linux.proc:列出所有進程的所有內存映射
linux.pslist:列出linux內存映像中存在的進程
linux.pstree:列出進程樹
mac.bash:從內存中恢復bash命令歷史記錄
mac.check_syscall:檢查系統調用表中的掛鉤
mac.check_sysctl:檢查sysctl處理程序的掛鉤
mac.check_trap_table:檢查trap表中的掛鉤
mac.ifconfig:列出網卡信息
mac.lsmod:列出加載的內核模塊
mac.lsof:列出所有進程的所有內存映射
mac.malfind:列出可能包含注入代碼的進程內存範圍
mac.netstat:列出所有進程的所有網絡連接
mac.psaux:恢復程序命令行參數
mac.pslist:列出linux內存映像中存在的進程
mac.pstree:列出進程樹
mac.tasks:列出Mac內存映像中存在的進程
windows.info:顯示正在分析的內存樣本的OS和內核詳細信息
windows.callbacks:列出內核回調和通知例程
windows.cmdline:列出進程命令行參數
windows.dlldump:將進程內存範圍DLL轉儲
windows.dlllist:列出Windows內存映像中已加載的dll模塊
windows.driverirp:在Windows內存映像中列出驅動程序的IRP
windows.driverscan:掃描Windows內存映像中存在的驅動程序
windows.filescan:掃描Windows內存映像中存在的文件對象
windows.handles:列出進程打開的句柄
windows.malfind:列出可能包含注入代碼的進程內存範圍
windows.moddump:轉儲內核模塊
windows.modscan:掃描Windows內存映像中存在的模塊
windows.mutantscan:掃描Windows內存映像中存在的互斥鎖
windows.pslist:列出Windows內存映像中存在的進程
windows.psscan:掃描Windows內存映像中存在的進程
windows.pstree:列出進程樹
windows.procdump:轉儲處理可執行映像
windows.registry.certificates:列出註冊表中存儲的證書
windows.registry.hivelist:列出內存映像中存在的註冊表配置單元
windows.registry.hivescan:掃描Windows內存映像中存在的註冊表配置單元
windows.registry.printkey:在配置單元或特定鍵值下列出註冊表項
windows.registry.userassist:打印用戶助手註冊表項和信息
windows.ssdt:列出系統調用表
windows.strings:讀取字符串命令的輸出,並指示每個字符串屬於哪個進程
windows.svcscan:掃描Windows服務
windows.symlinkscan:掃描Windows內存映像中存在的鏈接
實例
查看內存鏡像是什麼平臺,如圖:
查看OS和內核詳細信息,如圖:
查看進程列表,如圖:
轉儲進程explorer.exe,對應PID爲3492,如圖:
查看系統中的文件,如圖:
查看註冊表配置單元,如圖:
查看註冊表單元下的註冊表項,如圖:
掃描windows服務,如圖: