内存取证(Volatility 3)
SkillDev toolsVolatility 3 内存取证:进程/内核对象/网络/凭据线索。 触发词:内存取证、Volatility、memdump分析、进程列表、mimikatz线索
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 内存取证(Volatility 3) skill
What this skill tells your AI
The instructions your AI receives, as published by dslsdzc/rev-skills in .claude/skills/re-mem-forensics/SKILL.md and read by ahel’s review.
何时使用 / 何时不用
- 用:拿到 .raw/.mem/.core 内存转储做取证(进程列表、网络连接、注入检测、凭据哈希);恶意样本内存残留分析;事件响应调查
- 用:取证要求可追溯的时间线(进程/网络/注册表事件序列,配合 timeliner)
- 不用:还没有转储——先按 [[re-memdump]] 取(默认转储优先,见 [[re-analyze/platform-tips]]「直读 vs 转储」决策表)
- 不用:实时交互调试(那是 [[re-gdb]] / [[re-x64dbg]] 的活);文件系统/注册表静态分析(那是 [[re-binary-core]] / 主机取证工具)
工具准备
本技能只读转储文件、不运行样本;涉及动态确认的转 [[re-sandbox]](默认沙箱最高原则,见 [[re-analyze/platform-tips]])。
volatility3 —— 内存取证主力(Python 3.8+)
- 全平台:
pip install volatility3(命令为vol);官方要求 Python 3.8+(README 表述),2026 实测 2.28.0 在 Python 3.14 可安装且插件正常加载——先python3 --version确认,版本不匹配用 pyenv/venv 建对应环境再装 - Windows/WSL: 同上 pip 方案(WSL 内可分析 Windows dump,见 [[re-analyze/platform-tips]] WSL 分支)
- 验证:
vol -h;vol -f dump.raw windows.info能输出镜像信息且不报符号错误 - 符号文件(ISF):Windows 与 Linux/macOS 的获取机制完全不同,不要混为一谈
- Windows:按目标内核 PDB 的 GUID/age 在
symbols/windows/下找 ISF;找不到时自动从 Microsoft 符号服务器下载 PDB 并转换为 ISF——这是唯一"能自动在线获取"的一侧(网络受限即失败) - Linux / macOS:靠 kernel banner 精确匹配 ISF(banner 编码在 ISF 内部,文件名不重要)。获取途径:① 社区预构建包(按发行版/架构/内核组织的 ISF 集合)② 自行构建——
dwarf2json(需带调试符号的内核)或btf2json(用vmlinuz的 BTF +System.map,不需要完整调试内核) - 先跑
banners拿到内核 banner,再按 banner 找或构建对应 ISF;isfinfo查看已识别符号表,banner 未命中时用-vvv确认 - 离线/受限环境:
--offline+ 预置符号目录,否则插件报 MissingSymbol 类错误
- Windows:按目标内核 PDB 的 GUID/age 在
- 依赖补充:凭据类插件(hashdump/lsadump/cachedump)需要 pycryptodome、yarascan 需要 yara-python——2026 实测 2.28.0 缺这两依赖时对应插件加载失败(
vol --help里直接缺失),装完pip install pycryptodome yara-python重试
7zip(可选,解 .7z 压缩转储)
- Linux:
apt install p7zip-full/dnf install p7zip-plugins/pacman -S p7zip - macOS:
brew install p7zip - Windows: 7-Zip 官网安装
- 验证:
7z --help
工具包补充(按平台)
- Windows dump 建议同时备 Sysinternals(procdump/DumpIt 取 dump 用,见 [[re-analyze/platform-tips]] Windows 分支)
- 深度提取
vol -f dump.raw windows.dumpfiles出的可疑对象,用 [[re-ghidra]] / [[re-ida]] 分析
操作步骤
按顺序执行,每步产物存档(路径 + sha256 + 时间戳,取证要求)。
-
确认 dump 来源与架构:
file dump.raw # 确认是内存转储(MEMORY_IMAGE 头 / crash dump),不是别的文件 vol -f dump.raw windows.info # Windows 镜像信息;Linux/macOS 无 info 插件——直接跑对应平台插件验证(如 linux.pslist / mac.pslist,符号表就位才正常输出)- 按转储来源选平台前缀:Windows 用
windows.*、macOS 用mac.*、Linux 用linux.*;volatility3 自动识别 profile(相比 vol2 手选 profile 已简化),但首次运行需下载对应符号文件(见工具准备) - 输入格式:raw 镜像(主格式)、LiME(lime 层自动识别)、Windows crash dump(crash 层);VMware .vmem(vol 内置 vmware 层自动识别,可直接
-f);休眠文件(hiberfil.sys)无内置层——先转 raw 或专用工具处理 - 进程级转储([[re-memdump]] 的 gcore 是单进程 ELF core,非整机镜像)Volatility 无法解析——用 gdb/eu-stack 复盘(见 [[re-memdump]] 步骤 3),本技能只处理整机镜像
- 按转储来源选平台前缀:Windows 用
-
进程列表:
vol -f dump.raw windows.pslist # 常规进程列表(含 PID/PPID/时间戳) vol -f dump.raw windows.psscan # 池扫描,能发现已终止/隐藏进程 vol -f dump.raw windows.pstree # 进程树,看父子关系异常(如 IE 生成了 cmd)- 记下可疑 PID:父进程不匹配(浏览器 spawn 出 powershell)、常见白名单进程名/路径异常(
svchost.exe不在C:\Windows\System32) - 已终止进程用 psscan 找,别只信 pslist
- 补充插件:
windows.cmdline看进程命令行(混淆的 powershell -enc 参数)、windows.svcscan服务列表(异常服务常是持久化)、windows.sessions会话与桌面归属
- 记下可疑 PID:父进程不匹配(浏览器 spawn 出 powershell)、常见白名单进程名/路径异常(
-
网络连接:
vol -f dump.raw windows.netscan # 网络连接/监听(TCP/UDP,含已关闭连接) vol -f dump.raw windows.netstat # 备用:通过流表/相关对象推断- 记录:本地/远程 IP:端口、所属进程 PID、连接状态;异常外连(非 53/80/443 的高端口、境外 IP)是 C2 线索,进 IOC 列表(衔接 [[re-ioc]])
-
注入/异常检测:
vol -f dump.raw windows.dlllist -p <pid> # 进程模块列表,看路径异常(%TEMP%、AD 区) vol -f dump.raw windows.malfind # 扫描隐藏/注入的可执行内存(MEM_COMMIT + PAGE_EXECUTE_READWRITE 等) vol -f dump.raw windows.hollowprocesses # 进程镂空检测(替代合法性)- malfind 命中后
--dump导出可疑区段(vol -f dump.raw windows.malfind --dump --pid <pid>),提取出的对象存 sha256,转 [[re-binary-core]] 静态深挖 - malfind 有误报(见坑 3)——用 dlllist 路径与执行页权限交叉确认
- malfind 命中后
-
凭据线索与可疑对象提取:
vol -f dump.raw windows.registry.hashdump # 本地账户 NT/LM 哈希(改自 SAM + SYSTEM hive、boot key) vol -f dump.raw windows.registry.lsadump # LSA secrets(SECURITY hive) vol -f dump.raw windows.registry.cachedump # 域缓存凭据 MS-CACHEv2(SECURITY hive 的 NL$KM 密钥) # 旧写法 windows.hashdump / windows.lsadump / windows.cachedump 是弃用别名(v2.27 标记 2026-09-25 移除)- 凭据来源要分两套记录,别一律写"LSASS 内存":上面三个插件都是 registry-hive 派生(hashdump ← SAM + SYSTEM、lsadump/cachedump ← SECURITY)——报告里的 provenance 应写作 registry-hive-derived;从 LSASS 进程内存提取凭据是另一条路径(进程转储 + 相应工具),两者证据来源不同
- 命中即凭据泄露证据,记录来源与时间戳;离线破解交给 hashcat/john 等密码工具,本技能不破解
- 提取可疑对象:
windows.dumpfiles(指定文件)或 malfind/pslist--dump(vol -f dump.raw windows.pslist --dump --pid <pid>导出进程内存);每个对象算 sha256 存档 - 文件对象池扫描:
vol -f dump.raw windows.filescan | grep -i <关键词>找已删除/可疑文件对象,命中后windows.dumpfiles提取(配合windows.svcscan/windows.amcache交叉确认) - YARA 规则直扫:
vol -f dump.raw yarascan.YaraScan --yara-file <规则.yar>扫内核内存(进程内扫 VAD 用windows.vadyarascan.VadYaraScan --yara-file <规则.yar> --pid <pid>;均需 yara-python)——把 [[re-ioc]] 的规则直接作用于转储 - 取证时间线(如需要):
vol -r csv -f dump.raw timeliner生成事件时间线(timeliner 是顶级插件,无 windows. 前缀;-r/--renderer是 vol 级选项,位于插件名之前;-r csv为 CSV 渲染器),供报告与 [[re-ioc]] 引用
跨域联合
- [[re-forensics]]:本网关工作流第 2 步——本技能是内存取证环节
- [[re-memdump]]:转储产物来源(默认转储优先,见 [[re-analyze/platform-tips]]);本技能只分析不取数
- [[re-malware]]:深度分析路径引用本技能——行为分析后查内存残留(注入/内存载荷/凭据)
- [[re-ti]]:提取出的 hash/域名/IP 转情报查询;凭据与注入对象进 [[re-ioc]] IOC 列表
- [[re-ioc]]:凭据哈希、网络连接、可疑对象汇总成 IOC 与报告证据段
- [[re-binary-core]]:malfind/dumpfiles 提取的可疑对象静态深挖
- 引用 [[re-analyze/platform-tips]]「直读 vs 转储」决策表(默认转储优先)与 Linux 内存转储极端段(vsyscall/vdso 过滤)
常见坑与陷阱
- 符号表不匹配 → 解析全错:现象——
vol报Missing Symbol/ 解析出的进程列表明显荒谬(系统进程缺失、地址全 0);原因——volatility3 会自动选 profile,但符号表(ISF)必须与目标精确匹配:Windows 按 PDB GUID/age(缺失时可自动从 Microsoft 符号服务器取),Linux/macOS 必须匹配 kernel banner 且没有自动获取——依赖社区预构建包或自行用dwarf2json(需调试内核)/btf2json(vmlinuz BTF + System.map)构建;对策——先banners拿内核 banner;Windows 侧网络可及时直接跑windows.info触发 PDB 下载,受限环境--offline+ 预置符号目录;Linux/macOS 侧必须先按 banner 找到或构建出对应 ISF,banner 不命中时换版本或构建,别反复重试同一份 - dump 不完整(vsyscall 段污染)→ 分析偏差:现象——malfind 命中大量 0xffffffffff6xxxxx 地址的"注入",或提取对象全是对齐垃圾;原因——转储时未按 maps 过滤
[vsyscall]/[vdso]/[vvar](见 [[re-analyze/platform-tips]] Linux 内存转储极端段),垃圾页混入;对策——取 dump 阶段就过滤极端段;分析时按地址区间跳过 0xffffffffff6xxxxx,别把垃圾页当证据 - malfind 误报 → 假阳性:现象——
windows.malfind命中大量私有执行页,但 dlllist 无异常模块、提取对象跑不了;原因——加载器/垃圾回收器/JIT 的正常 RWX 页也会被判定"异常",malfind 只看内存属性不看执行语义;对策——用 dlllist 路径、hollow 检测、提取对象实际反编译([[re-binary-core]])三重交叉确认后再定论 - 只信 pslist 漏掉已终止进程:现象——pslist 干净但网络/文件行为指向某 PID 已消失;原因——进程已被终止,常规列表不含;对策——补跑
windows.psscan(池扫描找残留对象),取证要求尽量全。 - 取证报告缺时间线:现象——报告只有结论没有事件先后("什么时候注入、什么时候外连");原因——未生成时间线证据;对策——用
vol -r csv -f dump.raw timeliner(顶级插件,无 windows. 前缀;-r/--renderer是 vol 级选项,位于插件名之前)生成 CSV 时间线,进程/网络/凭据事件按时间归档,作为 [[re-ioc]] 报告证据段 - 内存内函数补丁型绕过 → 常规插件全干净:现象——malfind/dlllist 全部干净,但样本的 ETW/AMSI 明显被抑制(日志缺失/扫描无响应);原因——绕过不是注入新代码,而是改写已加载模块的函数头(如
EtwEventWrite前 4 字节 patch 成ret 14、AmsiScanBuffer前 3 字节改成return 0、send开头跳到匿名私有内存),不产生新执行页也不改页权限,malfind 无感;对策——跑内置windows.etwpatch(检测 ETW 补丁技术,vol3 2.28 起自带),或把内存中模块 dump 出来与磁盘原始 DLL 对照函数头字节 - 睡眠混淆 → 转储里载荷"消失":现象——转储中找不到植入体(无注入页、无落地文件),行为分析却确认 C2 植入体在运行;原因——Ekko/Foliage 类睡眠混淆在休眠期把 VAD 权限翻转为
PAGE_NOACCESS/PAGE_READWRITE并把内容加密,唤醒瞬间才还原执行;对策——用 vadinfo 找权限翻转/NOACCESS 的区段,按轮转密钥还原休眠中的加密页,或配合 [[re-emulation]] 在唤醒点模拟执行抓取明文 - BitLocker FVEK 可从 RAM 恢复(主版本无此插件):现象——拿到加密磁盘镜像+内存转储但没有密码,数据提取停滞;原因——系统运行时全卷加密密钥(FVEK)残留在 RAM(未被安全擦除),但主版本 Volatility 3 没有内置插件;对策——用社区
volatility3-bitlocker插件跑windows.bitlocker.BitlockerFVEKScan(--tags FVEc Cngb)提取 FVEK,再用dislocker -k挂载解密;v3 插件对旧内核结构报错时回退 Volatility 2 + breppo/Volatility-BitLocker - 插件列表缺凭据/YARA 类条目:现象——
vol --help里没有windows.registry.hashdump/lsadump/cachedump或 yarascan;原因——缺 pycryptodome / yara-python 依赖,加载失败的插件被静默跳过(2026 实测 2.28.0 表现);对策——pip install pycryptodome yara-python后重跑vol --help确认条目出现,再跑对应插件 - 拿旧插件名跑命令 → 命令不存在或即将失效:现象——按旧资料写
windows.hashdump能跑但告警,或某天直接报找不到插件;原因——volatility3 的插件路径在持续重组(注册表类插件已归入windows.registry.*,旧名以弃用别名形式保留并标注移除日期,如windows.hashdump标记 2026-09-25 移除);对策——用当前路径(见步骤 3),并在报告里记下所用版本;注意区分"源码目录变了"与"命令行调用名变了"——两者不一定同步(如 malfind 源码在windows/malware/下,但调用名仍是windows.malfind)
Signals
- GitHub stars
- 57
- Forks
- 8
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
re-mem-forensics- Source
- github.com/dslsdzc/rev-skills