volatility使用

740 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第27天,点击查看活动详情

安装

linux

git clone https://github.com/volatilityfoundation/volatility.git

安装setup插件

python setup.py build

python setup.py install

报错

安装setup-tools

wget https://pypi.python.org/packages/45/29/8814bf414e7cd1031e1a3c8a4169218376e284ea2553cc0822a6ea1c2d78/setuptools-36.6.0.zip

 

unzip setuptools-36.6.0.zip
cd setuptools-36.6.0
sudo python setup.py install

安装python-dev

sudo apt-get install python-dev

安装pycrypto

pip install pycrypto

安装distorm3

pip install distorm3

windows

 www.volatilityfoundation.org/releases

volatility命令

查看可能的系统版

volatility -f <镜像文件> imageinfo

vol.py -f 1.vmem imageinfo

查看进程信息

vol.py -f <镜像文件> --profile=版本号 pslist

ol.py -f 1.vmem --profile=Win2003SP1x86 pslist

查看具体进程

vol.py -f <镜像文件> --profile=版本号 pstree | egrep '(a.exe|b.exe)' 以树的形式列出

以查看lsass.exe和winlogon.exe为例

vol.py -f 1.vmem --profile=Win2003SP1x86 pstree | egrep '(lsass.exe|winlogon.exe)'

查看系统插件

检查链接插件:vol.py -f <镜像文件> --profile=版本号 connections

检查端口插件:vol.py -f <镜像文件> --profile=版本号 sockets

vol.py -f 1.vmem --profile=Win2003SP1x86 sockets

检测DLL

vol.py -f <镜像文件> --profile=版本号 -p[pid] dlllist

vol.py -f <镜像文件> --profile=版本号  -p[pid] ldrmodules -v 显示包括隐藏dll的具体信息

vol.py -f 1.vmem --profile=Win2003SP1x86 -p 540 dlllist

查看可执行代码或DLL

vol.py -f <镜像文件> --profile=版本号 -p[pid] malfind

vol.py -f 1.vmem --profile=Win2003SP1x86 -p 540 mlfind

导出程序

vol.py -f <镜像文件> --profile=版本号 prodump -p [pid1,pid2,..pidn] -D [目录]

vol.py -f 1.vmem --profile=Win2003SP1x86 prodump -p 540 -D /root

检查驱动程序

vol.py -f <镜像文件> --profile=版本号 modules

vol.py -f <镜像文件> --profile=版本号 moddump -D [目录] --base [base地址]  #提取驱动程序

vol.py -f 1.vmem --profile=Win2003SP1x86 modules
vol.py -f 1.vmem --profile=Win2003SP1x86 moddump -D root/ --base 0xbaa57000

提取成功

查看开启的windows服务

vol.py -f <镜像文件> --profile=版本号 svcscan

查看注册表项

vol.py -f <镜像文件> --profile=版本号 printkey

vol.py -f 1.vmem --profile=Win2003SP1x86 printkey

列出SAM表中的用户

vol.py -f <镜像文件> --profile=版本号 printkey -K "SAM\Domains\Account\Users\Names"

vol.py -f 1.vmem --profile=Win2003SP1x86 printkey -K "SAM\Domains\Account\Users\Names"

常用命令

volatility -f file imageinfo 查看可能的系统版本

volatility --profile=系统版本 -f file pslist 查看当前进程信息

volatility --profile=系统版本 -f file memdump -p PID -D ./ 提取可疑进程

volatility -f file --profile=系统版本 printkey -K "SAM\Domains\Account\Users\Names" 获取SAM表(安全帐号管理器)中的用户

volatility -f file --profile=系统版本 hivelist 列举缓存在内存的注册表

volatility -f file --profile=系统版本 hashdump 获取内存中的系统密码

volatility -f name --profile=系统版本 hashdump -y (注册表 system 的 virtual 地 址 )-s (SAM 的 virtual 地址) 指定获取内存中的系统密码

volatility -f file --profile=系统版本 filescan 扫描内存中的文件

volatility -f file --profile=系统版本 dumpfiles -Q (Offset(P)--dumpdir=. 提取指定文件

volatility notepad -f file pslist --profile=系统版本 不可打印中

隐藏的秘密

查看可能的系统版本

扫描内存的文件发现file.txt

提取用它的offset(p)→0x000000000412cde0,并用命令提取指定文件

提取后提示md5(用户名:密码),但不知道是那个用户

导出注册表内容

 

 

查看一下用户信息,用户信息很多无法逐一查找

volatility.exe -f 隐藏的秘密.vmem --profile=Win2003SP1x86 pslist

查看一下regedit的pid号

将注册表进程dump下来

strings -e l 804.dmp | grep SAM

查看一下0000493的值,发现FHREhpe$用户

找到该用户

md5解密

再将用户名密码进行加密后得到flag