BroJustLeaveMeAlone/DungeonMaster-C2
GitHub: BroJustLeaveMeAlone/DungeonMaster-C2
一款专为授权红队行动设计的模块化开源 C2 框架,集成 AI 副驾驶以辅助战术决策与团队协作。
Stars: 0 | Forks: 0
# 地下城主 (DM)
一个模块化、操作人员优先的命令与控制(C2)框架,专为授权的红队行动而构建。DungeonMaster 为整个团队提供对每个 session、任务和规避事件的实时可见性——并配备了一名 AI 副驾驶,能够基于实时的目标上下文建议下一个 TTP。
## 架构
```
┌─────────────┐ HTTPS (TLS 1.3) ┌──────────────────────────────────────┐
│ DM Agent │ ──────────────────────► │ DM Server (Go) │
│ (Rust) │ ◄────────────────────── │ ┌─────────┐ ┌────────┐ ┌──────┐ │
└─────────────┘ poll / task output │ │ C2 API │ │ REST │ │ gRPC │ │
│ └────┬────┘ └───┬────┘ └──┬───┘ │
┌─────────────┐ SSE / REST │ └───────────┴──────────┘ │
│ Operator │ ──────────────────────► │ session mgr · collab bus │
│ UI (React) │ ◄────────────────────── │ PostgreSQL · Redis · MinIO │
└─────────────┘ live event stream └──────────────────┬───────────────────┘
│ gRPC
┌─────────────┐ ┌────────▼────────┐
│ Redirector │ ── filters + forwards ──► │ AI Engine │
│ (nginx) │ │ (FastAPI) │
└─────────────┘ │ TTP ranker │
│ Claude API │
└─────────────────┘
```
## 组件
| 组件 | 技术栈 | 功能描述 |
|-----------|-------|-------------|
| `server/` | Go 1.22 | REST + gRPC 操作 API、C2 监听器、session 生命周期、协作总线 |
| `agent/` | Rust (兼容 no_std) | 植入体:ECDH 密钥交换、AES-GCM 任务加密、HTTPS 通道(DNS/SMB:第二阶段) |
| `ai/` | Python / FastAPI | TTP 建议引擎、规避顾问、报告生成器(Claude API) |
| `ui/` | React + TypeScript | 操作控制台:session 列表、xterm.js shell、实时事件订阅源、MITRE 热力图 |
| `redirector/` | nginx | 流量过滤、域前置支持、agent 回调转发 |
## 前置条件
```
winget install GoLang.Go # Go 1.22+
winget install Rustlang.Rustup # then: rustup target add x86_64-pc-windows-gnu
winget install Docker.DockerDesktop
winget install Google.Protobuf # for Phase 2 gRPC codegen
```
## 快速开始
**1. 启动整个技术栈**
```
cd DungeonMaster-C2
docker-compose up
```
这将启动 PostgreSQL (TimescaleDB)、Redis、MinIO、DM server、AI 引擎和 UI。
**2. 验证 server**
```
GET http://localhost:8080/api/v1/campaigns # requires JWT
```
**3. 构建 UI(开发模式)**
```
cd ui
npm install
npm run dev # → http://localhost:5173
```
**4. 构建 agent**
```
cd agent
cargo build --release --target x86_64-pc-windows-gnu
```
## 配置
所有运行时配置均由环境变量驱动。以下是关键配置:
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `DM_DB_DSN` | `postgres://dm:dm@localhost:5432/dm` | PostgreSQL 连接字符串 |
| `DM_REDIS_ADDR` | `localhost:6379` | Redis 地址 |
| `DM_JWT_SECRET` | *(必填 — 无默认值)* | 生成命令:`openssl rand -hex 32` |
| `DM_HTTP_ADDR` | `:8080` | 操作 REST API + UI |
| `DM_GRPC_ADDR` | `:50051` | gRPC 服务端口 |
| `DM_C2_ADDR` | `:4443` | C2 监听器(agent 回调,TLS) |
| `DM_TLS_CERT` / `DM_TLS_KEY` | `tls/server.crt/.key` | C2 监听器的 TLS 证书 |
| `ANTHROPIC_API_KEY` | — | AI 报告生成必填 |
## API 概览
```
POST /api/v1/auth/login # bcrypt + TOTP → JWT pair
POST /api/v1/auth/refresh # refresh token → new access token
GET /api/v1/sessions # list sessions (?campaign_id= &alive_only=)
GET /api/v1/sessions/{id}
POST /api/v1/sessions/{id}/revoke
PATCH /api/v1/sessions/{id}/sleep # update sleep/jitter
GET /api/v1/sessions/{id}/tasks # (?pending_only=)
POST /api/v1/tasks # queue a task
GET /api/v1/tasks/{id}
DELETE /api/v1/tasks/{id} # cancel (queued only)
GET /api/v1/campaigns # (?active_only=)
POST /api/v1/campaigns
GET /api/v1/campaigns/{id}
PUT /api/v1/campaigns/{id}
GET /api/v1/events # SSE stream (?campaign_id= required)
```
## 操作通道 (agent → server)
```
POST /r — agent registration (first contact, ECDH key exchange)
GET /c — task poll (encrypted session ID in X-Request-ID header)
POST /c — task output submission
```
## 安全说明
- 所有 agent↔server 流量:最低使用 TLS 1.3
- Session 密钥通过 ECDH P-256 + HKDF 派生
- 任务 payload 使用 AES-256-GCM 加密
- 操作 token:HS256 JWT,8小时访问 / 7天刷新
- 操作员登录:bcrypt 密码;TOTP (RFC 6238) 已搭建脚手架 — 强制执行将在第二阶段上线
- **仅供授权使用。** 在部署前,请确保已获得目标组织的书面授权。
## 路线图
DungeonMaster 分五个阶段开发。**第一阶段(基础设施)已完成。** 请参阅 [ROADMAP.md](ROADMAP.md) 获取完整清单——每个计划中的模块、规避原语和功能都列出了其目标阶段。
| 阶段 | 名称 | 状态 |
|-------|------|--------|
| 1 | 基础设施 — server、agent、UI、Docker 构建系统 | ✅ 完成 |
| 2 | 操作核心 — 文件操作、SMB/TCP 通道、可定制 C2、TOTP 强制执行 | 🔲 计划中 |
| 3 | 规避与注入 — 进程注入、间接系统调用、脱钩、UDRL | 🔲 计划中 |
| 4 | 后渗透模块库 — 凭证、AD/Kerberos、横向移动、云、Linux/macOS | 🔲 计划中 |
| 5 | 超越 Cobalt Strike — AI 副驾驶、BOF 加载器、杀伤链模板、MITRE 热力图、协作 | 🔲 计划中 |
## 许可证
GPL-3.0 — 请参阅 [LICENSE](LICENSE)。可免费使用、修改和分发;衍生作品必须在相同条款下保持开源。
标签:C2框架, EVTX分析, Go, IP 地址批量处理, Python工具, React, Ruby工具, Rust, Syscalls, 可视化界面, 安全学习资源, 搜索引擎查询, 日志审计, 测试用例, 红队框架, 网络信息收集, 网络流量审计, 请求拦截, 逆向工具