A C2 client for telegram bot by bamuwe
注意: 生产环境需要修改
api.rs
中的配置内容
- Telegram Bot 集成: 通过 Telegram Bot API 进行远程控制,不依赖于vps
- 文件管理: 支持文件上传、下载和管理
- 命令执行: 远程执行系统命令
- 注入功能: 支持 DLL 注入和代码注入
- 屏幕监控: 实时屏幕截图和监控
- 信息收集: 系统信息、网络信息收集
- 安全特性: API 混淆、证书验证、反检测
topic_init
: 智能 Topic 管理,支持现有 Topic 查找和复用command
: 命令处理主循环,支持命令去重和状态管理extract_file_id_from_topic
: 文件 ID 提取,支持 inject 和普通文件区分
tg_tools
: Telegram 工具函数集合inject_self
: 注入功能实现match_command
: Bot 命令匹配和处理screen_watch
: 屏幕监控功能info_collect_use
: 信息收集工具
- 异步编程: 基于
tokio
的异步架构 - HTTP 客户端: 使用
reqwest
进行 API 调用 - JSON 处理:
serde_json
进行数据序列化 - Windows API:
winapi
进行系统级操作 - 代码混淆:
obfstr
进行字符串混淆 - 字符编码:
encoding_rs
处理多语言字符
项目已配置 release 编译优化选项,显著减小可执行文件体积:
[profile.release]
opt-level = "z" # 大小优化
lto = true # 链接时优化
codegen-units = 1 # 代码生成单元优化
panic = "abort" # panic 优化
strip = true # 符号表移除
debug = false # 调试信息禁用
- ✅ 修复 inject 重复执行问题
- ✅ 优化命令处理逻辑,防止命令重复执行
- ✅ 改进文件下载处理流程
- ✅ 添加 beacon 重连检测和状态重置
- ✅ 添加 inject 功能支持
- ✅ 实现 DLL 注入和代码注入
- ✅ 完善错误处理和日志记录
- ✅ 重构代码结构,统一 API 管理
- ✅ 实现基础 C2 功能
- ✅ 添加文件上传下载功能
- ✅ 集成 Telegram Bot API
根据 Git 提交记录,项目经历了以下重要阶段:
- 2025-05-16: 项目初始化,实现基础 C2 客户端功能
- 2025-05-17: 添加文件上传功能,集成 Telegram Bot API
- 2025-05-17: 移除 SDK 依赖,优化项目结构
- 2025-05-18: 添加 TgTools 函数,实现消息发送功能
- 2025-05-18: 修复命令接收问题,添加命令过滤功能
- 2025-05-18: 实现 setting_info 模型,帮助用户了解配置
- 2025-05-18: 添加屏幕监控和截图功能
- 2025-05-18: 重构静态变量和全局变量,统一到 api.rs 中
- 2025-05-18: 混淆 API 接口,静态反编译已无法看到 API URL
- 2025-05-18: 添加 CA 证书支持,增强 HTTPS 安全性
- 2025-05-18: 代码格式化和结构优化
- 2025-05-20: 修复 command 执行命令阻塞的问题
- 2025-05-20: 删除上传后的本地文件,优化存储管理
- 2025-05-20: 移除测试函数,清理代码
- 2025-08-19: 发布 v1.1 版本,完善功能模块
- 2025-08-21: 添加 inject 功能,支持 DLL 注入和代码注入
- 2025-08-21: 修复 inject 重复执行问题
- 2025-08-21: 发布 v0.1.2 版本,优化性能和稳定性
- 屏幕监控功能完善
- 网络环境错误处理优化
- 进一步体积优化和代码缩减
- 实现
getForumTopics
接口集成 - 添加更多反检测机制
- 性能监控和日志系统
- 修改api.rs中的接口,使用base64编码
- 编译程序
# 开发版本
cargo build
# 优化版本 (推荐)
cargo build --release
# 运行
cargo run --release
- tg机器人配置
/screen_shot
- 获取屏幕截图/info_collect
- 信息收集/upload
- 上传文件,没有错误回显,格式遵循/upload <file_path>/set_sleep_time
- 设置睡眠时间,默认为5s/setting_info
- 配置信息/run_dll
- 运行指定的dll函数,格式遵循 /run_dll <dll_name> <func_name>/disconnect
- 退出程序- etc ...
本项目仅供学习和研究使用,请遵守相关法律法规。
欢迎提交 Issue 和 Pull Request 来改进项目,这只是一个摸索的demo,帮助我了解C2开发基本原理和练习rust语法。
因为缺乏项目开发经验,后续维护需要大幅度的重构,所以很长一段时间应该不会更新,要计划找工作了。
Tron(TRC20): TXUJBkjcvduUwS9gpi9xS1g2SKGtNFTWif
作者: bamuwe
版本: 0.1.3
最后更新: 2025年08月21日