这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管服务提供商中运行的命令波动
程序:
您的姓名
挥发性 - 先进的内存取证框架
概要
挥发性 [选项]
挥发性 -f [图片] - 轮廓=[个人资料] [插入]
商品描述
波动率框架是一个完全开放的工具集合,用于提取
来自易失性存储器 (RAM) 样本的数字伪影。 它在取证分析中很有用。
提取技术的执行完全独立于系统
调查但提供了对系统运行时状态的前所未有的可见性。
Volatility 支持多个版本的 MS Windows、Linux 和 MAC OSX:
微软视窗:
· 32 位 Windows XP Service Pack 2 和 3
· 32 位 Windows 2003 服务器服务包 0、1、2
· 32 位 Windows Vista Service Pack 0、1、2
· 32 位 Windows 2008 Server Service Pack 1、2(没有 SP0)
· 32 位 Windows 7 Service Pack 0、1
· 32 位 Windows 8、8.1 和 8.1 更新 1
· 32 位 Windows 10(初步支持)
· 64 位 Windows XP Service Pack 1 和 2(没有 SP0)
· 64 位 Windows 2003 Server Service Pack 1 和 2(没有 SP0)
· 64 位 Windows Vista Service Pack 0、1、2
· 64 位 Windows 2008 Server Service Pack 1 和 2(没有 SP0)
· 64 位 Windows 2008 R2 Server Service Pack 0 和 1
· 64 位 Windows 7 Service Pack 0 和 1
· 64 位 Windows 8、8.1 和 8.1 更新 1
· 64 位 Windows Server 2012 和 2012 R2
· 64 位 Windows 10(初步支持)
Linux的:
· 32 位 Linux 内核 2.6.11 到 4.2.3
· 64 位 Linux 内核 2.6.11 到 4.2.3
· OpenSuSE、Ubuntu、Debian、CentOS、Fedora、Mandriva等
Mac OSX:
· 32 位 10.5.x Leopard(唯一的 64 位 10.5 是服务器,不支持)
· 32 位 10.6.x 雪豹
· 64 位 10.6.x 雪豹
· 32 位 10.7.x Lion
· 64 位 10.7.x Lion
· 64 位 10.8.x Mountain Lion(没有 32 位版本)
· 64 位 10.9.x Mavericks(没有 32 位版本)
· 64 位 10.10.x Yosemite(没有 32 位版本)
· 64 位 10.11.x El Capitan(没有 32 位版本)
支持的内存格式有:
· 原始线性样本(dd)
· 休眠文件
· 崩溃转储文件
· VirtualBox ELF64核心转储
· VMware 保存状态和快照文件
· EWF 格式 (E01)
· LiME(Linux 内存提取器)格式
· Mach-o 文件格式
· QEMU 虚拟机转储
·火线
· HPAK(FDPro)
支持的地址空间(RAM 类型)是:
· AMD64PagedMemory - 标准的 AMD 64 位地址空间
· ArmAddressSpace - ARM 处理器的地址空间
· FileAddressSpace - 这是一个直接文件 AS
· HPAKAddressSpace - 该AS支持HPAK格式
· IA32PagedMemoryPae - 此类实现 IA-32 PAE 分页地址空间。
它负责
· IA32PagedMemory - 标准 IA-32 分页地址空间
· LimeAddressSpace - Lime 的地址空间
· MachOAddressSpace - mach-o 文件的地址空间以支持 atc-ny 内存
读者
· OSXPmemELF - 该AS支持VirtualBox ELF64核心转储格式
· QemuCoreDumpElf - 该AS支持Qemu ELF32和ELF64核心转储格式
· VirtualBoxCoreDumpElf64 - 该AS支持VirtualBox ELF64核心转储格式
· VMWareAddressSpace - 该AS支持VMware快照(VMSS)和保存状态
(VMSS) 文件
· VMWareMetaAddressSpace - 该AS支持VMSN/VMSS的VMEM格式
元数据
· WindowsCrashDumpSpace32 - 该AS支持windows Crash Dump格式
· WindowsCrashDumpSpace64BitMap - 该AS支持Windows BitMap Crash Dump
格式
· WindowsCrashDumpSpace64 - 该AS支持windows Crash Dump格式
· WindowsHiberFileSpace32 - 这是一个用于 Windows 的休眠地址空间
休眠文件
有用于测试的示例内存图像
https://github.com/volatilityfoundation/挥发性/wiki/内存样本。
配置
-H, - 帮帮我
列出所有可用选项及其默认值。 默认值可以设置在
配置文件 (/etc/volatilityrc)。
--conf-文件=/root/.volatilityrc
基于用户的配置文件。
-d, -调试
调试波动性。
--plugins=插件
额外 插入 要使用的目录(冒号分隔)。
- 信息 打印有关所有注册对象的信息。
--cache-directory=/root/.cache/波动性
存储缓存文件的目录。
--缓存
使用缓存。
--tz=TZ
使用 pytz(如果已安装)或 tzset 设置显示时间戳的时区
-f 文档名称, --文件名=文件名
打开文件时使用的文件名 图片.
--profile=WinXPSP2x86
要加载的配置文件的名称(使用 - 信息 查看支持的配置文件列表)。
-l 地点, --location=位置
从中加载地址空间的 URN 位置。
-w, - 写
启用写入支持。
--dtb=DTB
DTB 地址。
--shift=移位
Mac KASLR 移位地址。
--输出=文本
以这种格式输出。
--output-file=输出文件
在此文件中写入输出。
-v, --详细
详细信息。
-g 金宝博, --kdbg=KDBG
指定特定的 KDBG 虚拟地址。 对于 64 位 Windows 8 及更高版本,这是
KdCopyDataBlock 的地址。
- 力量
强制使用可疑配置文件。
-k 聚合酶链反应, --kpcr=KPCR
指定特定的 KPCR 地址。
--cookie=饼干
指定 nt!ObHeaderCookie 的地址(仅对 Windows 10 有效)。
PLUGINS AND PROFILES
支持的 插入 如果使用命令'$,则可以查看命令和配置文件
挥发性 - 信息'。 请注意,Linux 和 MAC OSX 允许的插件将具有“linux_”
和 'mac_' 前缀。 没有这些前缀的插件是为 MS Windows 设计的。
配置文件是 Volatility 用来理解操作系统的地图。 允许的 MS
Windows 配置文件由 Volatility 提供。
您必须为 Linux 和 MAC OSX 创建自己的配置文件。 为此,在 Debian 系统上,阅读
README.Debian 文件由 挥发性-工具包。
在 MS Windows 上,要确定操作系统类型,您可以使用:
$波动率 -f 图像信息
or
$波动率 -f kdbgscan
环境 变数
在 GNU/Linux 或 OS X 系统上,可以设置这些变量:
· VOLATILITY_PROFILE - 指定要用作默认配置文件,使
不必要的'- 轮廓' 选项.
· VOLATILITY_LOCATION - 指定一个路径 图片. 所以,波动率命令
不需要通过 ' 的文件名-f' 选项.
· VOLATILITY_KDBG - 指定一个 KDBG 地址。 查看额外程序了解更多
细节。
其他 插入 可以以这种方式使用标志,例如 KPCR、DTB 或 PLUGINS。 什么时候
导出变量,只需在标志名称前添加 VOLATILITY_ 前缀(例如
VOLATILITY_KPCR)。 否则,将标志名称添加到
配置文件。
如果路径名称中包含一个或多个空格,则应将空格替换为 %20
而是(例如 LOCATION=file:///tmp/my%20image.img)。
示例:
$ 出口 VOLATILITY_PROFILE=Win7SP0x86
$ export VOLATILITY_LOCATION=文件:///tmp/myimage.img
$出口VOLATILITY_KDBG=0x82944c28
配置 FILES
配置文件通常是当前目录中的“volatilityrc”或
'~/.volatilityrc' 在用户的主目录中,或在用户指定的路径中,使用 --conf-
文件 选项. 文件内容示例如下所示:
[默认]
配置文件=Win7SP0x86
位置=文件:///tmp/myimage.img
KDBG=0x82944c28
其他 插入 可以以这种方式使用标志,例如 KPCR、DTB 或 PLUGINS。 什么时候
导出变量,只需在标志名称前添加 VOLATILITY_ 前缀(例如
VOLATILITY_KPCR)。 否则,将标志名称添加到
配置文件。
如果路径名称中包含一个或多个空格,则应将空格替换为 %20
而是(例如 LOCATION=file:///tmp/my%20image.img)。
额外服务 程序
设置时区
从内存中提取的时间戳可以是系统本地时间,也可以是世界时
坐标 (UTC)。 如果它们在 UTC 中,则可以指示波动率在一段时间内显示它们
分析师选择的区域。 要选择时区,请使用标准时区之一
名称(例如 America/Sao_Paulo、Europe/London、US/Eastern 或大多数 Olson 时区)
--tz=TIMEZONE 标志。
如果已安装,Volatility 会尝试使用 pytz,否则使用 tzset。
请注意,指定时区不会影响系统本地时间的显示方式。 如果
您确定了一个您知道是基于 UTC 的时间,请将其作为问题提交到问题跟踪器中。
默认情况下,_EPROCESS CreateTime 和 ExitTime 时间戳采用 UTC。
设置 DTB
DTB(目录表库)是 Volatility 用来将虚拟地址转换为物理地址的
地址。 默认情况下,使用内核 DTB(来自空闲/系统进程)。 如果你想使用一个
访问数据时不同进程的DTB,将地址提供给--dtb=ADDRESS。
设置 KDBG 地址(这是仅适用于 Windows 的 选项)
使用硬编码签名“KDBG”和“_KDDEBUGGER_DATA64”结构的波动率扫描
一系列健全性检查。 这些签名对于操作系统的运行并不重要
正确地,因此恶意软件可以覆盖它们以试图抛弃依赖于
签名。 此外,在某些情况下,可能会有多个“_KDDEBUGGER_DATA64”(对于
例如,如果您应用主要的操作系统更新并且不重新启动),这可能会导致混淆并导致
不正确的过程和模块列表,以及其他问题。 如果你知道地址
添加'_KDDEBUGGER_DATA64',您可以使用--kdbg=ADDRESS 指定它,这会覆盖自动
扫描。 有关更多信息,请参阅 kdbgscan 插件。
设置 KPCR 地址(这是一个仅限 Windows 的 选项)
系统上的每个 CPU 都有一个 KPCR(内核处理器控制区域)。 一些波动
插件显示每个处理器的信息。 因此,如果要显示特定 CPU 的数据,对于
例如 CPU 3 而不是 CPU 1,您可以使用 --kpcr=ADDRESS 传递该 CPU 的 KPCR 的地址。
要定位所有 CPU 的 KPCR,请参阅 kpcrscan 插件。 另请注意,从 Volatility 2.2 开始,
许多插件如 idt 和 gdt 会自动遍历 KPCR 列表。
启用写支持
应谨慎使用波动率中的写入支持。 因此,要实际启用它,您必须
不仅在命令行上输入 --write ,而且你必须输入一个“密码”来回答一个问题
你会被提示。 在大多数情况下,您不会想要使用写支持,因为它可能导致
内存转储中的数据损坏或修改。 但是,存在特殊情况使这
功能真的很有趣。 例如,您可以通过以下方式清除某些恶意软件的活动系统
通过火线写入 RAM,或者您可以通过在内存中修补字节来闯入锁定的工作站
winlogon DLL。
指定附加 插入 目录
Volatility 的插件架构可以一次从多个目录加载插件文件。 在里面
Volatility 源代码,大部分插件都位于 Volatility/plugins 中。 然而,还有一个
目录 (volatility/contrib) 为第三方开发者的贡献保留,或
默认情况下根本不启用的弱支持插件。 要访问这些插件,您只需
在命令行输入 --plugins=contrib/plugins 。 它还使您能够创建一个单独的目录
您可以管理自己的插件,而无需在核心中添加/删除/修改文件
波动率目录。
笔记:
* 在 Debian 系统上,contrib/plugins 目录位于 /usr/share/volatility/contrib/plugins。
* 只要有__init__.py文件(可以为空)也会遍历子目录
在他们里面。
* --plugins 的参数也可以是包含插件的 zip 文件,例如
作为 --plugins=myplugins.zip。 由于插件的加载方式,外部插件目录
或 zip 文件必须在任何特定于插件的参数之前指定(包括
插入)。 例子:
$ 波动性 --plugins=contrib/plugins -f XPSP3x86.vmem 示例
选择输出格式
默认情况下,插件使用文本渲染器到标准输出。 如果你想重定向到一个文件,你
当然可以使用控制台的重定向(即> out.txt)或者您可以使用--output-file=out.txt。
您还可以选择 --output=FORMAT 的原因是允许插件也将输出呈现为 HTML,
JSON、SQL 或您选择的任何内容。 但是,没有具有这些替代输出格式的插件
预先配置好使用,所以你需要添加一个名为render_html、render_json、render_sql的函数,
在使用 --output=HTML 之前分别到每个插件。
插件特定选项
许多插件接受自己的参数,这些参数与全局选项无关。 要查看
可用选项列表,在命令行中输入插件名称和 -h/--help。
$波动性dlllist -h
调试模式
如果在 Volatility 中没有以预期的方式发生某些事情,请尝试使用 -d/--debug 运行该命令。
这将使调试消息打印到标准错误。 到更多调试级别,如使用
pdb 调试器),将 -d -d -d 添加到命令中。
使用波动率作为库
尽管可以将 Volatility 用作库,(有计划在
未来)。 目前,要从 python 脚本导入波动率,可以使用以下示例代码:
$蟒蛇
>>> 导入波动率.conf 作为 conf
>>> 导入volatile.registry 作为registry
>>> registry.PluginImporter()
>>> config = conf.ConfObject()
>>> 导入波动性.commands 作为命令
>>> 导入volatile.addrspace 作为addrspace
>>> registry.register_global_options(config, commands.Command)
>>> registry.register_global_options(config, addrspace.BaseAddressSpace)
>>> config.parse_options()
>>> config.PROFILE="WinXPSP2x86"
>>> config.LOCATION = "file:///media/memory/private/image.dmp"
>>> 将volatile.plugins.taskmods 导入为taskmods
>>> p = taskmods.PSList(config)
>>> 用于 p.calculate() 中的进程:
...印刷过程
示例
要查看所有可用的插件、配置文件、扫描仪检查和地址空间:
$波动率--信息
列出在 MS Windows 8 SP0 中找到的所有活动进程 图片:
$波动率 -f win8.raw --profile=Win8SP0x86 pslist
列出在 MS Windows 8 SP0 中找到的所有活动进程 图片,使用时区:
$波动率 -f win8.raw --profile=Win8SP0x86 pslist --tz=America/Sao_Paulo
显示来自 Linux 3.2.63 的内核缓冲区 图片:
$波动率 -f mem.dd --profile=Linux_3_2_63_x64 linux_dmesg
附注
此联机帮助页基于一些测试和一些关于波动率的官方文档。 为了
其他信息和教程,请参阅:
· http://www.volatilityfoundation.org
· https://github.com/volatilityfoundation/挥发性/维基
使用 onworks.net 服务在线使用波动率