volatility
簡介:
volatility(挖樓推了推) 是一個開源的框架,能夠對導出的內存鏡像進行分析,能夠通過獲取內核的數據結構,使用插件獲取內存的詳細情況和運行狀態,同時可以直接dump系統文件,屏幕截圖,查看進程。
官網下載地址:https://www.volatilityfoundation.org/26
這個軟件的安裝真的讓我很煩,剛開始在github
上面下載的源文件是需要python2
環境運行,需要安裝pycrypto distorm3
模塊
然后再我python2 -m pip install distorm3
和python2 -m pip install distorm3
均報錯,在windows和Linux中均報錯,
最后在官網竟然有windows
和linux
系統的可執行文件,直接下載就可以執行???????,好的扯淡結束,總之很煩,我很傻
volatility可以直接分析VMware
的暫停文件,后綴名為vmem
imageinfo 獲取內存鏡像的操作系統版本信息
volatility -f 文件名 imageinfo
,這里我得文件名為easy_dump.img
會獲取推薦我們使用的鏡像,一般第一個最為准確,可多次測試來確定最為准確的,這里為Win7SP1x64
pslist 列出內存中的進程
可以列出內存中運行的進程的pid,ppid等信息
volatility -f easy_dump.img --profile=Win7SP1x64 pslist
類似的也有dlllist,可以看到進程的位置
netscan 查看網絡連接狀態
可以通過這個獲取本機的IP地址,類似於netstat -an
volatility -f easy_dump.img --profile=Win7SP1x64 netscan
hivelist 列出緩存在內存中的注冊表
volatility -f easy_dump.img --profile=Win7SP1x64 hivelist
filescan 掃描內存中的文件
volatility -f easy_dump.img --profile=Win7SP1x64 filescan
,會查找所有文件
由於列出文件較多,可以使用grep
使用
volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep "txt\|jpg\|png"
如果是在windows
中運行,配合findstr
使用
在CTF中,我們常搜索flag
volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep flag
dumpfiles 導出內存中的文件
在我們filescan
后,會給出文件在內存中的代號,指定代號就可以將文件導出
volatility -f easy_dump.img --profile=Win7SP1x64 dumpfiles -Q 0x000000002408c460 -D ./ -u
-Q
:指定文件在內存中的地址。-D
:指定文件導出的地址。-u
:指定原文件名導出
這雖然指定原文件名導出,但是並沒有原文件名導出,不知道為什么
memdump 導出指定的進程
在我們pslist
會后,會給出進程的PID
,只需要指定PID
就可以將進程導出
例如這里notepad.exe
的進程為2616
/volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 2616 -D ./
導出的文件名進程的PID
,后綴名為dmp
可以使用strings -e l 2616.dmp | grep flag
,篩選其中的flag
-e
為選擇字符的大小,l
為32bit
為一個字符
cmdscan 歷史命令
掃描命令歷史獲取歷史命令
類似的也有cmdlist
,相對於cmdscan像是的較多一點
screenshot 獲取截圖
從內存中獲取截圖,這截圖怎么說呢,黑白的,貌似沒什么用,但萬一flag
就藏在其中呢
pringkey列出SAM表用戶,大概就是查看用戶名
volatility -f easy_dump.img --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
其實使用hashdump
就可以獲取用戶名,這個也可以試一試
printkey獲取主機名
volatility -f easy_dump.img --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
iehistory 獲取系統瀏覽器歷史
可以看到用戶通過系統瀏覽器
在某個時間線干了什么
timneliner 列舉時間線
可以獲取在某個時間線做了寫什么
verinfo 列出PE,程序版本信息
editbox 查看內存中記事本的內容
自動找到記事本記得進程號,進行內容提取