ToShell Team Server:单二进制部署的自托管 C2 框架
在授权红队演练和渗透测试工作中,一套稳定、轻量且功能完整的 C2(命令与控制)框架往往是效率的分水岭。商业方案价格高昂,不少开源项目又存在部署繁琐、平台覆盖不全的问题。ToShell Team Server 是近期值得关注的自托管 C2 远程管理平台:服务端、Web 控制台与多平台植入端三位一体,编译产出的单个二进制文件即可跑起整套服务,覆盖「生成载荷 → 会话管理 → 任务执行」的完整链路。
ToShell 当前版本为 v1.3.1,采用 MIT 协议开源,由青山、Q1lintu、c0ffee 三位开发者维护。项目明确定位为授权红队演练、渗透测试与安全研究用途,本文将从功能、部署到应用场景做一次完整梳理。

ToShell 是什么:轻量 C2 框架的产品定位
ToShell 的架构可以拆成三块:Team Server(服务端)、Web 控制台和植入端(Implant)。服务端负责监听回连、生成载荷并提供 REST API;Web 控制台是浏览器里的管理界面,会话、文件、任务、插件都在里面操作;植入端则由服务端按需生成,运行在目标主机上回连。
与动辄需要数据库、消息队列、前后端分离部署的同类框架不同,ToShell 把整套服务压缩进一个可执行文件,首次启动自动创建 SQLite 数据库,不依赖任何外部服务。对需要快速搭建演练环境的红队来说,这种「开箱即用」的自托管 C2 方案能省掉大量基建时间。
核心功能:从多通道回连到 AI 副驾驶
多通道、多平台植入端
回连通道支持 TCP / HTTP(S) / WebSocket / MQTT 四种,可配合域前置与 TLS 拟态使用。植入端覆盖 Windows、Linux、macOS 三大平台,输出格式包括 exe / dll / raw / shellcode,并提供 full / light 两种档案;模板锁定 Go 1.20 工具链编译,兼容 Windows 7 等老系统。
全功能会话操作
会话能力是 C2 框架的基本盘,ToShell 在这一块给得比较全:
- 交互式 Shell(独立标签页,动态交互);
- 目录与文件管理:上传、下载、删除、在线预览,支持断点续传;
- 进程枚举、注入与结束;
- 截图、实时屏幕流、凭据收集、UAC 提权、持久化、文件无执行;
- BOF / DLL / EXE 插件扩展。


组网与隧道
内网横向场景下,ToShell 提供 Beacon Mesh 多跳中继与 SOCKS5 隧道代理,中继链路本身也做了加密,可以把无法直接出网的内网主机纳入会话体系。
任务流与 AI 副驾驶
这是 ToShell 区别于传统 C2 框架的一块亮点:
- 任务流 / 剧本化执行:模板可编辑,跑完后自动由 AI 生成复盘;
- AI 副驾驶:支持联网搜索、远程下载工具、按用途进行插件或内存加载,并对结果给出分析与下一步建议;涉及会话影响的操作走权限审批,需人工确认;
- 自主 Agent:异步执行不阻塞对话,SSE 流式输出思考过程,具备连续上下文记忆,可完成自主提权与横向闭环,失败后自动恢复,最终只输出结论与建议。

免杀与隐蔽、加密通信
构建层面,每次生成的载荷都会随机化配置块魔数与密钥、字符串密钥和 API 哈希种子,配合编译期字符串混淆、apihash / PEB 动态解析、反沙箱与启动随机延迟,进程注入时随机选择良性宿主。通信层面,控制帧使用 AES-256-GCM 认证加密,隧道数据采用国密 SM4-GCM(自研实现),密钥做了域分离,且多数配置支持热更新。


技术优势:为什么这套自托管 C2 值得关注
把功能点拆开看,ToShell 的工程取舍有几个明显的优点:
| 维度 | ToShell 的做法 | 带来的收益 |
|---|---|---|
| 部署形态 | 单二进制 + 内嵌 SQLite | 无外部依赖,拷贝即运行 |
| 平台覆盖 | 三平台植入端 + Go 1.20 工具链 | 兼容 Win7 等老旧系统 |
| 通道能力 | TCP / HTTP(S) / WebSocket / MQTT | 适应不同网络 egress 策略 |
| 传输安全 | AES-256-GCM + SM4-GCM 双栈 | 控制与隧道密钥分离 |
| 自动化 | 任务流模板 + AI 副驾驶 + 自主 Agent | 降低重复操作与复盘成本 |
| 运维体验 | 配置热更新、发行版内置 UPX | 改配置不必重启服务 |
文件管理体验也值得一提:上传、下载之外支持在线预览与断点续传,大文件传输中断后不必从头再来。

部署教程:ToShell 安装与快速上手
环境依赖
基础运行只需要 Go,其余依赖按功能按需安装:
| 用途 | 依赖 | 说明 |
|---|---|---|
| 构建 / 运行服务端 | Go ≥ 1.25(go.mod 为 go 1.25.0) | 必需,服务端与植入端都用它编译 |
| 源码构建时嵌入 Web 界面 | Node.js ≥ 20 + npm | 仅源码构建且带前端时使用 -tags webui,发行版自带前端可跳过 |
| 构建 C 植入端(体积极小) | mingw-w64 gcc(x86_64-w64-mingw32-gcc) | 仅生成 C 植入端时需要 |
| 字符串混淆(可选) | garble | 未安装则候选载荷自动禁用混淆 |
| UPX 压缩(可选) | UPX | 发行版 upx/ 目录已内置,自动探测 |
服务端用当前 Go 版本编译;植入端模板锁定 go1.20 工具链,构建时自动下载对应版本,无需手动安装。
安装步骤
Windows 环境:
# 1) 安装 Go(下载安装包或 winget)
winget install GoLang.Go
# 2) (可选,C 植入端)安装 MSYS2,并在其中安装 mingw-w64 工具链
# MSYS2 安装后执行: pacman -S mingw-w64-x86_64-gcc
# 3) (可选,字符串混淆)
go install mvdan.cc/garble@latest
Linux / macOS 环境:
# Debian/Ubuntu / macOS (Homebrew)
sudo apt install -y golang-go # Linux
# brew install go # macOS
# (可选,C 植入端)mingw-w64
sudo apt install -y gcc-mingw-w64-x86-64 # Linux
# brew install mingw-w64 # macOS
# (可选,字符串混淆)
go install mvdan.cc/garble@latest
装完后执行 go version 确认版本不低于 1.25;国内网络环境建议把 go env GOPROXY 设为镜像(如 https://goproxy.cn,direct)加速依赖下载。
一键部署(推荐)
cd release && chmod +x deploy.sh && ./deploy.sh # Linux / macOS
# Windows: 在 release 目录双击 deploy.bat
首次运行会基于 server.yaml.example 自动生成配置,启动前先把敏感项改掉,完整说明见仓库的 USAGE.md。
默认启动方式
服务端是单一可执行文件,不需要注册任何系统服务:
# Linux / macOS
./toserver -config configs/server.yaml
# Windows
toserver.exe -config configs\server.yaml
启动后在浏览器打开 http://<服务器IP>:18081(server.api_port,默认 18081)即可进入 Web 控制台。首次启动会自动创建 SQLite 数据库 ./data/toshell.db;不传 -config 时默认加载 ./configs/server.yaml。
从源码构建
# 在项目根目录,构建服务端(嵌入已构建的 Web 前端需先 npm run build)
go build -tags webui -ldflags "-s -w" -o toserver ./cmd/server
只想要纯 API、不带 Web 控制台的后端,去掉 -tags webui 即可。
生成植入端与配置要点
登录 Web 控制台后进入「生成载荷」,选择平台、通道与免杀配置,点击构建,将产物投递到演练目标机运行即回连。「启动随机延迟」等默认参数可在「设置 → 植入端」中配置,构建时自动取全局默认值。
配置文件由 configs/server.yaml.example 复制而来,需要重点修改 public_host、api_keys、jwt_key、encryption_key、admin_password 这几项;更多字段说明见 USAGE.md。设置页支持多数配置热更新,无需重启服务。
应用场景
- 授权红队演练:多通道回连、Mesh 中继与 SOCKS5 隧道适合模拟真实攻击路径,检验蓝队检测与响应能力;
- 渗透测试项目:单二进制部署 + Web 控制台,测试人员在现场环境几分钟内即可拉起基础设施;
- 安全研究与教学:MIT 开源、Go 语言实现,通信协议、加密与插件机制都可读可改,适合作为 C2 架构研究样本;
- 防守方检测验证:借助其免杀与隐蔽特性生成样本,用于验证 EDR、杀软与流量检测规则的有效性。
总结
ToShell Team Server 把「自托管 C2 框架」这件事做得足够轻:一个二进制跑起服务端,浏览器完成全部操作,三平台植入端、四种回连通道、Mesh 组网、国密加密通信,再加上任务流与 AI 副驾驶带来的自动化能力,对红队演练和渗透测试场景是一套完成度很高的开源方案。项目以 MIT 协议发布,v1.3.1 版本的部署文档和功能细节可在 GitHub 仓库(iQingshan/Toshell)的 README 与 USAGE.md 中查阅,有需要的团队可以直接拉取 release 部署试用。