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, 可视化界面, 安全学习资源, 网络安全, 网络流量审计, 通知系统, 隐私保护