1-1. Volatility3簡介
Volatility 是一個完全開源的工具,用于從內存 (RAM) 樣本中提取數字工件。支持Windows,Linux,MaC,Android等多類型操作系統系統的內存取證。
針對競賽這塊(CTF、技能大賽等)基本上都是用在Misc方向的取證題上面,很多沒有聽說過或者不會用這款工具的同學在打比賽的時候就很難受。
以前很多賽項都是使用vol2.6都可以完成,但是由于操作系統更新,部分系統2.6已經不支持了,如:Win10 等鏡像,而Volatility3是支持這些新版本操作系統的。
Volatility3和Volatility2用法差不多,但不需要指定profile。只是插件調用方式改變,特定的操作系統有特定的插件。
2-1 Volatility3在Linux下的安裝方法
2-1-1. Volatility3 Kali Linux下安裝教程
極安云科專注技能競賽,包含網絡建設與運維和信息安全管理與評估兩大賽項,及各大CTF,基于兩大賽項提供全面的系統性培訓,擁有完整的培訓體系。團隊擁有國賽選手、大廠在職專家等專業人才擔任講師,培訓效果顯著,通過培訓幫助各大院校備賽學生取得各省 國家級獎項,獲各大院校一致好評。
Volatility2.6是基于Python2來實現的,而Volatility3的基于Python3來實現的,所以我們需要Python3的環境,推薦在kali下配置,因為kali自帶Python2和Python3的環境。
該項目目前在Github上的開源項目地址以及官網:
https://github.com/volatilityfoundation/volatility3
https://www.volatilityfoundation.org/releases-vol3
Volatility 3需要Python 3.7.0或更高版本。要安裝最少量的依賴項集(某些插件無法工作),請使用以下命令:
pip3 install -r requirements-minimal.txt
或者,當使用setup.py安裝Volatility 3時,將自動安裝最低限度的軟件包。但是,如下面的“快速入門”部分所述,在使用Volatility3之前,不需要通過setup.py安裝它。
解釋:當使用setup.py安裝Volatility 3時,相當于最小化安裝,很多插件不裝,而需要全量安裝的話需要使用pip來進行所有插件的安裝
python3 setup.py build
python3 setup.py install
要啟用Volatility 3的全部功能,請使用下面這樣的命令。對于部分功能,請在運行命令之前,在requirements.txt中注釋掉任何不必要的包。
pip3 install -r requirements.txt
2-1-2.下載Volatility
Volatility的最新穩定版本將始終是GitHub存儲庫的穩定分支。您可以使用以下命令獲取最新版本的代碼:
git clone https://github.com/volatilityfoundation/volatility3.git
快速入門
從GitHub克隆最新版本的Volatility:
git clone https://github.com/volatilityfoundation/volatility3.git
請參閱可用選項:
python3 vol.py -h
要獲得有關Windows內存示例的更多信息并確保Volatility支持該示例類型,請運行
python3 vol.py -f <imagepath> Windows.info
示例:
python3 vol.py -f /home/user/samples/stuxnet.vem windows.info
運行一些其他插件。-f或–single位置不是嚴格要求的,但大多數插件都需要一個樣本。有些人還要求/接受其他選擇。
運行python3 vol.py <plugin> -h
以獲取有關特定命令的更多信息。
3-1. 常用命令以及語法
python3 vol.py -f [image] [plugin]常用插件:windows.info:顯示正在分析的內存樣本的OS和內核詳細信息windows.callbacks:列出內核回調和通知例程windows.cmdline:列出進程命令行參數windows.dlldump:將進程內存范圍DLL轉儲windows.dlllist:列出Windows內存映像中已加載的dll模塊windows.driverirp:在Windows內存映像中列出驅動程序的IRPwindows.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內存映像中存在的鏈接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內存映像中存在的進程