ZTMY0/LKM-Rootkit-Detector
GitHub: ZTMY0/LKM-Rootkit-Detector
一个通过对比 /proc 和 /sys 信息来检测隐藏内核模块的工具,解决传统 EDR 被 rootkit 绕过的问题。
Stars: 0 | Forks: 0
# LKM Rootkit 检测器
展示了企业级 EDR 信任操作系统提供的真实信息时,可被内核 rootkit 静默——并通过绕过被入侵路径的交叉视图差异检测来发现它。
**平台:** Linux Mint 22.3 · 内核 `6.17.0-22-generic`
**Rootkit:** Diamorphine · **EDR:** Elastic Security
## 工作原理
Diamorphine 钩住 `getdents64` 以将其自身从 `/proc/modules` 中隐藏。`lsmod`、Elastic 的扫描器以及所有标准工具都会读取此路径——它们都会得到被过滤后的答案。
`/sys/module/` 由一个独立的内核子系统管理,Diamorphine 从未触碰。模块目录仍保留在那里。
```
/proc/modules ← hooked → 124 modules (diamorphine absent)
/sys/module/ ← untouched → 125 entries (diamorphine present)
delta = 1 → hidden module found
```
`detector.py` 计算此差异。无需依赖、无需签名、无需修改内核。
## 使用方法
```
cd diamorphine && make
# 运行探测器
sudo python3 detector.py # single scan
sudo python3 detector.py --watch # continuous
sudo python3 detector.py --json # machine-readable
# 加载 / 隐藏
sudo insmod diamorphine/diamorphine.ko
# 取消隐藏并移除
sudo kill -63 0 && sudo rmmod diamorphine
```
退出码 `0` = 干净 · 退出码 `1` = 检测到隐藏模块。
## 演示
```
sudo bash demo_script.sh
```
| 操作 | 结果 |
|-----|------|
| 基线 | 所有工具 + Kibana 报告干净 |
| 加载 rootkit | `lsmod` 失明,Kibana:0 个警报 |
| 运行检测器 | `系统已被入侵 — diamorphine` |
完整的 Elasticsearch + Kibana + Elastic Agent 安装说明,请参见 `ELASTIC_SETUP.md`。
## 参考文献
- [Diamorphine](https://github.com/m0nad/Diamorphine) · [kprobes 文档](https://www.kernel.org/doc/html/latest/trace/kprobes.html) · [Elastic Security](https://www.elastic.co/security)
标签:0day挖掘, AMSI绕过, Diamorphine, EDR绕过, Elastic Security, Linux内核, /proc文件系统, rootkit检测, /sys文件系统, 企业安全, 内核安全, 内核模块隐藏, 可加载内核模块, 威胁检测, 安全渗透, 安全漏洞演示, 网络安全, 网络资产管理, 越狱测试, 跨视图差异, 逆向工具, 钩子检测, 隐私保护, 高交互蜜罐