【实战】内存镜像下的数字取证实战操作 Part Ⅰ
字数 1875 2025-08-06 18:07:40

内存镜像数字取证实战操作指南

0x00 前言

内存取证是数字取证分析的重要组成部分,能够从系统内存镜像中提取关键证据。本指南将详细介绍使用Volatility框架进行内存取证分析的全过程。

0x01 内存镜像基础

内存镜像的意义

  • 内存增加促使整合水平提高
  • 内存可靠性影响服务器上所有虚拟机的整体可靠性
  • 常见内存镜像文件格式:raw、vmem、dmp、img

0x02 Volatility框架介绍

功能概述

Volatility是一款开源内存取证框架,能够:

  • 获取内核数据结构
  • 分析系统运行状态
  • 从内存镜像(约0.5G大小)中提取数字证据

主要功能

  • 列出会话及窗口站atom表
  • 打印TCP连接信息
  • 显示进程命令行参数
  • 提取命令行历史记录
  • 提取崩溃转储信息
  • 提取内存中映射或缓存的文件
  • 查看Windows帐户hash
  • 查看进程列表

特点

  1. 开源:Python编写,易于集成
  2. 跨平台:支持Windows、Mac、Linux
  3. 可扩展:通过插件扩展分析能力

0x03 安装与配置

依赖安装

  1. Distorm3反编译库
    pip install distorm3
    
  2. PyCrypto加密工具集
    pip install pycrypto
    
  3. Yara恶意软件工具
    pip install yara
    
  4. PIL图片处理库
    pip install pil
    
  5. UJson JSON解析
    pip install ujson
    

Volatility安装步骤

  1. 下载Volatility源码
  2. 解压后执行:
    python2 setup.py install
    
  3. 验证安装:
    vol.py
    

常见问题解决

  1. pip版本问题

    • 使用pip2安装依赖
    • 清华源加速:
      pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple
      
  2. mimikatz插件问题

    • 复制mimikatz.py到plugins目录
    • 安装construct模块:
      pip install construct==2.5.5-reupload
      

0x04 实战案例分析

案例1:破解用户密码(湖湘杯2020 passwd)

  1. 获取内存基本信息:
    vol.py -f 文件名 imageinfo
    
  2. 获取用户哈希:
    vol.py -f 文件名 --profile=Win7SP1x86_23418 hashdump
    
  3. 使用cmd5.com等网站破解哈希

案例2:挂载加密转储(BMZCTF Suspicion)

  1. 获取系统信息:
    vol.py -f mem.vmem imageinfo
    
  2. 查看进程列表:
    vol.py -f mem.vmem --profile=WinXPSP2x86 pslist
    
  3. 转储可疑进程:
    vol.py -f mem.vmem --profile=WinXPSP2x86 memdump -p 2012 -D ./
    
  4. 使用EFDD工具解密TrueCrypt容器

案例3:关键字查找(NEWSCTF2012 ez-dump)

  1. 查看执行过的命令:
    vol.py -f mem.raw --profile=Win7SPx64 cmdscan
    
  2. 查找关键字文件:
    vol.py -f mem.raw --profile=Win7SPx64 filescan | grep flag
    
  3. 转储文件:
    vol.py -f mem.raw --profile=Win7SPx64 dumpfile -Q 偏移量 -D 目录
    

案例4:可疑进程分析(福来阁殿下)

  1. 查看进程列表:
    vol.py -f zy.raw --profile=WinXPSP2x86 pslist
    
  2. 转储可疑进程:
    vol.py -f zy.raw --profile=WinXPSP2x86 memdump -p 536 -D ./
    
  3. 使用strings查找关键字:
    strings -e l 536.dmp | grep flag
    
  4. 浏览器历史记录分析:
    vol.py -f zy.raw --profile=WinXPSP2x86 iehistory
    

案例5:AES加密分析(HDCTF)

  1. 查找关键字文件:
    vol.py -f memory.img --profile=Win2003SP1x86 filescan | grep flag
    
  2. 转储资源管理器进程:
    vol.py -f memory.img --profile=Win2003SP1x86 memdump -p 1992 -D ./
    
  3. 使用forest工具分离文件:
    forest 1992.dump
    
  4. 使用获取的Key和IV解密AES密文

案例6:记事本取证(白帽子内存数字取证)

  1. 查看记事本内容:
    vol.py -f 镜像文件名 --profile=WinXPSP2x86 notepad
    
  2. 查看执行命令:
    vol.py -f 镜像文件名 --profile=WinXPSP2x86 cmdscan
    
  3. 暴力破解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 参考资源

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