最近簡單的了解了一下Volatility這個開源的取證框架,這個框架能夠對導出的內存鏡像鏡像分析,能過通過獲取內核的數據結構,使用插件獲取內存的詳細情況和運行狀態,同時可以直接dump系統文件,屏幕截圖,查看進程等等等等~~~
0x01 安裝
安裝分為三步走:
-
-
安裝必要的python依賴文件
-
安裝本體
下載
你可以在Release中找到對應你系統(Mac,Win,Linux)的源代碼,當然也可以通過github去獲取源碼:
git clone https://github.com/volatilityfoundation/volatility.git
依賴
如果只是用Volatility本體,就不要安裝這些依賴,但是如果想使用某些插件,就需要對這些以依賴進行安裝·
Distorm3:牛逼的反編譯庫
pip install distorm3
Yara:惡意軟件分類工具
pip install yara
PyCrypto:加密工具集
pip install pycrypto
PIL:圖片處理庫
pip install pil
OpenPyxl:讀寫excel文件
pip install openpyxl
ujson:JSON解析
pip install ujson
安裝
如果你用的是獨立的win、linux、mac執行文件,那就不必安裝了。只要用python去執行就好。
若是下載了壓縮文件,那你可以選擇直接運行python主程序,也可以選擇使用python setup.py install的方式將Volatility以一個庫的形式安裝在系統的特定位置上,從而以后我們可以將Volatility作為一個庫在其他腳本中去引用namespace。
0x02 使用
kali自帶有volatility,於是我直接在kali山進行操作
我這里也直接用我這兩天看的一道CTF的題目作為實例來操作吧
Imageinfo
這個命令可以用來獲取內存鏡像的摘要信息,比如系統版本,硬件構架等
volatility -f wuliao.data imageinfo
通過Suggested Profile(s) 我們可以知道這個鏡像文件的版本最有可能事Win7SP1x64
可以使用--info參數來查看Volatility已經添加的profile和插件信息
Kdbgscan
這個插件可以掃描文件的profile的值,通常掃描結果有多個,只有一個結果是完全正確的,kdbgscan和imageinfo都只適用於windows的鏡像
Pslist
volatility -f wuliao.data --profile=Win7SPx64 pslist
pslist可以直接列出運行的進程,如果進程已經結束,會在Exit列顯示日期和時間,表明進程已經結束
Hivelist
列舉緩存在內存中的注冊表
volatility -f wuliao.data --profile=Win7SP1x64 hivelist
filescan
掃描內存中的文件
volatility -f wuliao.data --profile=Win7SP1x64 filescan
filescan 也可以結合grep命令來進行篩選,比如
volatility -f wuliao.data --profile=Win7SP1x64 filescan |grep "doc\|docx\|rtf"
也可以
volatility -f wuliao.data --profile=Win7SP1x64 filescan |grep "flag"
Dumpfiles
導出內存中緩存的文件
我直接導出上面搜索flag得到的flag.jpeg文件
volatility -f wuliao.data --profile=Win7SP1x64 dumpfiles -Q 0x000000007f142f20 -D ./ -u
Cmdscan/cmdline
提取內存中保留的cmd命令使用情況
volatility -f wuliao.data --profile=Win7SP1x64 cmdline
查看截圖
volatility -f wuliao.data --profile=Win7SP1x64 screenshot --dump-dir=./
查看系統用戶名
volatility -f wuliao.data --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
查看網絡連接
volatility -f wuliao.data --profile=Win7SP1x64 netscan
我真是個啥都不會,啥都要學的five啊