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 —— 铸造你的访问途径。掌控你的叙事权。*
标签:AI合规, C2框架, Go, Ruby工具, TCP SYN 扫描, Web UI, XXE攻击, 后端开发, 安全学习资源, 安全监控, 日志审计, 网络信息收集, 请求拦截