bad-antics/rupurt
GitHub: bad-antics/rupurt
一款功能全面的 Linux rootkit 检测工具,集成 eBPF 分析、内存取证和 APT 特征库,用于发现内核级隐藏威胁和高级持续性攻击植入。
Stars: 5 | Forks: 0
```
██████╗ ██╗ ██╗██████╗ ██╗ ██╗██████╗ ████████╗
██╔══██╗██║ ██║██╔══██╗██║ ██║██╔══██╗╚══██╔══╝
██████╔╝██║ ██║██████╔╝██║ ██║██████╔╝ ██║
██╔══██╗██║ ██║██╔═══╝ ██║ ██║██╔══██╗ ██║
██║ ██║╚██████╔╝██║ ╚██████╔╝██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝
☠️ Linux Rootkit Hunter
```
*全面的 Linux rootkit 检测,具备现代威胁签名、eBPF 分析、内存取证和 APT 植入检测功能*
## 🎬 演示
RKHunt 快速扫描实时系统 — 检测可疑内核模块、进程异常和受污染的内核标志
## 💻 技术栈
### 核心



### 检测目标




### 平台


## ⚡ 功能特性
### 🔍 检测模块
| 模块 | 描述 |
|--------|-------------|
| **Syscall 分析** | 检测 syscall 表劫持和挂钩 |
| **eBPF 扫描器** | 识别恶意 eBPF 程序 |
| **内存取证** | 扫描隐藏进程和注入代码 |
| **内核完整性** | 验证内核文本和模块签名 |
| **网络分析** | 检测隐藏的网络连接 |
| **文件系统** | 查找隐藏文件和 rootkit 痕迹 |
| **进程扫描器** | 识别进程镂空和隐藏 |
| **容器逃逸** | 检测容器突破尝试 |
| **APT 检测** | 针对国家级植入程序的签名 |
### 📊 签名数据库
- **280+ rootkit 签名** (Diamorphine, Reptile, Drovorub 等)
- **APT 植入检测** (Equation Group, Turla, Lazarus)
- **挖矿软件检测** (XMRig, TeamTNT 变种)
- **容器特定威胁** (Siloscape, cr8escape)
## 🚀 安装
```
# 克隆仓库
git clone https://github.com/bad-antics/rupurt
cd rupurt
# 从源码构建
make
# 全局安装
sudo make install
# 运行扫描
sudo rupurt --full
```
## 📖 使用
```
# 快速扫描(基础检查)
sudo rupurt --quick
# 完整系统扫描
sudo rupurt --full
# Paranoid 模式(所有内容)
sudo rupurt --paranoid
# 特定模块
sudo rupurt --syscall --ebpf --memory
# 用于 SIEM 集成的 JSON 输出
sudo rupurt --full --json > report.json
# 持续监控
sudo rupurt --monitor --interval 300
```
## 🔧 命令行选项
| 选项 | 描述 |
|--------|-------------|
| `--quick` | 快速基础检查 |
| `--full` | 完整系统扫描 |
| `--paranoid` | 最大检测灵敏度 |
| `--syscall` | Syscall 表分析 |
| `--ebpf` | eBPF 程序扫描器 |
| `--memory` | 内存取证 |
| `--kernel` | 内核完整性检查 |
| `--network` | 隐藏网络检测 |
| `--process` | 进程隐藏检测 |
| `--container` | 容器逃逸检测 |
| `--apt` | APT 植入签名 |
| `--json` | JSON 输出格式 |
| `--monitor` | 持续监控模式 |
| `--update` | 更新签名数据库 |
| `--verbose` | 详细输出,包含进程 ID、文件路径、哈希值和置信度分数 |
| `--output FILE` | 将详细报告写入文件 (支持 `.json`, `.csv`, `.txt`) |
| `--threshold N` | 最低置信度分数报告阈值 (0-100, 默认: 50) |
| `--whitelist FILE` | 白名单文件路径 — 跳过已知安全的进程/文件 |
| `--exclude PATH` | 从扫描中排除指定路径 |
| `--no-color` | 禁用彩色输出 (用于管道/日志) |
## 📊 详细报告
获取包含进程 ID、文件路径、哈希值和置信度分数的详细取证输出:
```
# 包含完整详情的详细扫描
sudo rupurt --full --verbose
# 保存详细 JSON 报告
sudo rupurt --full --verbose --output report.json
# 每个发现的 JSON 输出示例:
# {
# "id": "RUPURT-2024-0042",
# "module": "ebpf",
# "severity": "warning",
# "confidence": 72,
# "description": "可疑 eBPF 程序附加到 syscall",
# "process": { "pid": 1842, "name": "bpf_loader", "uid": 0 },
# "file": { "path": "/sys/fs/bpf/probe", "hash": "sha256:a1b2c3..." },
# "timestamp": "2026-02-23T10:15:30Z"
# }
```
## ⚠️ 误报处理
基于签名的检测可能会标记合法软件。以下是处理误报的方法:
### 调整灵敏度
```
# 降低灵敏度 — 仅报告高置信度发现 (75+)
sudo rupurt --full --threshold 75
# 提高灵敏度 — 捕获更多但预期会有更多误报
sudo rupurt --paranoid --threshold 25
```
### 将已知安全项加入白名单
创建白名单文件以跳过已知安全的进程和路径:
```
# 创建白名单
cat > /etc/rupurt/whitelist.conf << 'EOF'
# 格式:type:value
# 类型:process, path, hash, ebpf_id
# 已知安全的 eBPF 程序(监控工具)
ebpf_id:42
ebpf_id:43
# 看起来可疑但合法的系统进程
process:snapd
process:systemd-oomd
# 要排除的路径
path:/opt/monitoring-agent/
path:/snap/
# 已知安全的文件哈希
hash:sha256:abc123def456...
EOF
# 使用白名单运行
sudo rupurt --full --whitelist /etc/rupurt/whitelist.conf
```
### 单次扫描排除
```
# 排除特定路径
sudo rupurt --full --exclude /opt/my-monitoring --exclude /snap
# 结合阈值
sudo rupurt --full --threshold 70 --exclude /opt/security-tools
```
### 报告误报
如果遇到误报,请[提交 issue](https://github.com/bad-antics/rupurt/issues/new?labels=false-positive&template=false_positive.md) 并附上:
1. 该发现的 `--verbose --json` 输出
2. 被标记的进程/文件实际上是什么
3. 您的内核版本 (`uname -r`)
这有助于为所有人提高检测准确性。
## 🔍 置信度分数
每项发现都包含一个置信度分数 (0-100):
| 分数 | 级别 | 含义 |
|-------|-------|---------|
| 90-100 | 🔴 严重 | 几乎确定是恶意的 — 已知 rootkit 签名匹配 |
| 70-89 | 🟠 高 | 强烈指标 — 行为匹配 + 可疑属性 |
| 50-69 | 🟡 中 | 可疑 — 值得调查,可能是合法的 |
| 25-49 | 🔵 低 | 异常但可能是良性的 — 安全工具、调试器等 |
| 0-24 | ⚪ 信息 | 信息性 — 已记录但无需警报 |
默认阈值为 **50** (中及以上)。使用 `--threshold` 进行调整。
## 🎯 检测内容
### 内核 Rootkit
- Syscall 表修改
- IDT/GDT 挂钩
- 内核文本修改
- 隐藏的内核模块
- 恶意 eBPF 程序
### 用户空间威胁
- LD_PRELOAD 劫持
- 进程注入
- 共享库挂钩
- 隐藏进程
- 驻留内存的恶意软件
### 容器威胁
- 容器逃逸尝试
- 特权容器滥用
- cgroup 篡改
- Namespace 突破
### APT 植入程序
- Equation Group 工具
- Turla Snake/Uroburos
- Lazarus Group 恶意软件
- Winnti 后门
## 📁 输出示例
```
██████╗ ██╗ ██╗██████╗ ██╗ ██╗██████╗ ████████╗
██╔══██╗██║ ██║██╔══██╗██║ ██║██╔══██╗╚══██╔══╝
██████╔╝██║ ██║██████╔╝██║ ██║██████╔╝ ██║
██╔══██╗██║ ██║██╔═══╝ ██║ ██║██╔══██╗ ██║
██║ ██║╚██████╔╝██║ ╚██████╔╝██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝
☠️ Linux Rootkit Hunter v2.5.0
[*] Starting full system scan...
[+] Kernel: Linux 6.5.0-generic x86_64
[+] Scanning syscall table...
[+] Checking eBPF programs...
[!] WARNING: Suspicious eBPF program detected
Program ID: 42
Type: tracepoint
Attach: sys_enter_openat
[+] Memory analysis...
[+] Checking hidden processes...
[+] Network connection analysis...
[+] File system scan...
══════════════════════════════════════════════════════════════════
SCAN SUMMARY
══════════════════════════════════════════════════════════════════
Modules scanned: 15
Checks performed: 847
Warnings: 1
Critical: 0
Time elapsed: 12.4s
══════════════════════════════════════════════════════════════════
```
## 📜 许可证
MIT 许可证 - 详情请参阅 [LICENSE](LICENSE)。
Hunt the hunters.
标签:0day挖掘, APT检测, Bing搜索, DAST, DNS枚举, Docker镜像, eBPF安全, EDR, SecList, 内存取证, 内核安全, 内核模块监控, 子域名突变, 客户端加密, 客户端加密, 恶意软件分析, 构建工具, 特征库检测, 系统完整性监控, 网络安全工具, 脆弱性评估, 请求拦截, 防病毒