我最近正在学习misc的内存取证和日志分析,volalility是一个常用的内存取证分析工具,接下来我们一起来看看它的几个使用方法和典型CTF赛题
volatility下载地址:https://github.com/volatilityfoundation/volatility
本文使用的版本非volatility3版本,而是老版本,需要python2运行
例题:
选自 [陇剑杯 2021]内存分析:
1.网管小王制作了一个虚拟机文件,让您来分析后作答:
虚拟机的密码是_____________。
首先,我们下载附件之后,看到压缩包里有一个vmem格式的文件

Tip:什么是VMEM格式的文件?
VMEM格式的文件通常与虚拟机有关。VMEM文件是VMware虚拟机使用的分页或交换文件,用来备份主内存文件(以.VMX后缀的文件)中的数据,在虚拟机电源被关闭时使用。当虚拟机正在运行而主机的物理内存不足以支持它时,系统会将一部分虚拟机内存数据存储到VMEM文件中。 这个文件通过存储虚拟机的物理RAM内容,可以在虚拟机启动时提供状态恢复功能。如果您需要处理此类文件,通常是因为您正在管理虚拟机或者需要分析虚拟机的运行状态。 在某些情况下,如果虚拟机没有正常关闭,例如突然断电,VMEM文件就可以用来恢复虚拟机运行前的状态。然而,由于这些文件可能非常大,并且包含了大量的数据,所以通常不会被移动或编辑。 正常的虚拟机操作不需要用户直接与VMEM文件交互。
我们这时就需要用到volatility工具分析这个vmem格式的文件,将其拖入kali linux 虚拟机中,我们可以使用
1
| python2 vol.py -f Target.vmem imageinfo
|

来查看Target.vmem文件的镜像信息,这里的-f 指的是 file ,用于指定文件,imageinfo是查看镜像文件的信息,imageinfo在内存取证中一般都是经常使用的

这里的profile给出了一堆操作系统的名称,这是volatility工具预测的该我文件可能的操作系统版本,如果你能确定是哪个就选择哪个,否则可能需要挨个尝试,我们直接选择第一个尝试
我们通过命令
1
| python2 vol.py -f Target.vmem --profile Win7SP1x64 lsadump
|