初识内存取证-volatility与Easy_dump
字数 856 2025-08-11 08:35:50

Volatility与Easy_dump内存取证实战指南

一、Volatility简介

Volatility是一款强大的开源内存取证框架,由全球数百位安全专家合作开发,支持Windows、Linux、Mac OSX和Android等系统的内存取证分析。

主要特点

  • 通过分析导出的内存镜像获取系统信息
  • 提取内核数据结构
  • 使用插件获取内存详细情况和系统运行状态
  • 跨平台支持多种操作系统

官网地址:https://www.volatilityfoundation.org/26

二、Volatility基本使用

命令格式

volatility -f [image] --profile=[profile] [plugin]

镜像信息分析

在分析前需先确定操作系统类型:

volatility -f xxx.vmem imageinfo

三、常用Windows插件命令

  1. 用户凭证提取

    volatility -f 1.vmem --profile=Win7SP1x64 hashdump
    
  2. 进程分析

    volatility -f 1.vmem --profile=Win7SP1x64 pslist
    
  3. 服务扫描

    volatility -f 1.vmem --profile=Win7SP1x64 svcscan
    
  4. 浏览器历史记录

    volatility -f 1.vmem --profile=Win7SP1x64 iehistory
    
  5. 网络连接

    volatility -f 1.vmem --profile=Win7SP1x64 netscan
    
  6. 命令行操作记录

    volatility -f 1.vmem --profile=Win7SP1x64 cmdscan
    
  7. 文件扫描

    volatility -f 1.vmem --profile=Win7SP1x64 filescan
    
  8. 文件内容提取

    volatility -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0xxxxxxxx -D ./
    
  9. 记事本内容查看

    volatility -f 1.vmem --profile=Win7SP1x64 notepad
    
  10. 进程内存转储

    volatility -f 1.vmem --profile=Win7SP1x64 memdump -p xxx --dump-dir=./
    
  11. 屏幕截图

    volatility -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
    
  12. 注册表分析

    volatility -f 1.vmem --profile=Win7SP1x64 hivelist
    volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a001032410
    volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "xxxxxxx"
    
  13. 程序运行记录

    volatility -f 1.vmem --profile=Win7SP1x64 userassist
    
  14. 时间线分析

    volatility -f 1.vmem --profile=Win7SP1x64 timeliner
    

四、Easy_dump实战案例(2018护网杯)

1. 镜像信息分析

volatility -f easy_dump.img imageinfo

推测为Win7SP1x64镜像

2. 进程扫描

volatility -f easy_dump.img --profile=Win7SP1x64 psscan

volatility -f easy_dump.img --profile=Win7SP1x64 pslist

发现notepad.exe进程

3. 进程内存转储

volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 2616 -D /xxx/xxx/xxx/
  • procdump:提取进程可执行文件
  • memdump:提取进程内存信息

4. 查找flag信息

strings -e l 2616.dmp | grep "flag"

发现提示为jpg文件

5. 扫描jpg文件

volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep "jpg"

发现phos.jpg图片

6. 导出图片

使用binwalk分析发现存在zip文件

7. 文件分离

foremost file.None.0xfffffa8008355410.vacb

自动生成output文件夹,包含分离的文件

8. 解压分析

解压00004372.zip得到message.img

9. 使用binwalk提取文件

得到hint.txt

10. 数据可视化

使用Python脚本解析hint.txt:

import matplotlib.pyplot as plt
import numpy as np

x = []
y = []

with open('hint.txt','r') as f:
    datas = f.readlines()
    for data in datas:
        arr = data.split(' ')
        x.append(int(arr[0]))
        y.append(int(arr[1]))

plt.plot(x,y,'ks',ms=1)
plt.show()

扫描生成的二维码得到提示:

  • 维吉尼亚加密,密钥是aeolus
  • 加密文件被删除,需要恢复

11. 文件恢复

使用testdisk恢复文件:

testdisk message.img

红色标记为需要恢复的文件

12. 查看恢复结果

ls -a
strings [恢复的文件]

最后一句字符串尝试解密,得到最终结果

五、参考资料

  1. Volatility使用指南
  2. 内存取证分析
Volatility与Easy_ dump内存取证实战指南 一、Volatility简介 Volatility是一款强大的开源内存取证框架,由全球数百位安全专家合作开发,支持Windows、Linux、Mac OSX和Android等系统的内存取证分析。 主要特点 通过分析导出的内存镜像获取系统信息 提取内核数据结构 使用插件获取内存详细情况和系统运行状态 跨平台支持多种操作系统 官网地址:https://www.volatilityfoundation.org/26 二、Volatility基本使用 命令格式 镜像信息分析 在分析前需先确定操作系统类型: 三、常用Windows插件命令 用户凭证提取 进程分析 服务扫描 浏览器历史记录 网络连接 命令行操作记录 文件扫描 文件内容提取 记事本内容查看 进程内存转储 屏幕截图 注册表分析 程序运行记录 时间线分析 四、Easy_ dump实战案例(2018护网杯) 1. 镜像信息分析 推测为Win7SP1x64镜像 2. 进程扫描 或 发现notepad.exe进程 3. 进程内存转储 procdump :提取进程可执行文件 memdump :提取进程内存信息 4. 查找flag信息 发现提示为jpg文件 5. 扫描jpg文件 发现phos.jpg图片 6. 导出图片 使用binwalk分析发现存在zip文件 7. 文件分离 自动生成output文件夹,包含分离的文件 8. 解压分析 解压00004372.zip得到message.img 9. 使用binwalk提取文件 得到hint.txt 10. 数据可视化 使用Python脚本解析hint.txt: 扫描生成的二维码得到提示: 维吉尼亚加密,密钥是aeolus 加密文件被删除,需要恢复 11. 文件恢复 使用testdisk恢复文件: 红色标记为需要恢复的文件 12. 查看恢复结果 最后一句字符串尝试解密,得到最终结果 五、参考资料 Volatility使用指南 内存取证分析