携手创作,共同成长!这是我参与「掘金日新计划 · 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