基于 LiME 与 Volatility 3 的 Linux 内存取证实战指南(Anthropic-Cybersecurity-Skills 技能详解)
【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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-forensics-with-lime-and-volatility技能的 API 参考文档展开,系统讲解如何在受感染的 Linux 主机上用 LiME 内核模块完成内存采集,再用 Volatility 3 框架提取进程、网络连接、bash 历史、内核模块与注入代码等关键证据。读者读完本文后将掌握一套可落地的内存取证工作流,并了解如何借助技能目录中的 Agent 脚本实现采集、分析与报告生成的自动化。
技能背景与应用场景
该技能在仓库中被定义为security-operations(安全运营)子域下的内存取证能力,核心标签包括memory-forensics、linux-forensics、lime、volatility、incident-response与kernel-modules。其适用场景非常明确:
- 调查需要分析 Linux 内存取证数据的安全事件(如服务器被入侵、挖矿木马、Rootkit 感染);
- 基于内存中的真实证据构建检测规则或威胁狩猎查询;
- SOC 分析师需要结构化、可复现的内存取证操作流程;
- 验证安全监控对相关攻击技术的覆盖情况。
技能元数据(见 SKILL.md)声明其映射到 MITRE ATT&CK 的 T1055(进程注入)、T1003.001(LSASS 内存凭证提取)、T1620(规避型恶意软件)与 T1564.001(隐藏文件),同时关联 NIST CSF 的 DE.CM-01、DE.AE-02、RS.MA-01、GV.OV-01 等控制项。这意味着内存取证不仅是事后响应手段,更是检测进程注入、凭证窃取等 ATT&CK 技术的核心证据来源。
前置条件
在执行下述操作前需确认以下前提(来自技能前置要求):
- 熟悉安全运营概念与相关取证工具的基本用法;
- 拥有可安全执行操作的测试或实验环境(切勿在未授权系统上采集与分析);
- Python 3.8+ 及所需的 Volatility 3 依赖已安装;
- 具备对目标主机执行采集操作的适当授权。
LiME:Linux 内存采集模块的使用
LiME(Linux Memory Extractor)是一个可加载的 Linux 内核模块,用于从运行中的 Linux 系统直接采集物理内存。其典型使用流程分为"编译"与"加载采集"两步。
编译 LiME 模块
cd LiME/src && make编译产物为与当前内核版本绑定的模块文件,命名形如lime-$(uname -r).ko。实际加载时,Agent 脚本中的acquire_memory_lime()会先通过uname -r获取内核版本,优先使用lime-<内核版本>.ko,若该文件不存在则回退到通用模块名lime.ko。
采集到本地文件
# 采集内存(lime 格式 - 包含元数据) insmod lime-$(uname -r).ko "path=/evidence/mem.lime format=lime" # 采集内存(raw 格式) insmod lime-$(uname -r).ko "path=/evidence/mem.raw format=raw"两种格式的差异值得注意:format=lime会在镜像中写入采集元数据(如采集时间、主机信息等),为后续分析提供上下文;format=raw则是纯裸内存内容,适合需要与其他工具严格兼容的场景。path参数指定镜像输出路径。
网络化采集(远程取证场景)
当目标主机无法直接挂载存储设备时,可通过 TCP 将内存流式传输到取证工作站:
insmod lime.ko "path=tcp:4444 format=lime" # 在取证工作站上: nc target 4444 > mem.lime这种方法的关键价值在于:被采集主机不需要额外存储空间,取证工作站一侧只要用nc监听端口并把数据重定向到文件,即可在远程完成内存镜像落地。采集完成后务必立即卸载 LiME 模块(rmmod lime)并校验镜像哈希,保证证据链完整。
Volatility 3 Linux 插件速查
Volatility 3 为 Linux 内存镜像提供了丰富的插件族。下表汇总了本技能 API 参考中列出的核心插件及其用途:
| 插件 | 用途说明 |
|---|---|
linux.pslist | 通过task_struct链表枚举进程 |
linux.psscan | 暴力扫描内存中的task_struct结构 |
linux.bash | 恢复 bash 命令历史 |
linux.sockstat | 提取网络连接信息 |
linux.lsmod | 列出已加载的内核模块 |
linux.malfind | 检测内存中的注入代码 |
linux.check_afinfo | 检测网络协议栈钩子(hooking) |
linux.tty_check | 检测 TTY 钩子 |
linux.proc.Maps | 查看进程内存映射 |
从取证视角看,这些插件分别覆盖了四个关键证据面:进程对象(pslist/psscan)、用户行为(bash)、网络活动(sockstat)以及内核异常(lsmod/malfind/check_afinfo/tty_check)。其中linux.check_afinfo与linux.tty_check专用于发现 Rootkit 常见的挂钩手段,是识别高级隐蔽攻击的重要检查项。
Volatility 3 CLI 实战用法
vol3 -f memory.lime linux.pslist vol3 -f memory.lime linux.bash vol3 -f memory.lime linux.sockstat vol3 -f memory.lime linux.malfind vol3 -f memory.lime linux.lsmod vol3 -f memory.lime linux.check_afinfo-f指定内存镜像文件,紧随其后的是插件名。技能主文档还给出了更贴合实战的过滤示例:
# 完整取证工作流 vol3 -f memory.lime linux.pslist | grep -v "\[kthread\]" vol3 -f memory.lime linux.bash vol3 -f memory.lime linux.malfind vol3 -f memory.lime linux.lsmodgrep -v "\[kthread\]"用于剔除内核线程,只保留用户态进程,让分析师快速聚焦到可疑的应用程序进程上。
隐藏进程检测:pslist 与 psscan 交叉比对
这是内存取证中最核心的对抗手法之一。原理在于:
linux.pslist遍历内核维护的task_struct链表,而恶意 Rootkit 往往通过"摘链"(从链表中摘除自己的task_struct)来隐藏进程;linux.psscan则对物理内存进行暴力扫描,直接搜索task_struct结构特征,不依赖链表完整性。
因此,同时运行两个插件并比对输出,即可暴露被摘链隐藏的进程:
# 比对 pslist(链表遍历)与 psscan(暴力扫描) vol3 -f mem.lime linux.pslist > pslist.txt vol3 -f mem.lime linux.psscan > psscan.txt diff pslist.txt psscan.txtdiff输出中"只出现在 psscan.txt 中"的 PID,就是疑似被隐藏的进程,应列为高优先级调查对象。这一流程在仓库的 Agent 脚本中也被程序化实现:detect_hidden_processes()分别运行两个插件,收集pslist中的 PID 集合,再遍历psscan输出,将"未出现在 pslist 中且 PID 大于 0"的进程判定为隐藏进程。
程序化使用 Volatility 3 与自动化取证
除了 CLI,Volatility 3 还提供 Python 编程接口,便于将取证能力嵌入脚本与平台:
import volatility3 from volatility3.framework import contexts, automagic from volatility3.plugins.linux import pslist, bash, sockstat # Programmatic Volatility 3 usage context = contexts.Context() automagics = automagic.available(context)仓库配套的 scripts/agent.py 正是这一思路的完整实现。它封装了从采集到分析的整条链路,主要模块如下:
acquire_memory_lime(output_path, lime_format):自动探测内核版本、选择模块文件并执行insmod采集,返回包含状态、输出路径、格式与内核版本的字典;run_vol3_plugin(image_path, plugin_name, extra_args):统一封装vol3 -f <image> <plugin>调用,支持附加参数与超时控制(默认 300 秒);parse_pslist_output/list_processes:解析linux.pslist输出为结构化的 PID/PPID/进程名数据;extract_bash_history:解析linux.bash,还原每条命令对应的 PID、进程名、时间戳与命令内容;detect_suspicious_commands:内置正则规则库(如curl.*|.*sh、wget.*&&.*chmod、base64.*-d、nc.*-e、chmod.*777、chattr.*-i、iptables.*-F、history.*-c等),对 bash 历史做可疑命令标记,命中即标记为HIGH严重级别;detect_hidden_processes:实现上文所述的 pslist/psscan 交叉比对;check_malfind/list_kernel_modules/list_network_connections:分别封装注入代码检测、内核模块枚举与网络连接提取。
脚本通过--action参数支持acquire、pslist、bash、network、modules、hidden、malfind与full_analysis多种模式,最终将结果序列化为 JSON 报告:
# 采集内存 python3 agent.py --action acquire --acquire /evidence/memory.lime # 对已有镜像执行全量分析并输出报告 python3 agent.py --image /evidence/memory.lime --action full_analysis --output report.json其中full_analysis会依次执行进程枚举、bash 历史提取与可疑命令标记、网络连接枚举、内核模块枚举和隐藏进程检测,把五项检查汇总进一份带generated_at时间戳的结构化报告——这也是把"工具命令"升级为"可复用的运营能力"的典型实践。
端到端内存取证工作流
综合技能文档与仓库实现,一次完整的 Linux 内存取证可归纳为以下五步:
- 采集:用 LiME 以
format=lime(或format=raw)采集内存镜像,必要时走 TCP 远程采集; - 枚举进程:运行
linux.pslist,并与linux.psscan交叉比对,识别隐藏进程; - 还原行为:用
linux.bash提取 bash 命令历史,结合脚本内置规则标记可疑命令; - 分析网络:用
linux.sockstat检查活跃连接,寻找外联 C2 或数据外传迹象; - 排查内核层:用
linux.lsmod检查已加载模块定位 Rootkit,再用linux.malfind、linux.check_afinfo、linux.tty_check验证是否存在代码注入与钩子。
每一步输出的证据都应记录镜像哈希、采集时间与工具版本,确保取证结论可追溯、可复核。同时,技能元数据中的 NIST CSF 映射(DE.CM-01 持续监控、DE.AE-02 异常事件分析、RS.MA-01 调查取证)也提示:内存取证应作为安全运营中持续监控与事件响应闭环的一环,而非一次性动作。
延伸阅读
- 技能完整定义与使用说明:SKILL.md
- 本指南对应的 API 参考原文:references/api-reference.md
- 自动化取证 Agent 实现:scripts/agent.py
- 技能许可协议:LICENSE
LiME 与 Volatility 3 均为各自领域的开源参考实现,具体版本与内核兼容性请以实际安装环境为准;本技能聚焦的是如何组合二者完成结构化、可自动化的 Linux 内存取证,这一工作流可直接复用于应急响应、威胁狩猎与红蓝对抗验证场景。
【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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),仅供参考