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, 可视化界面, 安全学习资源, 搜索引擎查询, 日志审计, 测试用例, 红队框架, 网络信息收集, 网络流量审计, 请求拦截, 逆向工具