kmuratori/memsnap
GitHub: kmuratori/memsnap
MemSnap 是一个使用AI驱动检测的自动化Linux内存取证工具,用于识别rootkit、代码注入和后门等安全威胁。
Stars: 2 | Forks: 1
# MemSnap
自动化 **Linux 内存取证** - 感染、捕获、提取特征,并使用 AI 检测 rootkit、代码注入和后门。
## 快速开始
```
git clone https://github.com/kmuratori/memsnap.git
cd memsnap
sudo apt install -y libsnappy-dev build-essential linux-headers-$(uname -r)
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
make
# Rootkit:克隆、补丁、构建并将 diamorphine.ko 复制到 assets/(见下文)
./memsnap infect -i -a dumps/ # infect all + capture dump
./memsnap extract dumps/ assets/features.csv # extract features
./memsnap train -i assets/features.csv -o assets/model.pkl # train model
./memsnap detect dumps/memdump_...rootkit.raw # detect threats
./memsnap web # start web interface (FastAPI)
```
## 安装配置
1. **系统依赖**
sudo apt install -y libsnappy-dev build-essential linux-headers-$(uname -r)
2. **Python 环境 & Volatility 3**
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
3. **构建资产**
- 注入库:
cd assets
gcc -shared -fPIC evil.c -o evil.so
cd ..
- Rootkit 模块 (Diamorphine):
cd /tmp
git clone https://github.com/m0nad/Diamorphine
cd Diamorphine
sed -i 's/PROC_ROOT_INO/PROCFS_ROOT_INO/g' diamorphine.c
make
cp diamorphine.ko ~/memsnap/assets/
cd ~/memsnap
(如果你更改了内核版本,需要重新构建此模块。)
4. **符号表** - 内核 `6.17.0-22-generic` 预生成的 ISF 文件已位于 `assets/` 目录。对于其他内核,请使用 `dwarf2json` 生成新的文件。
5. **内存获取** - AVML 将在首次使用时自动下载。
## 使用方法
所有命令都使用 `./memsnap` 入口点:
| 命令 | 用途 |
|---------|---------|
| `./memsnap infect -i [组件] -a [目录]` | 感染虚拟机,可选捕获内存转储 |
| `./memsnap extract <转储目录> [csv文件]` | 从转储文件提取特征 -> `features.csv` |
| `./memsnap train -i -o <模型文件.pkl>` | 训练 AI 模型 |
| `./memsnap detect <转储文件> [-m 模型文件]` | 检测单个转储文件中的威胁 (命令行界面) |
| `./memsnap web` | 启动基于 Web 的检测界面 (FastAPI) |
| `./memsnap test <转储目录>` | 对目录中的所有转储文件进行批量检测 |
| `./memsnap vol <转储文件>` | 运行原始的 Volatility 3 分析 |
示例:
```
./memsnap infect -i rootkit -a dumps/
./memsnap extract dumps/ features.csv
./memsnap train -i features.csv -o assets/model.pkl
./memsnap detect dumps/memdump_...rootkit.raw
./memsnap web # starts on http://localhost:8501
```
转储文件命名为 `memdump_<时间戳>_<组件>.raw`。
## 项目结构
```
memsnap/ -> unified entry script
scripts/
infect -> infection & memory capture
extract -> feature extraction -> features.csv
train -> train AI model
detect -> single‑dump CLI verdict
web -> FastAPI server for web UI
test -> batch detection script
assets/
diamorphine.ko -> pre‑built rootkit module
evil.so -> pre‑built injection library
model.pkl -> trained classifier
features.csv -> current dataset
index.html -> web UI frontend
app.js -> web UI logic
*.json.xz -> Volatility3 symbol table (kernel 6.17.0-22)
requirements.txt
```
## 已知限制
- **后门检测** 准确率约 62% - 有一个样本 (`rootkit_injection`) 模拟了后门端口行为。使用专门的特征(例如,检查进程名是否为 `ncat`)可以改善此情况。
- **数据集较小** (8个转储文件) - 仅为概念验证;通过 `extract --append` 添加公共转储文件以提高泛化能力。
## 运行环境
- **虚拟机**:Ubuntu 24.04,内核 `6.17.0-22-generic`,512 MB 内存,VirtualBox。
- **Volatility**:3.2.8.0 (通过 `requirements.txt` 安装)。
- **Python**:3.x,在 venv 虚拟环境中。
标签:AMSI绕过, Apex, AVML, AV绕过, Caido项目解析, FastAPI, JARM, Python, SecList, 二进制发布, 人工智能, 代码注入检测, 内存分析, 内存取证, 内核模块, 后门检测, 响应自动化, 威胁检测, 子域名枚举, 安全资源, 客户端加密, 开源工具, 恶意代码分析, 数字取证, 数字取证工具, 无后门, 机器学习, 模型训练, 特征提取, 用户模式Hook绕过, 系统取证, 系统安全, 网络安全, 自动化脚本, 逆向工具, 配置文件, 隐私保护