kali linux 中文文档 下载 App

Volatility 内存取证框架使用指南

什么是内存取证

内存取证(Memory Forensics)是从计算机的随机存取存储器(RAM)中提取和分析数据的过程。与磁盘取证不同,RAM 中的数据是动态的、易失的——计算机关机就没了。但 RAM 中包含:

Volatility 简介

Volatility 是最广泛使用的开源内存取证框架,支持 Windows、Linux、macOS 三大平台的内存镜像分析。Kali 自带 Volatility 3(Python 版本)。

第一步:识别内存镜像格式

Volatility 首先需要知道这是什么操作系统、哪个版本的内存:

vol -f memory.raw windows.info

如果不确定操作系统,可以自动扫描:

vol -f memory.raw windows.info 2>/dev/null || vol -f memory.raw linux.info 2>/dev/null

常用插件(以 Windows 为例)

列出所有进程

vol -f memory.raw windows.pslist
vol -f memory.raw windows.pslist --output-file pslist.txt

对比正常进程列表,找可疑的(伪装成 svchost、但没有对应服务的进程)。

网络连接

vol -f memory.raw windows.netstat

列出目标主机所有 TCP/UDP 连接,包括当前活跃的、监听的、已建立的。找 C2 通信的关键线索。

命令历史(PowerShell)

vol -f memory.raw windows.powershell

提取密码哈希

vol -f memory.raw windows.hashdump

导出 Windows SAM + LSA 的密码哈希,可以直接喂给 Hashcat 破解。

注册表分析

# 列出注册表项
vol -f memory.raw windows.printkey --key "Microsoft\\Windows\\CurrentVersion\\Run"

# 提取注册表值
vol -f memory.raw windows.registry.printkey --key "ControlSet001\\Services"

Run key 和 RunOnce key 是持久化木马的经典位置。

文件下载分析

# 列出内存中的文件对象
vol -f memory.raw windows.filescan | grep "Download"

导出恶意进程的内存片段

# 找到可疑进程 PID(比如 PID 1234)
vol -f memory.raw windows.vad --pid 1234 --dump

导出后可以用 7-Zip 解压,得到进程的内存镜像,再用 Ghidra/IDA 分析。

Linux 内存取证

同样实用,插件名略有不同:

vol -f linux-memory.raw linux.pslist
vol -f linux-memory.raw linux.netstat
vol -f linux-memory.raw linux.bash
vol -f linux-memory.raw linux.mount
vol -f linux-memory.raw linux.hashdump

与磁盘取证配合

内存取证和磁盘取证是互补关系:

实战场景:确认是否中了勒索软件

  1. 目标主机被勒索软件加密后立刻断电,用 DD 工具 dump 内存
  2. Volatility windows.pslist 找到勒索软件进程
  3. windows.netstat 找到勒索软件的 C2 服务器 IP
  4. windows.hashdump 提取内存中的密码哈希(勒索软件通常不会加密已登录用户的凭据)
  5. 把勒索软件进程的 VAD 导出来,送 VirusTotal 分析

Volatility 2 vs Volatility 3

Kali 可能同时包含两个版本:

两个都要会——某些插件只有 V2 有。