yasindce1998/Aegis-Shadow
GitHub: yasindce1998/Aegis-Shadow
一个基于 Rust 和 eBPF 的 Linux 内核安全研究框架,同时展示 rootkit 攻击技术和运行时防御检测能力。
Stars: 0 | Forks: 0

[](LICENSE)
[](https://www.rust-lang.org/)
[](https://ebpf.io/)
[](https://www.kernel.org/)
## 概述
Aegis-Shadow 是一个教育性研究项目,展示了 Linux eBPF 技术在攻击和防御方面的应用。它由两个模块组成:
- **Shadow** (攻击):一个基于 eBPF 的 rootkit,包含 23 项功能,涵盖进程隐藏、
基于 XDP 的 C2(采用 ChaCha20 加密和 HMAC 认证)、文件混淆、
凭据收集、DNS 数据外传、ICMP 隐蔽通道、网络 namespace 隐藏、
eBPF 程序伪装、容器逃逸探测以及反取证字节码擦除。
- **Aegis** (防御):一个运行时检测引擎,包含 14 个基于 eBPF 的检测模块,
以及智能用户空间分析,包括异常评分、攻击链关联、基于校准的基线、
恶意程序自动分离、进程隔离、蜜罐映射以及支持热重载的配置。
## 警告
**本项目仅供教育和研究目的使用。**
- 所有的开发和测试必须在隔离的虚拟机中进行。
- 严禁在生产系统、共享网络或非本人所有的系统上运行攻击模块。
- 测试期间,虚拟机必须使用仅主机网络适配器。
- 请勿分发已编译的 rootkit 二进制文件。
## 环境要求
- **宿主机**:macOS/Linux,配备 UTM、QEMU 或 VirtualBox
- **客户机虚拟机**:Ubuntu 24.04 LTS,Linux Kernel 6.8+
- **Rust**:Nightly 工具链
- **工具**:bpf-linker、bpftool、clang、llvm、libelf-dev
## 快速开始
```
# 设置 VM 并验证环境
bash verify-env.sh
# 构建所有内容
make build
# 启动 offensive rootkit(加载全部 23 个功能)
sudo ./target/release/offense --iface eth0 --hide-pid 1234
# 运行 defense 检测(在另一个终端中)
sudo ./target/release/defense --all-modules --verbose
# 停止程序
# 在每个终端中按下 Ctrl+C,或者:
sudo pkill offense
sudo pkill defense
```
## 项目结构
| 目录 | 用途 |
|---|---|
| `common/` | 共享的数据结构和常量 (`#![no_std]`) |
| `offense-ebpf/` | 内核空间 rootkit eBPF 程序(23 项功能) |
| `offense/` | 用户空间 rootkit 加载器和 CLI |
| `defense-ebpf/` | 内核空间防御性 eBPF 探测器(11 个探测器) |
| `defense/` | 用户空间检测引擎和 CLI |
| `xtask/` | 构建自动化 |
| `integration-tests/` | 攻防对抗测试套件 |
## 使用方法
### 攻击 (Rootkit)
攻击模块在启动时会自动加载 13 个核心 rootkit 功能。其他功能通过标志启用:
```
# 基本用法 - 加载核心功能
sudo ./target/release/offense --iface eth0
# 启用扩展功能
sudo ./target/release/offense \
--iface eth0 \
--hide-pid 1234 \
--obfuscate-inode 98765 \
--monitor-tty 136:0 \
--pin-maps \
--enable-icmp-exfil \
--enable-container-probe
```
**可用标志:**
| 标志 | 描述 |
|---|---|
| `--iface 标签:Docker镜像, IP 地址批量处理, Linux内核, Rootkit, Rust, Zeek, 可视化界面, 安全渗透, 网络流量审计, 运行时审计, 通知系统