Volatility
Volatility官网地址
里面有Windows版本和Linux版本,我用的是Windows。
所以讲的大部分是Windows下的命令。
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| 可以使用 -h 参数获取使用方法和插件介绍,列举几个常用到的命令
imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数
pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以
pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程
psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程
cmdscan:可用于查看终端记录
notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)
filescan:扫描所有的文件列表
linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’
dumpfiles:导出某一文件(指定虚拟地址)
需要指定偏移量 -Q 和输出目录 -D
memdump:提取出指定进程,常用foremost 来分离里面的文件
需要指定进程-p [pid] 和输出目录 -D
editbox:显示有关编辑控件(曾经编辑过的内容)的信息
screenshot:保存基于GDI窗口的伪截屏
clipboard:查看剪贴板信息
iehistory:检索IE浏览器历史记录
systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)
hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)
mftparser:恢复被删除的文件
svcscan:扫描 Windows 的服务
connscan:查看网络连接
envars:查看环境变量
dlllist: 列出某一进程加载的所有dll文件
hivelist: 列出所有的注册表项及其虚拟地址和物理地址
timeliner: 将所有操作系统事件以时间线的方式展开
|
查看用户名密码信息
1
| volatility -f 1.vmem --profile=Win7SP1x64 hashdump
|
查看进程
1
| volatility -f 1.vmem --profile=Win7SP1x64 pslist
|
查看服务
1
| volatility -f 1.vmem --profile=Win7SP1x64 svcscan
|
查看浏览器历史记录
1
| volatility -f 1.vmem --profile=Win7SP1x64 iehistory
|
查看网络连接
1
| volatility -f 1.vmem --profile=Win7SP1x64 netscan
|
查看命令行操作
1
| volatility -f 1.vmem --profile=Win7SP1x64 cmdscan
|
查看文件
1
| volatility -f 1.vmem --profile=Win7SP1x64 filescan
|
查看文件内容
1
| volatility -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0xxxxxxxx -D ./
|
查看当前展示的notepad内容
1
| volatility -f 1.vmem --profile=Win7SP1x64 notepad
|
提取进程
1
| volatility -f 1.vmem --profile=Win7SP1x64 memdump -p xxx --dump-dir=./
|
屏幕截图
1
| volatility -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
|
查看注册表配置单元
1
| volatility -f 1.vmem --profile=Win7SP1x64 hivelist
|
查看注册表键名
1
| volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a001032410
|
查看注册表键值
1
| volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "xxxxxxx"
|
查看运行程序相关的记录,比如最后一次更新时间,运行过的次数等。
1
| volatility -f 1.vmem --profile=Win7SP1x64 userassist
|
最大程序提取信息
1
| volatility -f 1.vmem --profile=Win7SP1x64 timeliner
|
1 2 3 4 5 6 7 8 9
| 大致常用命令 python2 vol.py -f 1.raw imageinfo python2 vol.py -f 1.raw pslist --profile=Win7SP1x64 python2 vol.py -f 1.raw --profile=Win7SP1x64 filescan |grep flag python2 vol.py -f 1.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003da43680 -D ./ python2 vol.py -f 1.raw --profile=Win7SP1x64 editbox python2 vol.py -f 1.raw --profile=Win7SP1x64 hashdump python2 vol.py -f 1.raw --profile=Win7SP1x64 lsadump python2 vol.py -f 1.raw --profile=Win7SP1x64 clipboard
|
Volatility使用
以一道取证题为例
Q:admin密码是什么?
通过imageinfo获取系统信息
1
| volatility_2.6_win64_standalone.exe -f window.vmem imageinfo
|

使用使用hashdump获取sam
1
| volatility_2.6_win64_standalone.exe -f window.vmem --profile=Win7SP1x64 hashdump
|

可以通过john工具来进行爆破,但是好像跑不出来结果。应该是设定了强密码。于是只能使用了lasdump命令来查看
1
| volatility_2.6_win64_standalone.exe -f window.vmem --profile=Win7SP1x64 lsadump
|

Q:ip和主机名是什么
通过netscan可以查询到地址
1
| volatility_2.6_win64_standalone.exe -f window.vmem --profile=Win7SP1x64 netscan tee netscan.txt
|

主机名需要通过查询注册表,先用hivelist
1
| volatility_2.6_win64_standalone.exe -f window.vmem --profile=Win7SP1x64 hivelist tee hivelist.txt
|

1
| volatility -f worldskills3.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a000024010 > system.txt;cat system.txt name
|
通过hivedump查询对应键名volatility -f worldskills3.vmem –profile=Win7SP1x64 hivedump -o 0xfffff8a000024010 > system.txt;cat system.txt|grep name,这个速度比较慢。(不知道什么原因,这个东西出来的很慢,所以用了别人的图片QAQ)

如果知道键名的话,可以直接查询键值(这两段Windows不是太好实现)
1
| volatility -f worldskills3.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName"
|

Q:获取桌面上的 flag.txt
先用filescan扫描文件
1
| volatility -f worldskills3.vmem --profile=Win7SP1x64 filescan grep "flag.txt"
|
接着使用dumpfiles爆破文件内容
1
| volatility -f worldskills3.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007f1b6c10 --dump-dir=./
|