Rust C2 Framework

3 months ago 5

Language Commit Bitbucket open issues GitHub GitHub Repo stars

现代化、安全、高性能的Command & Control解决方案 🦀,一个使用Rust语言从零重构的现代化命令与控制(C2)框架,旨在提供一个高性能、安全且模块化的平台,用于远程系统管理和渗透测试。该框架包含独立的客户端、服务端以及一个直观的Web管理界面。

  • 🔗 Linux平台支持: 客户端仅支持Linux操作系统,服务端支持Windows,Linux系统
  • 🔐 端到端加密通信: 采用AES-256-GCM加密算法,确保部分通信数据的机密性和完整性
  • 🌐 现代化Web管理界面: 基于Axum Web框架和Askama模板引擎,提供响应式用户体验
  • 高性能异步架构: 利用Tokio运行时构建,实现高效的并发处理和低延迟通信
  • 📝 灵活的配置管理: 通过TOML配置文件轻松调整各项参数,无需重新编译
  • 💻 实时命令执行: 支持远程执行系统命令,并即时获取执行结果,支持加密传输
  • 🖥️ 交互式反弹Shell: 提供稳定的反向Shell会话,实现对受控主机的深度交互
  • 📁 完整文件管理: 文件浏览、上传、下载、删除,支持大文件分块传输
  • 📊 实时客户端监控: 展示连接客户端的详细信息、活动状态和系统信息
  • 🔍 审计日志系统: 记录所有操作活动,支持日志分类和实时查看
  • 📝 笔记管理: 内置笔记系统,便于记录渗透测试过程和发现
  • 🛡️ 按需启动监听: 反弹Shell监听器按需启动,减少攻击面
  • 🔑 身份验证: Web界面用户认证和会话管理
  • 📋 操作审计: 完整的操作审计链,支持安全合规
  • 🔒 进程隐藏: 客户端进程隐藏技术
  • 🔍 抗逆向: 代码混淆和反调试技术
  • 📦 反沙箱: 沙箱环境检测和规避

本项目采用Cargo工作区管理,结构清晰,各模块职责明确:

rust-c2-framework/ ├── Cargo.toml # Workspace配置文件 ├── server_config.toml # 服务器配置文件 ├── common/ # 共享库(协议、加密、配置) ├── server/ # 服务端(Web界面、API、客户端管理) ├── client/ # 客户端(命令执行、文件操作、反弹Shell) └── web/static/ # 前端资源(CSS、JS、图片)

服务端配置 (server_config.toml)

# 服务器网络配置 host = "0.0.0.0" # 服务器监听地址 port = 8080 # Web服务端口 reverse_shell_port = 31229 # 反弹Shell专用端口 # 安全配置 encryption_key = "your-32-byte-secret-key-here!!!!" # AES-256密钥(必须32字节) # 客户端管理 client_timeout = 60 # 客户端超时时间(秒) max_clients = 1000 # 最大客户端连接数 # 日志配置 log_file = "c2_server.log" # 日志文件路径 enable_audit = true # 启用审计日志 # Web界面配置 [web] enabled = true # 启用Web界面 static_dir = "web/static" # 静态文件目录 template_dir = "server/templates" # 模板文件目录 enable_cors = true # 启用CORS refresh_interval = 5 # 自动刷新间隔(秒) # 身份验证配置 [auth] username = "Rust-Admin" # 登录用户名 password = "Passwd@RustC2" # 登录密码
# 安装Rust(如果尚未安装) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source ~/.cargo/env # 验证安装 rustc --version cargo --version
# 克隆项目 git clone https://github.com/waiwai24/rust-c2-framework cd rust-c2-framework # 编译整个工作区(推荐) cargo build --release # 或者分别编译各个组件 cargo build --release --bin server cargo build --release --bin client

编译后的二进制文件位于 target/release/ 目录下。

为了生成不依赖系统库的独立可执行文件:

# 添加musl目标 rustup target add x86_64-unknown-linux-musl # 静态编译 cargo build --release --target x86_64-unknown-linux-musl # 使用UPX压缩(可选) sudo apt-get install upx upx --best target/x86_64-unknown-linux-musl/release/server upx --best target/x86_64-unknown-linux-musl/release/client
# 使用cargo运行(开发环境) cargo run --bin server # 或直接运行二进制文件(生产环境) ./target/release/server

服务器启动后,访问 http://localhost:8080 进入Web管理界面。

默认登录凭据:

  • 用户名: Rust-Admin
  • 密码: Passwd@RustC2

确保加密密钥与服务器一致,启动客户端:

# 使用配置文件 cargo run --bin client # 或指定服务器地址 cargo run --bin client http://your-server-ip:8080 # 直接运行二进制文件 ./target/release/client

客户端云沙箱检测(测试时间:2025/7/14):

sandbox1 sandbox2

详细功能使用指南请参考 Function.md

  • ✅ 完整的C2框架实现
  • ✅ 反弹Shell功能(按需启动监听器)
  • ✅ 文件管理系统(上传/下载/浏览)
  • ✅ 实时Web界面
  • ✅ AES-256-GCM加密通信
  • ✅ 客户端状态监控
  • ✅ 审计日志系统
  • ✅ 笔记管理功能
  • ✅ WebSocket实时通信
  • ✅ 模块化前端设计
  • ✅ 响应式界面布局
  • Linux平台的完整测试需要进一步验证
  • 大文件传输的进度显示有待优化
  • 传输加密有待完善
  • Windows客户端支持
  • macOS客户端支持
  • Android客户端支持
  • 插件系统
  • 隧道功能

重要提醒: 本项目仅用于教育和研究目的。请勿将其用于任何非法或恶意活动。使用者需要承担使用本软件的全部责任。

  • ✅ 网络安全教育和培训
  • ✅ 渗透测试(已获得授权)
  • ✅ 红队演练(合规环境)
  • ❌ 未经授权的系统访问
  • ❌ 恶意软件传播
  • ❌ 违法犯罪活动

使用本工具前,请确保:

  1. 获得目标系统所有者的明确授权
  2. 遵守当地法律法规
  3. 仅在合法合规的环境中使用
  4. 承担相应的法律责任

本项目采用 MIT 许可证。详细信息请参见 LICENSE 文件。

Star History Chart

Read Entire Article