Windows 内存取证核心命令与实战全书

系统信息识别

在正式敲入复杂命令前,确认镜像类型和提取基础信息是重中之重。

核心实战法则

  • 工具选择策略:非 Windows 10 镜像可直接使用 Vol_all_in_one 进行一键自动化分析,极大提高效率。

  • Vol3 的不可替代性:面对 Windows 10 的内存镜像,Vol2 的某些功能(如系统识别、特定进程抓取)可能会失效,此时必须切换至 Volatility 3(如:2023 安洵杯 dacongのWindows)。

  • 黄金线索点:取证过程中一定要记得优先查看镜像桌面上的文件!

系统信息获取命令

  • Vol2 识别操作系统信息vol.py mem.dump imageinfo

  • Vol3 识别内存系统版本vol3.py -f dacong.raw banners.Banners(注意:有时 Vol3 识别不出,但 Vol2 可以,两者需互补使用)。


进程与服务分析

寻找异常程序、隐藏进程和恶意服务的核心环节。

进程全景扫描

  • Vol2 查看基础进程vol.py -f OtterCTF.vmem --profile=Win7SP1x64 pslist
  • Vol3 查看基础进程vol3.py -f dacong.raw windows.pslist
  • Vol2 查看隐藏/解链进程(进程树)vol.py -f OtterCTF.vmem --profile=Win7SP1x64 pstree
  • Vol3 查看进程树vol3.py -f dacong.raw windows.pstree

进程深度提取与服务探测

  • Vol2 爆破提取指定进程vol.py -f OtterCTF.vmem --profile=Win7SP1x64 memdump -p 3036 --dump-dir=./(通过 PID 导出 .dmp 文件进行后续分析)。
  • Vol2 扫描镜像服务vol.py --plugins=/home/kali/volatility/volatility/plugins -f mem.raw --profile=Win7SP1x64 svcscan

文件系统遍历与数据榨取

从海量内存碎片中精准定位并提取关键文件。

文件全局扫描

  • Vol2 扫描进程缓存文件vol.py -f memory.raw --profile=Win7SP1x64 filescan
  • Vol3 扫描镜像文件vol3.py -f dacong.raw windows.filescan

过滤与精准定位技巧

  • Vol2 查找特定后缀文档vol.py -f example.raw --profile=Win7SP1x64 filescan | grep -E 'txt|png|jpg|gif|zip|rar|7z|pdf|doc'
  • Vol2 查找指定文件夹内容volatility -f example.raw --profile=Win7SP1x64 filescan | grep TMP_User
  • Vol3 快速定位桌面文件vol3.py -f dacong.raw windows.filescan | grep Desktop

文件物理提取与恢复

  • Vol2 爆破提取文件内容vol.py -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007e410890 --dump-dir=./
  • Vol3 根据虚拟地址提取文件vol3.py -f mem.raw windows.dumpfiles --virtaddr="0x0000e0007ad17f20"
  • Vol2 恢复被删除的文件vol.py -f 1.vmem --profile=Win7SP1x64 mftparser

命令行、环境变量与网络状态

还原黑客的终端操作和网络后门连接特征。

终端指令与环境排查

  • Vol2 扫描进程环境变量vol.py -f memory.raw --profile=Win7SP1x64 envars
  • Vol2 扫描进程命令行参数vol.py -f memory.raw --profile=Win7SP1x64 cmdscan
  • Vol2 扫描命令行记录vol.py -f memory.raw --profile=Win7SP1x64 cmdline
  • Vol3 扫描命令行记录vol3.py -f dacong.raw windows.cmdline

网络连接与流量分析

  • Vol2 查看网络连接状态(基础)vol.py -f memory.raw --profile=Win7SP1x64 connscan
  • Vol2 扫描网络端口与连接vol.py --plugins=... -f mem.raw --profile=Win7SP1x64 netscan
  • Vol2 提取详细网络连接vol.py --plugins=... -f mem.raw --profile=Win7SP1x64 connections
  • Vol3 查看网络与端口占用vol3.py -f dacong.raw windows.netscan
  • Vol3 详细网络状态统计vol3.py -f dacong.raw windows.netstat
  • Vol2 搜索内核网络流量包信息vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 ndispktscan

用户凭证与注册表挖掘

获取系统控制权与核心配置参数的必经之路(注:注册表功能通常 Vol2 表现更优)。

注册表键值读取

  • Vol2 查看注册表配置单元vol.py -f memory.raw --profile=Win7SP1x64 hivelist
  • Vol3 扫描注册表配置单元vol3.py -f dacong.raw windows.registry.hivelist
  • Vol2 查看注册表键名vol.py -f memory.raw --profile=Win7SP1x64 hivedump -o 0xfffff8a001cce010
  • Vol2 查看注册表键值vol.py -f OtterCTF.vmem --profile=Win7SP1x64 printkey
  • Vol3 扫描注册表键值vol3.py -f dacong.raw windows.registry.printkey

用户账户与密码获取

  • Vol2 提取当前镜像用户列表vol.py --plugins=... -f mem.raw --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"
  • Vol2 提取用户 NTLM/LM Hashvol.py -f OtterCTF.vmem --profile=Win7SP1x64 hashdump
  • Vol2 使用 Mimikatz 提取明文密码vol.py --plugins=... -f mem.dump --profile=Win7SP1x64 mimikatz

行为轨迹与图形界面还原

直接重现用户操作的历史痕迹和屏幕画面。

界面与剪贴板审查

  • Vol2 获取系统屏幕截图vol.py -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
  • Vol2 导出 Windows 窗口信息vol.py -f 1.vmem --profile=Win7SP1x64 windows
  • Vol2 查看剪贴板简略信息vol.py -f 1.vmem --profile=Win7SP1x64 clipboard
  • Vol2 查看剪贴板详细内容vol.py -f 1.vmem --profile=Win7SP1x64 clipboard -v

文本记录与应用历史

  • Vol2 查看浏览器历史记录vol.py -f 1.vmem --profile=Win7SP1x64 iehistory
  • Vol2 显示编辑控件信息(输入框)vol.py -f 1.vmem --profile=Win7SP1x64 editbox
  • Vol2 查看记事本展示内容vol.py -f 1.vmem --profile=Win7SP1x64 notepad
  • Vol2 查看程序运行记录(最后更新/运行次数)vol.py -f 1.vmem --profile=Win7SP1x64 userassist
  • Vol2 全局最大化提取时间线信息vol.py -f 1.vmem --profile=Win7SP1x64 timeliner

恶意软件检测与高级取证分析

针对无文件攻击、注入、外设异常等高级威胁的排查。

模块注入与木马检测

  • Vol2 扫描进程动态库 (DLL) 列表vol.py -f memory.img --profile=Win2003SP1x86 dlllist
  • Vol2 扫描未链接/隐藏模块vol.py -f memory.img --profile=Win2003SP1x86 ldrmodules
  • Vol2 扫描注入代码与恶意软件vol.py -f memory.img --profile=Win2003SP1x86 malfind
  • Vol2 基于 VolDiff 的恶意软件检测vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 voldiff

硬件与加密设备

  • Vol2 获取 USB 历史连接信息vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 usbstor
  • Vol2 提取 Bitlocker 加密密钥vol.py --plugins=... -f OtterCTF.vmem --profile=Win7SP1x64 bitlocker

特殊进程与疑难文件处置技巧

常规命令失效时的高阶实战策略。

经典特殊进程破解

  • 画图进程 (mspaint.exe):使用 memdump 导出 dmp 文件,修改后缀为 .data。随后拖入 GIMP 软件中,通过调整位移和分辨率来还原图像。在提取前使用 screenshot 获取截图信息,有助于提前确立屏幕分辨率参数。此方法同样适用于其他涉及图形渲染的进程(例:2024 NKCTF)。
  • 便签进程 (StikyNot.exe):在路径 C:\Users\XXX\AppData\Roaming\Microsoft\Sticky Notes\ 提取出对应的 .snt 文件。该文件无法直接阅读,必须导入 Win7 原生便签环境或强制使用记事本打开。
  • 联系人进程 (wab.exe):在文件中重点搜索 .contact 后缀的文件并提取。

疑难文件强制提取

  • 系统日志排查:重点搜索并导出后缀为 .evtx 的 Windows 系统日志文件。
  • 数据文件导出报错 (.dat 等):如果 Vol2 提取失败,可以加上 -u 参数绕过。示例命令:volatility -f mem.data dumpfiles -r pdf$ -i --name -D dumpfiles/ -u。如果 Vol2 依然无法提取但 Vol3 可以时,直接换用 Vol3;如果两者均失效,可挂载镜像使用 R-Studio 强行提取。