Su1ph3r/Cepheus
GitHub: Su1ph3r/Cepheus
容器逃逸场景建模工具,通过枚举容器安全态势并与已知逃逸技术匹配,生成攻击链和修复建议。
Stars: 0 | Forks: 1
# Cepheus
**容器逃逸场景建模器** — 枚举容器安全态势并建模现实的逃逸路径,包含排序的攻击链、定制的 PoC 命令和可操作的修复建议。
[](https://www.python.org/downloads/)
[](LICENSE)
[](#testing)
## 什么是 Cepheus?
Cepheus 是一个双组件的容器安全工具,回答一个问题:**"攻击者能否逃逸这个容器,如何实现?"**
1. **枚举器** — 一个零依赖的 POSIX shell 脚本,可在任何容器内运行,并将完整的安全态势转储为 JSON(capabilities、挂载、内核版本、seccomp、AppArmor、namespace、cgroup、凭证、网络配置、Kubernetes 元数据、运行时版本、可写路径和可用工具)。
2. **分析引擎** — 一个 Python CLI,接收枚举器的 JSON 输出,将发现映射到跨越 6 个类别的 **65 种已知逃逸技术**,构建单步和多步攻击链,生成定制的 PoC 命令,按可靠性和隐蔽性对每个链进行评分,并生成优先修复指导。包括 GPU/NVIDIA 设备检测、sandbox 运行时检测(gVisor、Firecracker、Kata)和执行摘要生成。
以星座 Cepheus 命名——这位守护天堂的国王——它守护着容器边界。
## 为什么选择 Cepheus?
| 功能 | deepce | CDK | amicontained | BOtB | Cepheus |
|---|:---:|:---:|:---:|:---:|:---:|
| Capability 枚举 | 部分 | 是 | 是 | 部分 | **完整** |
| 内核 CVE 关联 | - | - | - | - | **21 个 CVE** |
| 运行时版本检测 | - | 部分 | - | - | **是** |
| 组合链分析 | - | - | - | - | **21 种组合** |
| 逃逸路径评分 | - | - | - | - | **加权** |
| PoC 生成 | - | 部分 | - | 部分 | **全部 65 个** |
| 防御枚举 | - | - | 部分 | - | **完整** |
| 2024-2025 CVE | - | - | - | - | **是** |
| 隐蔽性评分 | - | - | - | - | **是** |
| 多步链构建 | - | - | - | - | **是** |
| LLM 增强 | - | - | - | - | **可选** |
| 零依赖枚举器 | - | Go 二进制 | Go 二进制 | Go 二进制 | **POSIX shell** |
## 快速开始
### 安装
```
# 来自源代码
git clone https://github.com/su1ph3r/Cepheus.git
cd Cepheus
pip install -e .
# 支持 LLM
pip install -e ".[llm]"
# 支持 HTML 报告
pip install -e ".[html]"
```
### 枚举容器
```
# 将枚举器复制到运行中的容器中并执行
docker cp enumerator/cepheus-enum.sh mycontainer:/tmp/
docker exec mycontainer sh /tmp/cepheus-enum.sh > posture.json
# 或使用内置的枚举命令
cepheus enumerate --container-id mycontainer --runtime docker -o posture.json
```
### 分析逃逸路径
```
# 完整分析并输出到终端
cepheus analyze posture.json
# 按严重程度筛选
cepheus analyze posture.json --min-severity high
# JSON 输出用于自动化
cepheus analyze posture.json --format json -o report.json
# MITRE ATT&CK Navigator 图层导出
cepheus analyze posture.json --format mitre -o layer.json
# 自包含 HTML 报告
cepheus analyze posture.json --format html -o report.html
# 支持 LLM 的新型模式分析
cepheus analyze posture.json --llm
```
### 比较态势(差异)
```
# 比较加固前后的差异
cepheus diff before.json after.json
# JSON 输出
cepheus diff before.json after.json --format json -o delta.json
```
### 浏览技术
```
# 列出所有 65 种技术
cepheus techniques
# 按类别筛选
cepheus techniques --category capability
cepheus techniques --category kernel
# 搜索
cepheus techniques --search "sys_admin"
cepheus techniques --severity critical
```
## 技术覆盖
Cepheus 覆盖跨越 6 个类别的 **65 种逃逸技术**:
### 基于 Capability 的(9 种)
利用 Linux capability 的逃逸:`CAP_SYS_ADMIN` 挂载/cgroup/BPF 攻击、`CAP_SYS_PTRACE` 进程注入、`CAP_DAC_READ_SEARCH` 和 `CAP_DAC_OVERRIDE` 用于绕过文件权限、`CAP_NET_ADMIN` 网络命名空间操作、`CAP_SYS_RAWIO` 原始设备 I/O,以及 eBPF `bpf_probe_write_user` 内核内存操作。
### 基于挂载的(15 种)
Docker socket 挂载、containerd 和 CRI-O socket 挂载、`/proc/sys/kernel/core_pattern` 写入、`/proc/sysrq-trigger` 滥用、sysfs exploit、可写主机路径挂载(`/etc`、`/`)、cgroup 文件系统逃逸、`/dev` 设备访问、systemd cgroup v1 注入、共享 `/dev/shm` 跨容器数据泄露、`/proc/self/fd` 符号链接遍历、device-mapper 直接访问,以及 `/proc/sys/vm` 参数操作。
### 基于内核 CVE 的(17 种)
- **CVE-2022-0185** — FSConfig 堆溢出(5.1–5.16.2)
- **CVE-2022-0847** — DirtyPipe(5.8–5.16.11)
- **CVE-2021-22555** — Netfilter 堆越界写入(2.6.19–5.12)
- **CVE-2022-2588** — route4 释放后使用(< 5.19.2)
- **CVE-2023-0386** — OverlayFS 权限提升(5.11–6.2)
- **CVE-2023-32233** — nf_tables 释放后使用(< 6.4)
- **CVE-2024-1086** — nf_tables 双重释放(3.15–6.8)
- **CVE-2021-31440** — eBPF 验证器绕过
- **CVE-2022-23222** — eBPF 类型混淆
- **CVE-2024-21626** — runc process.cwd 容器突破
- **CVE-2024-53104** — USB Video Class 越界写入
- **CVE-2025-21756** — vsock 释放后使用
- **CVE-2024-23651** — BuildKit 挂载缓存竞态条件
- **CVE-2024-23652** — BuildKit 任意主机文件删除
- **CVE-2024-23653** — BuildKit 权限检查绕过
- **CVE-2024-24557** — runc 镜像构建缓存投毒
- **CVE-2024-23650** — BuildKit 守护进程通过恶意 gRPC 崩溃
### 运行时/编排器(14 种)
Kubernetes service account 滥用、kubelet API 访问、etcd 直接访问、未认证的 Docker API、containerd shim 逃逸、runc `/proc/self/exe` 覆盖(CVE-2019-5736)、云元数据 SSRF、kubelet node 代理、AppArmor 非限制配置文件检测、SELinux 禁用/非限制检测、NVIDIA Container Toolkit 设备访问(CVE-2024-0132)、NVIDIA 设备挂载逃逸(CVE-2024-0133)、IngressNightmare 未认证 RCE(CVE-2025-1974)和 Docker Desktop 文件共享逃逸(CVE-2025-3224)。
### 组合式(6 种)
多先决条件链:`SYS_ADMIN + no seccomp`、`privileged + docker.sock`、`NET_
标签:AppArmor, Bing搜索, cgroups, Chrome Headless, Cloudflare, Cutter, CVE关联, DNS 反向解析, Firecracker, GitHub Advanced Security, GPU安全, gVisor, Kata容器, Kubernetes安全, MITRE ATT&CK, PoC生成, seccomp, Shell脚本, Web截图, Web报告查看器, 内核漏洞, 反取证, 命名空间, 威胁建模, 子域名突变, 安全加固, 安全评估, 安全运营, 容器安全, 容器枚举, 容器逃逸, 扫描框架, 插件系统, 攻击链分析, 无线安全, 沙箱检测, 特权容器, 网络安全, 网络安全审计, 能力枚举, 请求拦截, 逆向工具, 防守方工具, 隐私保护, 风险评分