「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图

引言

在数字取证的世界中,深入挖掘内存是解锁关键证据的一种重要方式。Volatility 是一款强大的开源工具,它能够帮助我们在 Windows、Linux、Mac 和 Android 等多种操作系统上进行内存取证分析。今天,我将向大家介绍 Volatility 的功能和如何安装以及使用它。

「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图1

Volatility 是用 Python 编写的,支持在 Python 2 和 Python 3 环境下运行,这使得它具有极高的灵活性和可扩展性。无论你是初学者还是专业人士,都能够通过 Volatility 来探索内存中的秘密。

下载地址

工具下载地址:https://github.com/volatilityfoundation

安装方式

目前作者已公布了两个版本的 VolatilityVolatility2 是基于 py2 环境,Volatility3 是基于 py3 环境,接下来小编将带领大家分别对这两个环境进行安装。

(1)Volatility3 环境的安装

首先请确保系统中已安装 python3 环境,安装 pycrypto 库函数

「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图2

进入到 Volatility 目录,执行如下指令,即可将 Volatility 成功安装

>>> sudo python3 setup.py install
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图3

此时,就成功安装了 Volatility3 工具,可以执行如下指令查看是否安装是成功

>>> sudo python3 vol.py -h
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图4

(2)Volatility2 环境的安装

首先请确保系统中已安装 python2 环境,安装 pycrypto 库函数

首先通过网站下载 pycrypto 安装包:https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/

「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图5

注意:如果遇到报错可尝试执行如下命令,解决问题:

>>> sudo apt-get install python-dev
>>> sudo pip install setuptools
# 进入到Volatility目录,执行如下指令,即可将Volatility成功安装
>>> sudo python2 setup.py install
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图6

此时,就成功安装了 Volatility2 工具,可以执行如下指令查看是否安装是成功

>>> sudo python2 vol.py -h

Volatility 使用方式

  Volatility2 的使用方法

(1) 获取系统基本信息

>>>python2 vol.py -f ../Target.vmem imageinfo
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图7

(2) 列出进程信息

>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 pslist
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图8

(3) 提取某进程文件内容

>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 memdump -p 516 -D /
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图9

(4) 查看文件目录

>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 filescan
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图10

(5) 提取某文件内容

>>>python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007fe72430 --dump-dir=./
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图11

(6) 调用 mimikatz 抓取系统口令

>>> python2 vol.py -f ../Target.vmem --profile=Win7SP1x64 mimikatz
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图12

Volatility3 的使用方法

(1) 获取系统基本信息

>>>sudo python3 vol.py -f ../Target.vmem windows.info
「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图13

(2) 列出进程信息

「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图14

(3) 提取某进程文件内容

>>>sudo python3 vol.py -f /opt/forensic-analysis/Target.vmem windows.pslist --pid 516 --dump

(4) 查看文件目录

「工具分享」深入了解Volatility取证分析工具 | 发掘内存秘密插图15

常用模块

插件名称功能
amcache查看AmCache应用程序痕迹信息
apihooks检测内核及进程的内存空间中的API hook
atoms列出会话及窗口站atom表
atomscanAtom表的池扫描(Pool scanner)
auditpol列出注册表HKLMSECURITYPolicyPolAdtEv的审计策略信息
bigpools使用BigPagePoolScanner转储大分页池(big page pools)
bioskbd从实时模式内存中读取键盘缓冲数据(早期电脑可以读取出BIOS开机密码)
cachedump获取内存中缓存的域帐号的密码哈希
callbacks打印全系统通知例程
clipboard提取Windows剪贴板中的内容
cmdline显示进程命令行参数
cmdscan提取执行的命令行历史记录(扫描_COMMAND_HISTORY信息)
connections打印系统打开的网络连接(仅支持Windows XP 和2003)
connscan打印TCP连接信息
consoles提取执行的命令行历史记录(扫描_CONSOLE_INFORMATION信息)
crashinfo提取崩溃转储信息
deskscantagDESKTOP池扫描(Poolscaner)
devicetree显示设备树信息
dlldump从进程地址空间转储动态链接库
dlllist打印每个进程加载的动态链接库列表
driverirpIRP hook驱动检测
drivermodule关联驱动对象至内核模块
driverscan驱动对象池扫描
dumpcerts提取RAS私钥及SSL公钥
dumpfiles提取内存中映射或缓存的文件
dumpregistry转储内存中注册表信息至磁盘
editbox查看Edit编辑控件信息 (Listbox正在实验中)
envars显示进程的环境变量
eventhooks打印Windows事件hook详细信息
evtlogs提取Windows事件日志(仅支持XP/2003)
filescan提取文件对象(file objects)池信息
gahti转储用户句柄(handle)类型信息
gditimers打印已安装的GDI计时器(timers)及回调(callbacks)
gdt显示全局描述符表(Global Deor Table)
getservicesids获取注册表中的服务名称并返回SID信息
getsids打印每个进程的SID信息
handles打印每个进程打开的句柄的列表
hashdump转储内存中的Windows帐户密码哈希(LM/NTLM)
hibinfo转储休眠文件信息
hivedump打印注册表配置单元信息
hivelist打印注册表配置单元列表
hivescan注册表配置单元池扫描
hpakextract从HPAK文件(Fast Dump格式)提取物理内存数据
hpakinfo查看HPAK文件属性及相关信息
idt显示中断描述符表(Interrupt Deor Table)
iehistory重建IE缓存及访问历史记录
imagecopy将物理地址空间导出原生DD镜像文件
imageinfo查看/识别镜像信息
impscan扫描对导入函数的调用
joblinks打印进程任务链接信息
kdbgscan搜索和转储潜在KDBG值
kpcrscan搜索和转储潜在KPCR值
ldrmodules检测未链接的动态链接DLL
lsadump从注册表中提取LSA密钥信息(已解密)
machoinfo转储Mach-O 文件格式信息
malfind查找隐藏的和插入的代码
mbrparser扫描并解析潜在的主引导记录(MBR)
memdump转储进程的可寻址内存
memmap打印内存映射
messagehooks桌面和窗口消息钩子的线程列表
mftparser扫描并解析潜在的MFT条目
moddump转储内核驱动程序到可执行文件的示例
modscan内核模块池扫描
modules打印加载模块的列表
multiscan批量扫描各种对象
mutantscan对互斥对象池扫描
notepad查看记事本当前显示的文本
objtypescan扫描窗口对象类型对象
patcher基于页面扫描的补丁程序内存
poolpeek可配置的池扫描器插件
printkey打印注册表项及其子项和值
privs显示进程权限
procdump进程转储到一个可执行文件示例
pslist按照EPROCESS列表打印所有正在运行的进程
psscan进程对象池扫描
pstree以树型方式打印进程列表
psxview查找带有隐藏进程的所有进程列表
qemuinfo转储Qemu 信息
raw2dmp将物理内存原生数据转换为windbg崩溃转储格式
screenshot基于GDI Windows的虚拟屏幕截图保存
servicediffWindows服务列表(ala Plugx)
sessions_MM_SESSION_SPACE的详细信息列表(用户登录会话)
shellbags打印Shellbags信息
shimcache解析应用程序兼容性Shim缓存注册表项
shutdowntime从内存中的注册表信息获取机器关机时间
sockets打印已打开套接字列表
sockscanTCP套接字对象池扫描
ssdt显示SSDT条目
strings物理到虚拟地址的偏移匹配(需要一些时间,带详细信息)
svcscanWindows服务列表扫描
symlinkscan符号链接对象池扫描
thrdscan线程对象池扫描
threads调查_ETHREAD 和_KTHREADs
timeliner创建内存中的各种痕迹信息的时间线
timers打印内核计时器及关联模块的DPC
truecryptmaster恢复TrueCrypt 7.1a主密钥
truecryptpassphrase查找并提取TrueCrypt密码
truecryptsummaryTrueCrypt摘要信息
unloadedmodules打印卸载的模块信息列表
userassist打印注册表中UserAssist相关信息
userhandles转储用户句柄表
vaddump转储VAD数据为文件
vadinfo转储VAD信息
vadtree以树形方式显示VAD树信息
vadwalk显示遍历VAD树
vboxinfo转储Virtualbox信息(虚拟机)
verinfo打印PE镜像中的版本信息
vmwareinfo转储VMware VMSS/VMSN 信息
volshell内存镜像中的shell
windows打印桌面窗口(详细信息)
wintreeZ顺序打印桌面窗口树
wndscan池扫描窗口站
yarascan以Yara签名扫描进程或内核内存
常用模块

常用命令

功能命令行及参数
查看进程列表Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 pslist
查看进程列表(树形)Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 pstree
查看进程列表(psx视图)Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 psxview
查看网络通讯连接Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 netscan
查看加载的动态链接库Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 dlllist
查看SSDT表Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 ssdt
查看UserAssist痕迹Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 userassist
查看ShimCache痕迹Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 shimcache
查看ShellBagsVol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 shellbags
查看服务列表Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 svcscan
查看Windows帐户hashVol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 hashdump
查看最后关机时间Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 shutdowntime
查看IE历史记录Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 iehistory
提取注册表数据Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 dumpregistry
解析MFT记录Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 mftparser
导出MFT记录,恢复文件Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 mftparser –output-file=mftverbose.txt -D mftoutput
获取TrueCrypt密钥信息Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 truecryptmaster
获取TrueCrypt密码信息Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 truecryptpassphras