Ruka-afk/forgec2
GitHub: Ruka-afk/forgec2
一个纯 Go 构建的现代化红队 C2 框架,提供 Web UI 管理、多类型 Agent 生成、实时屏幕监控和文件操作等能力,专为授权安全测试设计。
Stars: 0 | Forks: 0
# ForgeC2
[English](./README.md) | [中文](./README.zh.md)
**专为授权红队行动打造的专业 Command & Control 框架**
ForgeC2 是一个现代化的、单二进制文件且对操作者友好的 C2 框架,完全使用纯 Go 语言构建。它具有精美的深色主题 Web 界面,两种 Agent 类型(原生 Windows EXE + PowerShell),实时屏幕流传输(无文件留存),按需截图(EXE 采用纯 Go 实现),文件操作以及稳健的任务管理——专为独立操作者和专业安全团队设计。
## 功能特性
- **精美的现代 Web UI**(端口 8080)—— 采用 Tailwind + HTMX 打造的深邃专业暗色主题
- **两种 Agent 类型**:
- 原生 Windows `.exe`(纯 Go,通过 ldflags 交叉编译)
- PowerShell `.ps1`(易于实现无文件化)
- **核心能力**:
- Shell 执行(cmd.exe / powershell.exe)
- 实时屏幕监控(基于流传输,无文件留存)
- 按需截图(EXE 采用纯 Go GDI 实现)
- 文件操作(列表、读取、删除、上传、下载)
- 进程列表、终止等
- 支持 **HTTPS**,并自动生成自签名证书
- 为每个生成的 Agent 提供**可配置的 TLS 验证**
- **单用户身份验证**,采用 bcrypt + JWT
- **SQLite + GORM**
- 针对 Task 和屏幕采用 **WebSocket 实时更新**
- **支持 Docker**
- **整洁的架构**,分离了 handler,提升了可维护性
### 近期改进
- 为 EXE Agent 实现了纯 Go 截图(无需依赖 PowerShell)
- 采用基于流传输的实时屏幕监控,取代了重复的截图任务
- 停止监控时自动清理占位任务
- 监控截图不留存于磁盘
- 统一了任务字段(Path/Data)
- 增强了审计日志
- 增加了文件传输大小限制
- 重构了 handler 并改进了 WebSocket 推送通知
## 快速开始
### 1. 构建与运行(推荐)
```
git clone https://github.com/Ruka-afk/forgec2.git
cd forgec2
go mod tidy
go run ./cmd/server
```
服务器将在 **http://0.0.0.0:8080** 上启动(可以在 config.yaml 中启用 TLS)
首次访问时,系统会提示您设置操作者密码。
### 2. 使用 Docker
```
docker-compose up --build
```
### 3. 访问 UI
在浏览器中打开 `http://your-server-ip:8080`(如果 tls_enabled: true,则使用 https)。在实验室环境中接受自签名证书警告。
使用您首次运行时设置的密码登录。
## 生成与部署 Agent
### Windows EXE
1. 进入 **Generate Agent** 页面
2. 自定义 C2 URL(使用您的公网 IP 或域名 + :8080)、间隔时间、抖动、User-Agent
3. (可选)启用基础持久化
4. 点击 **Generate & Download EXE**
5. 将 `forgec2_agent.exe` 传输到目标 Windows 机器并执行
### PowerShell
操作流程相同,下载的是一个 `.ps1` 文件。可以直接执行,或者通过 `powershell -ep bypass -f forgec2_agent.ps1` 运行
这两种 Agent 都支持相同的 beacon 协议和功能。
## 架构
```
graph TD
A[Web UI
Gin + Tailwind + HTMX] --> B[Internal Server] B --> C[Auth
JWT + bcrypt] B --> D[Agent API
/api/v1/beacon] B --> E[Task Queue
+ Results] B --> F[SQLite
via GORM] G[Windows EXE Agent] -->|HTTPS Beacon| D H[PowerShell Agent] -->|HTTPS Beacon| D D --> I[Task Dispatch
shell / file / stream] E --> J[Live Screen Stream
no file retention] F --> K[Models] ``` ``` ## Configuration Edit `config.yaml` (auto-created on first run): ```yaml server: port: 8080 host: 0.0.0.0 tls_enabled: false cert_file: data/server.crt key_file: data/server.key jwt_secret:
database:
path: data/db/forgec2.db
agent:
default_interval: 10
default_jitter: 20
# ...
```
在生成 Agent 期间,您可以选择针对自签名 C2 服务器跳过 TLS 验证。
## 测试完整流程(推荐的实验室流程)
1. 在您的攻击机(Kali / Windows / Docker)上启动 ForgeC2 服务器
2. 生成 Windows EXE 或 PS1
3. 将其复制到**您自己拥有的** Windows 10/11 虚拟机或测试主机上
4. 运行 Agent → 它应该在 10-30 秒内出现在 **Agents** 列表中
5. 点击 **DETAILS** → 发送 `whoami`、`ipconfig` 等命令
6. 使用 **Live Screen Monitor**(基于流传输,不保存文件)或请求按需截图
7. 检查 **Task History**(监控任务在停止后会自动清理)
8. 添加备注,测试完成后删除测试 Agent
## 法律免责声明(重要)
**本软件仅供授权的安全测试、红队演练和教育目的使用。**
- 在使用 ForgeC2 部署任何 Agent 或与任何系统进行交互之前,您必须获得系统所有者的**明确书面授权**。
- 在大多数司法管辖区,未经授权访问计算机系统属于刑事犯罪(例如美国的《计算机欺诈和滥用法》、英国的《计算机滥用法》等)。
- ForgeC2 的开发者和贡献者对使用本工具进行的任何滥用、损害或非法活动**不承担任何责任**。
- 一旦使用本软件,即表示您同意对自己的行为负全部责任,并将遵守所有适用的法律。
**如果您未获得授权——请勿使用此工具。**
## 商业 / 专业用途
ForgeC2 的设计注重职责分离(`cmd/`、`internal/server`、`internal/payload`、`internal/db`),使其易于扩展以下功能:
- Linux / macOS Agent
- 高级文件传输(分块/断点续传)
- EDR 规避模块
- 报告 / 导出功能
- 多用户支持
如需商业授权或定制开发,请联系作者。
## 路线图(社区版)
- [x] EXE Agent 纯 Go 截图
- [x] 基于流传输的实时屏幕监控(无文件留存)
- [x] 自动清理监控任务
- [x] 改进的 WebSocket 任务更新
- [ ] Linux 植入体
- [ ] 键盘记录模块
- [ ] 更好/分块的文件传输
- [ ] 增强的持久化选项
- [ ] 多用户 / RBAC 支持
## 许可证
本项目采用专为授权安全专业人员提供的自定义许可证。请参阅 `LICENSE`(或联系洽谈商业授权)。
**满怀 ❤️ 为红队社区打造。**
*ForgeC2 —— 铸造你的访问途径。掌控你的叙事权。*
Gin + Tailwind + HTMX] --> B[Internal Server] B --> C[Auth
JWT + bcrypt] B --> D[Agent API
/api/v1/beacon] B --> E[Task Queue
+ Results] B --> F[SQLite
via GORM] G[Windows EXE Agent] -->|HTTPS Beacon| D H[PowerShell Agent] -->|HTTPS Beacon| D D --> I[Task Dispatch
shell / file / stream] E --> J[Live Screen Stream
no file retention] F --> K[Models] ``` ``` ## Configuration Edit `config.yaml` (auto-created on first run): ```yaml server: port: 8080 host: 0.0.0.0 tls_enabled: false cert_file: data/server.crt key_file: data/server.key jwt_secret:
标签:AI合规, C2框架, Go, Ruby工具, TCP SYN 扫描, Web UI, XXE攻击, 后端开发, 安全学习资源, 安全监控, 日志审计, 网络信息收集, 请求拦截