LiME 做什么
LiME(Linux Memory Extractor)是 Linux 内存采集最常用的内核模块方式:insmod 加载时传入输出路径与格式,模块把物理内存直接写成镜像文件。它能拿到内核态的进程、网络连接与内存马线索,是很多分析工具的输入。
采集前必须想清楚的三件事
模块要与当前内核版本匹配;输出必须写到外部介质(本机磁盘会覆盖空闲块);采集本身会占用与物理内存相当的空间并影响业务,需要选择隔离窗口。
基本信息
| 形式 | LiME 内核模块,insmod 时传参数 |
|---|---|
| 典型参数 | path=/mnt/usb/mem.lime format=lime |
| 前提 | 模块与 uname -r 的内核版本匹配 |
| 输出位置 | 外部介质或网络文件系统,禁止写系统盘 |
| 镜像体积 | 约等于物理内存大小 |
| 固定方式 | 采集后立即 sha256sum 并登记证据清单 |
典型使用场景
- 怀疑存在内存马或内核态后门时的现场采集
- 需要还原被删除文件内容时
- 提取进程命令行、网络连接与注入痕迹
- 为离线分析工具提供输入数据
- 处置前固定易失证据,避免清理动作将其破坏
加载模块采集内存
加载模块采集内存
uname -r # 确认内核版本再选模块
ls -la /mnt/usb/ # 确认目标介质空间充足
insmod ./lime.ko "path=/mnt/usb/mem.lime format=lime"
ls -la /mnt/usb/mem.lime
sha256sum /mnt/usb/mem.lime | tee /mnt/usb/mem.lime.sha256
lsmod | grep lime # 采集完成后卸载模块
rmmod lime输出逐列读法
| 检查项 | 含义 | 正常/异常 |
|---|---|---|
| 镜像文件大小 | 与物理内存的比值 | 明显偏小说明采集被中断或参数有误 |
| sha256 摘要 | 完整性与固定依据 | 采集后立即生成,移交前再次校验 |
| lsmod 输出 | 模块是否已加载 | 采集中应存在,采集后应卸载避免影响系统 |
| dmesg 提示 | 模块加载与写入信息 | 出现写入失败需检查目标介质与空间 |
输出写本机磁盘会覆盖空闲块,直接破坏潜在证据;同时内存镜像体量大,务必先确认外部介质剩余空间。
LiME 需要按目标内核版本编译或准备,跨版本加载会失败;无法加载时可考虑 /proc/kcore 等替代方式,但效果与适用性有差异,需按现场条件评估。
采集现场纪律
- 先记录采集时间点、操作人与系统时间基准
- 镜像与哈希清单同放同一介质并登记
- 采集后立即卸载模块,避免残留影响业务
- 把镜像副本用于分析,原件只读保存