1.工具介绍
Volatility 是一款非常流行的开源内存取证分析框架,主要用于从计算机的内存转储(memory dump)中提取关键信息,广泛应用于数字取证、恶意软件分析和系统调试等领域。Volatility 支持多种操作系统的内存映像,包括 Windows、Linux、MacOS 等,并能够提取与操作系统相关的详细信息,如进程、网络连接、文件、注册表、内核模块等。

1.1 Volatility 迭代
-
Volatility 2.0: 初始版本发布于 2011年。Volatility 2 是一款成熟的内存取证工具,支持多个操作系统(Windows、Linux、MacOS)并提供了丰富的插件和功能,成为内存取证领域的标准工具之一。
-
Volatility 2.6:这是 Volatility 2 的最后一个主要版本。发布于 2016年,Volatility 2.6 增强了对 Windows 10 和其他操作系统的支持,并进行了一些性能和稳定性改进。但由于 Python 2 的逐步淘汰,Volatility 2 的开发逐渐放缓,转而聚焦于 Volatility 3 的发展。
-
Volatility 3.0: 第一个 Volatility 3 的版本发布于 2019年10月。Volatility 3 的发布标志着 Volatility 框架的重大重构,采用了 Python 3,完全重写了其代码库,并进行了模块化设计。与 Volatility 2 不同,Volatility 3 引入了更现代化的开发方式,提供了更好的扩展性、更强大的性能和对新操作系统的支持。
-
Volatility 3.x: 随着 Volatility 3 的发展,开发者不断增加新功能,改进性能,并修复了初期版本中的一些问题。每个小版本都专注于增强框架的稳定性和对新平台的支持。例如,Volatility 3.1 及以后的版本增加了对更广泛的操作系统和内存映像格式的支持,并增强了插件系统。
1.1.1 Volatility 2
Volatility 2 支持多个操作系统和平台的内存映像文件,包括 Windows、Linux、MacOS。Volatility 2还 提供了大量的插件来帮助用户分析内存映像。Volatility 2 支持常见的内存映像格式,如 Windows 系统的 .dmp 和 .raw 文件。用户可以通过各种取证工具(如 FTK Imager、WinPMEM 等)获取内存转储并进行分析。
1.1.2 Volatility 3
Volatility 3 是 Volatility 框架的第三代版本,专注于改进和增强内存取证和分析功能。与 Volatility 2.x 相比,Volatility 3 引入了很多架构上的变化和改进,目的是使其更具现代性、更强大且更易于扩展。Volatility 3 的设计更加模块化,并支持更广泛的操作系统和架构,同时通过 Python 3 提供更好的兼容性和性能。
1.1.3 Volatility 2.6 和 Volatility 3 区别
| 特性 | Volatility 2 | Volatility 3 |
|---|---|---|
| Python版本 | 基于 Python 2 | 完全基于 Python 3 |
| 架构 | 单体架构,功能整合在一个文件中 | 模块化架构,支持插件和更强的扩展性 |
| 操作系统支持 | 支持 Windows、Linux、Mac OS,较少支持其他系统 | 支持 Windows、Linux、macOS,进一步支持 Android、ELF 等 |
| 性能 | 在处理大规模内存映像时性能较低 | 优化了性能,特别是在处理大规模内存转储时表现更好 |
| 插件和命令 | 插件较少,命令行接口较为简单 | 插件系统增强,命令行接口更简洁和一致,插件更多 |
| 内存映像支持 | 支持传统的内存映像格式,如 Windows 的 .dmp 和 .raw | 增加了对更多内存映像格式的支持,包括 ELF 格式等 |
| 符号解析 | 符号解析较为简单,且处理复杂的内存结构时可能出现困难 | 改进了符号解析和内存结构解析的准确性和效率 |
| 开发和扩展 | 扩展性较差,功能相对固定 | 模块化设计,易于扩展和开发新插件 |
| 代码结构 | 较为复杂且过时,维护性差 | 代码库进行了重构,采用了更加现代的编程模式 |
| 社区支持 | 较为广泛,但已进入维护阶段 | 更积极的发展阶段,社区支持逐渐增长 |
2.下载与安装
2.1 Volatility 2
MD5:
c6ff76f3cc08a739302ee372d6a2a62d volatility_2.6_lin64_standalone.zip
1de73681ec0e883af852755141eab909 volatility_2.6_mac64_standalone.zip
07b3292dc814ded7c00322a7525d73db volatility_2.6_win64_standalone.zip
1249996d1887578365ee74ec3763cc13 volatility-2.6.zip
SHA256:
dc375a0f6909cb93ac17a10e28a0963fcd2decfc3c4291aadb7e5e0cbe28874a volatility_2.6_lin64_standalone.zip
23bab41b110a1470b9ca71e945450a0a8bcb2edfc8160643b38ab2a8c1d4bd8f volatility_2.6_mac64_standalone.zip
bb021f3b569bf8ee4a408b2e07b0662699894ff7eecd4473badf0ef0c58f2fce volatility_2.6_win64_standalone.zip
5b73050d72bf94870ffce22843f03d4b0b7764011dec29ef1a0a5b1b46cf9295 volatility-2.6.zip
Volatility 2项目地址:https://github.com/volatilityfoundation/volatility
Volatility 2 整合在一个文件中可在github直接下载使用

2.2 Volatility 3
MD5:
f326e5a1352e4e63527212f9278b85d5 volatility3-2.11.0.zip
Volatility 3项目地址:https://github.com/volatilityfoundation/volatility3
Volatility 3需要python版本 >= 3.7.3
下载并解压
unzip volatility3-2.8.0.zip

安装 Volatility 3 所需的所有依赖库
pip install -r requirements.txt

在本地安装 Volatility 3
python setup.py install
此命令会将 Volatility 3 安装到你的 Python 环境中。

验证安装
vol -h

3.命令说明
-h, --help 列出所有可用选项及其默认值
默认值可以在配置文件中设置
(/etc/volatilityrc)
--conf-file=/home/kali/.volatilityrc
基于用户的配置文件
-d, --debug 调试Volatility
--plugins=PLUGINS 要使用的其他插件目录(冒号分隔)
--info 打印所有注册对象的信息
--cache-directory=/home/kali/.cache/volatility
存放缓存文件的目录
--cache 使用缓存
--tz=TZ 设置 (Olson) 时区以使用 pytz(如果已安装)或 tzset 显示时间戳
-f FILENAME, --filename=FILENAME
打开图像时使用的文件名
--profile=WinXPSP2x86
要加载的配置文件的名称(使用 --info 查看支持的配置文件列表)
-l LOCATION, --location=LOCATION
从中加载地址空间的 URN 位置
-w, --write 启用写支持
--dtb=DTB DTB 地址
--shift=SHIFT Mac KASLR 移位地址
--output=text 以这种格式输出(支持特定于模块,请参阅下面的模块输出选项)
--output-file=OUTPUT_FILE
在此文件中写入输出
-v, --verbose 详细信息
-g KDBG, --kdbg=KDBG 指定一个 KDBG 虚拟地址(注意:对于 64 位 Windows 8 及更高版本,这是 KdCopyDataBlock 的地址)
--force 强制使用可疑配置文件
-k KPCR, --kpcr=KPCR 指定特定的 KPCR 地址
--cookie=COOKIE 指定 nt!ObHeaderCookie 的地址(仅适用于 Windows 10)
3.1 Volatility 2
amcache 查看AmCache应用程序痕迹信息
apihooks 检测内核及进程的内存空间中的API hook
atoms 列出会话及窗口站atom表
atomscan Atom表的池扫描(Pool scanner)
auditpol 列出注册表HKLMSECURITYPolicyPolAdtEv的审计策略信息
bigpools 使用BigPagePoolScanner转储大分页池(big page pools)
bioskbd 从实时模式内存中读取键盘缓冲数据(早期电脑可以读取出BIOS开机密码)
cachedump 获取内存中缓存的域帐号的密码哈希
callbacks 打印全系统通知例程
clipboard 提取Windows剪贴板中的内容

最低0.47元/天 解锁文章
585

被折叠的 条评论
为什么被折叠?



