最近簡單的瞭解了一下Volatility這個開源的取證框架,這個框架可以對導出的內存鏡像鏡像分析,能過經過獲取內核的數據結構,使用插件獲取內存的詳細狀況和運行狀態,同時能夠直接dump系統文件,屏幕截圖,查看進程等等等等~~~python
安裝分爲三步走:linux
git
安裝必要的python依賴文件github
安裝本體json
你能夠在Release中找到對應你係統(Mac,Win,Linux)的源代碼,固然也能夠經過github去獲取源碼:windows
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。
kali自帶有volatility,因而我直接在kali山進行操做
我這裏也直接用我這兩天看的一道CTF的題目做爲實例來操做吧
這個命令能夠用來獲取內存鏡像的摘要信息,好比系統版本,硬件構架等
volatility -f wuliao.data imageinfo
經過Suggested Profile(s) 咱們能夠知道這個鏡像文件的版本最有可能事Win7SP1x64
可使用--info參數來查看Volatility已經添加的profile和插件信息
這個插件能夠掃描文件的profile的值,一般掃描結果有多個,只有一個結果是徹底正確的,kdbgscan和imageinfo都只適用於windows的鏡像
volatility -f wuliao.data --profile=Win7SPx64 pslist
pslist能夠直接列出運行的進程,若是進程已經結束,會在Exit列顯示日期和時間,代表進程已經結束
列舉緩存在內存中的註冊表
volatility -f wuliao.data --profile=Win7SP1x64 hivelist
掃描內存中的文件
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"
導出內存中緩存的文件
我直接導出上面搜索flag獲得的flag.jpeg文件
volatility -f wuliao.data --profile=Win7SP1x64 dumpfiles -Q 0x000000007f142f20 -D ./ -u
提取內存中保留的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