【实战】内存镜像下的数字取证实战操作 Part Ⅰ
字数 1875 2025-08-06 18:07:40
内存镜像数字取证实战操作指南
0x00 前言
内存取证是数字取证分析的重要组成部分,能够从系统内存镜像中提取关键证据。本指南将详细介绍使用Volatility框架进行内存取证分析的全过程。
0x01 内存镜像基础
内存镜像的意义
- 内存增加促使整合水平提高
- 内存可靠性影响服务器上所有虚拟机的整体可靠性
- 常见内存镜像文件格式:raw、vmem、dmp、img
0x02 Volatility框架介绍
功能概述
Volatility是一款开源内存取证框架,能够:
- 获取内核数据结构
- 分析系统运行状态
- 从内存镜像(约0.5G大小)中提取数字证据
主要功能
- 列出会话及窗口站atom表
- 打印TCP连接信息
- 显示进程命令行参数
- 提取命令行历史记录
- 提取崩溃转储信息
- 提取内存中映射或缓存的文件
- 查看Windows帐户hash
- 查看进程列表
特点
- 开源:Python编写,易于集成
- 跨平台:支持Windows、Mac、Linux
- 可扩展:通过插件扩展分析能力
0x03 安装与配置
依赖安装
- Distorm3反编译库:
pip install distorm3 - PyCrypto加密工具集:
pip install pycrypto - Yara恶意软件工具:
pip install yara - PIL图片处理库:
pip install pil - UJson JSON解析:
pip install ujson
Volatility安装步骤
- 下载Volatility源码
- 解压后执行:
python2 setup.py install - 验证安装:
vol.py
常见问题解决
-
pip版本问题:
- 使用pip2安装依赖
- 清华源加速:
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple
-
mimikatz插件问题:
- 复制mimikatz.py到plugins目录
- 安装construct模块:
pip install construct==2.5.5-reupload
0x04 实战案例分析
案例1:破解用户密码(湖湘杯2020 passwd)
- 获取内存基本信息:
vol.py -f 文件名 imageinfo - 获取用户哈希:
vol.py -f 文件名 --profile=Win7SP1x86_23418 hashdump - 使用cmd5.com等网站破解哈希
案例2:挂载加密转储(BMZCTF Suspicion)
- 获取系统信息:
vol.py -f mem.vmem imageinfo - 查看进程列表:
vol.py -f mem.vmem --profile=WinXPSP2x86 pslist - 转储可疑进程:
vol.py -f mem.vmem --profile=WinXPSP2x86 memdump -p 2012 -D ./ - 使用EFDD工具解密TrueCrypt容器
案例3:关键字查找(NEWSCTF2012 ez-dump)
- 查看执行过的命令:
vol.py -f mem.raw --profile=Win7SPx64 cmdscan - 查找关键字文件:
vol.py -f mem.raw --profile=Win7SPx64 filescan | grep flag - 转储文件:
vol.py -f mem.raw --profile=Win7SPx64 dumpfile -Q 偏移量 -D 目录
案例4:可疑进程分析(福来阁殿下)
- 查看进程列表:
vol.py -f zy.raw --profile=WinXPSP2x86 pslist - 转储可疑进程:
vol.py -f zy.raw --profile=WinXPSP2x86 memdump -p 536 -D ./ - 使用strings查找关键字:
strings -e l 536.dmp | grep flag - 浏览器历史记录分析:
vol.py -f zy.raw --profile=WinXPSP2x86 iehistory
案例5:AES加密分析(HDCTF)
- 查找关键字文件:
vol.py -f memory.img --profile=Win2003SP1x86 filescan | grep flag - 转储资源管理器进程:
vol.py -f memory.img --profile=Win2003SP1x86 memdump -p 1992 -D ./ - 使用forest工具分离文件:
forest 1992.dump - 使用获取的Key和IV解密AES密文
案例6:记事本取证(白帽子内存数字取证)
- 查看记事本内容:
vol.py -f 镜像文件名 --profile=WinXPSP2x86 notepad - 查看执行命令:
vol.py -f 镜像文件名 --profile=WinXPSP2x86 cmdscan - 暴力破解zip密码:
zip2john 压缩名 > hash john hash
0x05 常用命令总结
| 功能 | 命令 |
|---|---|
| 获取系统信息 | vol.py -f 文件 imageinfo |
| 获取用户哈希 | vol.py -f 文件 --profile=系统版本 hashdump |
| 查看进程列表 | vol.py -f 文件 --profile=系统版本 pslist |
| 转储进程内存 | vol.py -f 文件 --profile=系统版本 memdump -p PID -D 目录 |
| 查看执行命令 | vol.py -f 文件 --profile=系统版本 cmdscan |
| 文件扫描 | vol.py -f 文件 --profile=系统版本 filescan |
| 转储文件 | vol.py -f 文件 --profile=系统版本 dumpfile -Q 偏移量 -D 目录 |
| 查看浏览器历史 | vol.py -f 文件 --profile=系统版本 iehistory |
| 查看记事本内容 | vol.py -f 文件 --profile=系统版本 notepad |
0x06 参考资源
- Volatility官方博客:http://volatility.tumblr.com
- Volatility实验室博客:http://volatility-labs.blogspot.com
- Volatility基金会官网:https://www.volatilityfoundation.org/
- Volatility GitHub仓库:https://github.com/volatilityfoundation/volatility
- Volatility3下载:https://github.com/volatilityfoundation/volatility3/archive/refs/tags/v1.0.0.zip