前言

最近在准备信息安全与评估比赛,在第二阶段需要做内存取证相关的赛题,比赛提供的是 volatility 软件作为内存镜像的取证工具。

volatility 官网的 Linux 可执行文件对第三方插件和内置插件 iehistory 还是很不友好的。

于是建议安装 py 版本的 volatility,但是比赛提供的是上方版本。不过我们学习的话,还是 py 版本比较好。

环境准备

配置环境

  • Kali Linux 2023
  • Python2

源码下载

基于github:https://github.com/volatilityfoundation/volatility

基于 volatility 官网:http://downloads.volatilityfoundation.org/releases/2.6/volatility-2.6.zip

依赖安装

安装 pip2

在安装 volatility 之前,我们需要安装 pip,kali 自带的 pip 则都是基于 python3.10 的版本。因此我们需要手动安装基于 python2 的pip。

image-20240113144118839

1
2
3
4
# 下载 get-pip.py
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
# 安装 pip
python2 get-pip.py

image-20240113150032168

安装成功见上图。

升级 pip

1
pip2 install --upgrade setuptools

安装 crypto

1
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple

安装 construct

1
pip2 install construct -i https://pypi.tuna.tsinghua.edu.cn/simple

安装 distorm3

在这里需要先将模块下载下来:https://github.com/vext01/distorm3 使用命令行安装:

1
2
3
4
5
6
# 使用 git 命令下载 distorm3 模块
git clone https://github.com/vext01/distorm3.git
# 进入到 distorm3 目录
cd distorm3
# 安装
python2 setup.py install

安装成功的界面如下图所示:

image-20240113150608150

安装 volatility

前面的依赖环境都已安装,现如今只需要将 volatility 的源码下载到 kali 当中。

1
2
3
4
5
6
7
8
# 下载源码
wget http://downloads.volatilityfoundation.org/releases/2.6/volatility-2.6.zip
# 解压
unzip volatility-2.6.zip
# 进入到 volatility-master 目录
cd volatility-master
# 安装
python2 setup.py install

安装成功界面见下图所示:

image-20240113150904354

volatility 插件安装

mimikatz

想必 mimikatz.exe 大家都用过。没错是在内网渗透中从内存中捕获 Windows 系统的管理员 NTLM 值 和 明文密码的好帮手。

volatility 工具也支持该插件的使用,不过需要进行安装,其安装方式如下:

1
2
# 下载源码
wget https://raw.githubusercontent.com/RealityNet/hotoloti/master/volatility/mimikatz.py

/opt 目录下创建 volatility/plugins 目录用于存放插件

1
mkdir -p /opt/volatility/plugins

然后将 mimikatz.py 复制过去并对其赋予权限

1
2
cp mimikatz.py /opt/volatility/plugins/
chmod +x /opt/volatility/plugins/mimikatz.py

最后进行测试:

image-20240113153239117

后续更新

插件使用注意事项

  • 当使用第三方插件的时候,一定要通过 vol.py 运行,而不能通过 volatility

  • 当使用第三方插件的时候,需要使用 --plugin 属性指定插件的存放目录。如下:

    1
    vol.py --plugin=/opt/volatility/plugins -f /root/neicun.vmem --profile=Win7SP1x64 mimikatz
  • --plugin 参数要紧跟 vol.py 命令指定。