aelder202/sable

GitHub: aelder202/sable

一款 Go 语言编写的开源 C2 框架,通过 HTTPS 和 DNS 双通道实现 agent 管理与任务下发,提供 Web UI 和 CLI 双操作界面。

Stars: 2 | Forks: 0

Sable

开源 C2

Go | HTTPS + DNS 传输 | Web UI + CLI

Sable 是一个用 Go 编写的 C2。服务器通过 HTTPS 接收来自 agent 的加密 beacon,并以 DNS 作为备用方式,同时提供浏览器控制台和交互式 CLI 用于下发任务。 ## 界面预览 在本地回环 HTTPS 上受密码保护的操作员控制台: ![Sable 登录界面](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4a337823e9162634.png) 包含命令输出、Task Builder 和完整操作菜单的活动会话视图: ![包含活动会话的 Sable Web 控制台](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e0e20e1c84162635.png) 跨选定会话的批量任务下发: ![跨 Linux 和 Windows 会话的 Sable 批量任务下发](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f1ec27e8ad162637.png) 用于查看任务、Artifacts、笔记和审计历史的会话详情侧边栏: ![包含 artifacts、jobs、notes 和 audit 面板的会话详情](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d066b11635162638.png) 用于选择下载路径的远程文件浏览器: ![下载文件浏览器模态框](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/994e2b8c73162639.png) ## 授权使用 Sable 仅供教育用途、受控实验室、CTF、自有系统,以及您持有书面授权的测试项目使用。请勿将其部署到您不拥有或未获得明确测试许可的系统上。作者对滥用行为不承担任何责任。 ## 系统架构 ``` flowchart LR A["Agent
statically compiled
ldflags-configured
"] O["Operator
Web UI / CLI"] S["Sable Server
:443 HTTPS · :53/udp DNS
127.0.0.1:8443 API + Web UI
"] A -->|HTTPS beacons :443| S A -.->|DNS fallback :53/udp| S O -->|loopback :8443| S ``` 有关加密细节、网络端口和项目布局,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 前置条件 - Go 1.26.2 或更高版本(与 `go.mod` 匹配) - `make`(Linux、macOS 或 Windows;PowerShell 或 cmd) - 如果绑定 `443`(以及在开启 DNS 备用时绑定 `53`),在服务器主机上需要 Root/管理员权限 Agent 通过 `GOOS`/`GOARCH` 进行交叉编译,因此您可以从任何主机操作系统进行构建。 ## 快速入门 ### 1. 克隆 ``` git clone https://github.com/aelder202/sable cd sable ``` 模块在首次构建时拉取。如果您想预热缓存,可以运行 `go mod download`。 ### 2. 安装 构建统一辅助工具,然后让其创建本地配置、TLS 证书、服务器二进制文件、选定的 agent 二进制文件以及 `.sable/install.json` 清单。 ``` make sablectl ./sablectl install --url https://:443 --password-file ./pw.txt ``` `--password-file` 是可选的但建议使用:提供后,`install` 会创建该文件(如果尚不存在则使用随机密码),并在 `.sable/install.json` 中记录其路径。`sablectl start` 和 `sablectl agent register` 会自动复用该路径,因此您无需在每次命令时重新输入 `--password-file`。 要构建具有独立身份的 Linux 和 Windows agent: ``` ./sablectl install --url https://:443 --password-file ./pw.txt --agents both --windows-label win01 ``` `SERVER_URL` 是 agent 回连的地址,而不是操作员 UI 的地址。`sablectl install` 会写入 `config.env`、`server.crt`、`server.key`、`.sable/install.json`,并在 `builds/
标签:C2框架, CTF安全, DNS隧道, EVTX分析, Go语言, HTTPS通信, TCP SYN 扫描, Web UI, 代理控制, 命令与控制, 命令行界面, 安全学习资源, 安全测试, 底层编程, 开源安全工具, 攻击性安全, 日志审计, 流量加密, 程序破解, 网络信息收集, 网络安全, 网络安全实验, 远程管理, 逆向工程平台, 隐私保护