ctrlc03/the-konqueror-rust
GitHub: ctrlc03/the-konqueror-rust
一个用 Rust 编写的协作型红队 C2 框架,提供可插拔传输、单 implant 加密和灵活的 C2 profile 配置。
Stars: 0 | Forks: 0
# Konqueror
一个使用 Rust 编写的协作型命令与控制(C2)框架。
对[原始 Go 版本](https://github.com/ctrlc03/the-konqueror)的重写,重新设计了架构,支持可插拔的传输、针对单个 implant 的加密以及灵活的 C2 profile。
## 架构
```
Operator (CLI) <── REST + WS ──> Server <── WS ──> Listener <── HTTP/2 ──> Implant
```
- **Server** — 中央 teamserver。为 operator 提供 REST API,为 listener 提供 WebSocket 中继。管理状态、身份验证、任务和事件。
- **Client** — 用于与服务器交互的 Operator CLI。
- **Listener** — implant 与服务器之间的代理。接受基于可配置传输(HTTP、DNS、TCP、SMB)的 implant 连接,并通过 WebSocket 中继到服务器。
- **Implant** — 运行在目标机器上的 Agent。支持 beacon(轮询)和 session(交互)模式。
## 工作区
```
crates/
common/ Shared types, error handling, protocol definitions, crypto
storage/ Storage trait + implementations (in-memory, SQLite)
server/ Teamserver (axum REST API + WebSocket)
client/ Operator CLI
listener-http/ HTTP listener
implant/ Implant agent
```
## 构建
```
cargo build --workspace
```
### 构建 server
```
cargo run -p konqueror-server -- --address 127.0.0.1 --port 9002
```
## 关键设计决策
- **不使用 gRPC** — CRUD 使用 REST,推送使用 WebSocket。更简单,依赖更少,流量伪装效果更好。
- **可插拔存储** — 包含异步方法的 `Storage` trait。可将 SQLite 替换为 Postgres,或在测试中使用内存模式。
- **针对单个 implant 的加密** — 首次签入时进行 X25519 密钥交换,随后使用带有针对单个 implant 会话密钥的 AES-256-GCM + HMAC-SHA256。
- **灵活的 profile** — 基于 TOML 的 C2 profile 用于流量整形(转换 pipeline、自定义 header、URI 轮换)。
- **Feature-gated implant** — Cargo feature flag 决定哪些命令会被编译进 implant 二进制文件中。从而保持其体积小巧。
## 状态
开发中。阶段 1(基础建设)正在积极开发中。
## 许可证
MIT
标签:C2框架, IP 地址批量处理, Python安全, Rust, 可视化界面, 安全学习资源, 网络安全, 网络流量审计, 通知系统, 隐私保护