自主攻击安全平台
6 容器 Docker stack | 集成 35+ 工具 | AI 驱动的 9 阶段攻击流水线
快速开始 |
下载 |
架构 |
Web UI |
TUI |
API |
分发 |
文档
CStrike v2 是一个自主攻击安全平台,基于容器化 Docker stack 构建,配备实时 Web 仪表盘和 AI 驱动的扫描编排,集成了 35+ 种工具。具有 9 阶段攻击流水线(从侦察到利用),支持多提供商 AI 推理(OpenAI, Anthropic, Ollama, Grok)及 MCP 工具服务器,跨 5 个提供商的 nftables VPN kill switch(WireGuard, OpenVPN, Tailscale, NordVPN, Mullvad),Metasploit RPC 自动化,以及通过 KasmVNC 的远程浏览器访问。专为在隔离基础设施上的红队行动而构建,具备行动生命周期管理、OPSEC 把关和紧急清除功能。
专为授权红队行动构建。使用前需要明确的范围授权。
## 快速开始
```
# Clone
git clone https://github.com/culpur/cstrike.git
cd cstrike
# Configure
cp .env.example .env
# 编辑 .env — 设置 POSTGRES_PASSWORD, REDIS_PASSWORD, KASM_PASSWORD
# 生成 TLS 证书
bash docker/generate-certs.sh
# 启动 stack
docker compose up -d
# 初始化数据库 (仅首次运行)
docker exec cstrike-api npx prisma db seed
```
| 访问点 | URL |
|-------------|-----|
| HTTPS Dashboard | `https://localhost/` |
| Remote Browser (Kasm) | `https://localhost:6901/` |
| TUI | `docker exec -it cstrike-api python -m tui` |
| Health Check | `curl -sk https://localhost/health` |
## 下载
预构建虚拟机镜像 — 开机即用,无需构建。
| 格式 | 用途 | 大小 | 下载 |
|--------|----------|------|----------|
| **QCOW2** | Proxmox / KVM / libvirt | ~14 GB | [下载](https://registry.culpur.net/dist/cstrike-v2.qcow2) |
| **OVA** | VirtualBox / VMware | ~14 GB | [下载](https://registry.culpur.net/dist/cstrike-v2.ova) |
| **VDI** | VirtualBox (原生) | ~31 GB | [下载](https://registry.culpur.net/dist/cstrike-v2.vdi) |
| **VMDK** | VMware ESXi / Workstation | ~14 GB | [下载](https://registry.culpur.net/dist/cstrike-v2.vmdk) |
[BitTorrent 下载](docs/DISTRIBUTION.md#bittorrent-recommended-for-large-files) | [校验和](https://registry.culpur.net/dist/checksums.sha256) | [所有格式](docs/DISTRIBUTION.md)
## 架构
```
┌─────────────────────────────────────┐
│ Traefik v3.3 Reverse Proxy │
│ :80 (redirect) → :443 (HTTPS) │
└─────────────┬───────────────────────┘
┌──────────────────┼──────────────────┐
│ │ │
/api/* + /socket.io/* │ /* (catch-all)
│ │ │
┌──────────▼──────────┐ │ ┌───────────▼──────────┐
│ Express 5 API │ │ │ React 19 Frontend │
│ :3001 │ │ │ :3000 │
│ TypeScript + Prisma │ │ │ Vite 7 + Tailwind 4 │
└────┬───────────┬────┘ │ └──────────────────────┘
│ │ │
┌──────▼──┐ ┌─────▼─────┐ │ ┌─────────────────────┐
│ PG 16 │ │ Redis 7 │ │ │ KasmVNC :6901 │
│ :5432 │ │ :6379 │ │ │ Remote Chrome │
└─────────┘ └───────────┘ │ │ (bridge network) │
│ └─────────────────────┘
┌─────────────────────────────┘
│ Host bind mounts (read-only)
│ /usr/bin, /usr/local/bin, /opt → 35+ security tools
│ nmap, nuclei, ffuf, hydra, sqlmap, impacket, ...
```
所有容器使用 `network_mode: host` 以直接访问主机工具和 VPN 接口,Kasm 除外,它使用带有端口映射的桥接网络。
## 前置条件
| 依赖 | 版本 | 用途 |
|-----------|---------|---------|
| Docker Engine | 24+ | 容器运行时 |
| Docker Compose | v2 (plugin) | Stack 编排 |
| Debian 12 | Bookworm | 主机 OS (推荐) |
**硬件:** 4 CPU 核心,8 GB 内存,至少 50 GB 磁盘。
**主机工具:** API 容器通过绑定挂载的主机目录执行安全工具。如果主机上未安装工具,扫描将失败。运行 `scripts/vm/provision-host.sh` 进行完整安装,或参见 [裸金属安装](docs/BARE_METAL_INSTALL.md)。
## Docker Stack
| 容器 | 镜像 | 端口 | 用途 |
|-----------|-------|------|---------|
| `cstrike-postgres` | `postgres:16-alpine` | 5432 | 主数据库 (10 个模型, Prisma ORM) |
| `cstrike-redis` | `redis:7-alpine` | 6379 | LRU 缓存 + AOF 持久化 |
| `cstrike-api` | 自定义 (Node 22 + Python 3.12) | 3001 | REST API + WebSocket + MCP 服务器 |
| `cstrike-frontend` | 自定义 (Node 22 Alpine) | 3000 | React Web 仪表盘 (由 `serve@14` 提供服务) |
| `cstrike-traefik` | `traefik:v3.3` | 80, 443 | TLS 反向代理, 安全标头, 速率限制 |
| `cstrike-kasm` | `kasmweb/chrome:1.16.0` | 6901 | 远程浏览器会话 (KasmVNC) |
命名卷:`pgdata`, `redisdata`, `apidata`。
## 工作流
CStrike 对每个目标执行 9 阶段流水线。每个阶段的结果会向前传递。
| # | 阶段 | 模块 | 输出 |
|---|-------|---------|--------|
| 1 | **侦察 (Reconnaissance)** | nmap, dig, amass, subfinder, httpx, nikto, wafw00f, whatweb, dnsrecon | 端口映射, 子域名, 技术栈, 标头 |
| 2 | **AI 分析** | OpenAI / Anthropic / Ollama / Grok | 建议的命令, 攻击向量 |
| 3 | **Web 扫描** | OWASP ZAP, Burp Suite | Web 漏洞, 注入点 |
| 4 | **Web 利用** | nuclei, ffuf, sqlmap, hydra | CVE, 目录发现, SQLi, 暴力破解 |
| 5 | **API 安全** | VulnAPI (discover, curl, openapi) | API 端点, OWASP API Top 10 发现 |
| 6 | **Metasploit** | msfrpcd RPC | 漏洞利用会话, 后渗透数据 |
| 7 | **利用链** | 从阶段 2-6 自动链接 | 凭证重用, 横向移动 |
| 8 | **AI 跟进** | OpenAI / Anthropic / Ollama / Grok | Pivot 建议, 遗漏向量 |
| 9 | **报告** | loot_tracker, results compiler | JSON 结果, 战利品摘要, 凭证 |
## Web UI
前端是一个 React 19 / TypeScript / Tailwind CSS 4 应用程序,具有深色主题和 9 个视图模块。
| 模块 | 描述 |
|--------|-------------|
| **指挥中心** | 系统指标 (CPU, RAM, VPN IP), 服务状态, 扫描启动器, AI 源 |
| **服务** | 服务健康面板 (API, Metasploit, ZAP, Burp) |
| **目标** | 添加/管理目标, 启动扫描, 查看每个目标的结果 |
| **AI 流** | 实时 AI 思维流和命令决策 |
| **漏洞利用** | Web 漏洞利用控制, 暴力破解配置 |
| **战利品** | 凭证追踪器,带敏感度热图和导出功能 |
| **结果** | 扫描结果浏览器,带严重性过滤 |
| **日志** | 流式日志查看器,带级别过滤 |
| **配置** | AI 提供商选择, 扫描模式, 工具白名单, 服务连接 |
### WebSocket 事件
通过 Socket.IO 进行实时更新:
| 事件 | 负载 |
|-------|---------|
| `system_metrics` | CPU %, 内存 %, VPN IP, 运行时间 |
| `recon_output` | 工具名称, 目标, 输出, 完成状态 |
| `ai_thought` | 思维类型, 内容, 命令 |
| `ai_command_execution` | 命令, 状态, 输出 |
| `phase_change` | 阶段名称, 目标, 状态 |
| `scan_complete` | 目标, 扫描 ID, 统计信息 |
| `exploit_started` | 目标 |
| `exploit_result` | 漏洞, 严重性, 目标 |
| `exploit_completed` | 目标 |
| `loot_item` | 类别, 值, 来源, 目标 |
| `vulnapi_output` | 目标, 发现 |
| `log_entry` | 级别, 来源, 消息 |
| `status_update` | 指标, 服务, 阶段 |
| `service_auto_start` | 服务名称, 状态 |
## TUI 模式
基于 Textual 的终端 UI 在 API 容器内运行:
```
docker exec -it cstrike-api python -m tui
```
| 按键 | 动作 |
|-----|--------|
| `3` | 切换实时日志查看器 |
| `4` | 启动 Metasploit RPC, ZAP, Burp |
| `5` | 停止所有服务 |
| `f` | 过滤日志 (ERROR/WARN) |
| `q` | 退出 |
## 配置
CStrike 采用双层配置模型:
### 基础设施 (`.env` 文件)
控制 Docker 容器设置。在 `docker compose up` 之前编辑:
| 变量 | 描述 | 默认值 |
|----------|-------------|---------|
| `POSTGRES_PASSWORD` | PostgreSQL 密码 | `changeme` |
| `REDIS_PASSWORD` | Redis 密码 | `changeme` |
| `KASM_PASSWORD` | KasmVNC 远程浏览器密码 | `CStr1k3!` |
| `CORS_ORIGINS` | 允许的 API 源 | `http://localhost:3000,...` |
| `LOG_LEVEL` | API 日志详细程度 | `info` |
### 运营 (Web UI / REST API)
AI 提供商、扫描模式、目标范围和工具白名单存储在 PostgreSQL `ConfigEntry` 表中,并通过配置模块或 `/api/v1/config` 端点进行管理:
| 设置 | 选项 |
|---------|---------|
| AI Provider | OpenAI (GPT-4o/5), Anthropic (Claude), Ollama (本地), Grok |
| 扫描模式 | port, http, dirbusting, dns, subdomain, osint, vulnscan, apiscan, web_exploit, smb, ldap, snmp, network, ssl, password, cloud |
| 工具白名单 | 60+ 工具可单独切换 |
| 目标范围 | 授权域名/IP |
| 利用把关 | 启用/禁用主动利用 |
## API 参考
Express 5 API 服务器在 `/api/v1/` 下公开 14 个路由组,具有 Zod 请求验证、速率限制(每个 IP 100 请求/分钟)和 Helmet 安全标头。
### 扫描控制
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/api/v1/recon/start` | 为目标启动扫描 |
| GET | `/api/v1/recon/status/:id` | 按 ID 查询扫描状态 |
| GET | `/api/v1/recon/active` | 列出活动扫描 |
| POST | `/api/v1/recon/batch` | 启动批量扫描 (最多 10 个目标) |
| DELETE | `/api/v1/recon/scans/:id` | 取消扫描 |
### 目标与结果
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/v1/targets` | 列出所有目标 |
| POST | `/api/v1/targets` | 添加目标 |
| GET | `/api/v1/results` | 查询扫描结果 |
| GET | `/api/v1/loot` | 战利品项 (凭证, 漏洞) |
| GET | `/api/v1/loot/credentials` | 带评分的凭证对 |
### AI 与利用
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/api/v1/ai/analyze` | 触发 AI 分析 |
| GET | `/api/v1/ai/thoughts` | AI 思维流 |
| PUT | `/api/v1/ai/provider` | 切换 AI 提供商 |
| POST | `/api/v1/exploit/start` | 启动漏洞利用 |
| POST | `/api/v1/exploit/bruteforce` | 暴力破解攻击 |
### 服务与系统
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/v1/status` | 系统指标 (CPU, RAM, VPN, 运行时间) |
| GET | `/api/v1/services` | 服务健康状态 |
| GET | `/api/v1/config` | 读取配置条目 |
| PUT | `/api/v1/config` | 更新配置 |
| GET | `/api/v1/logs` | 查询日志条目 |
### 集成
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/api/v1/vulnapi/scan` |启动 VulnAPI DAST 扫描 |
| GET | `/api/v1/vulnapi/results/:target` | VulnAPI 结果 |
| GET | `/api/v1/mcp/tools` | 列出 MCP 工具 |
| POST | `/api/v1/mcp/tools/:name` | 执行 MCP 工具 |
| GET | `/api/v1/vpn` | VPN 连接状态 |
| POST | `/api/v1/vpn/:provider/connect` | 连接 VPN 提供商 |
### 健康 check
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/health` | 数据库 + Redis 健康检查 (200/503) |
## 项目结构
```
cstrike/
├── api/ # Express 5 + TypeScript API
│ ├── src/
│ │ ├── server.ts # Entry point — Express + Socket.IO
│ │ ├── config/ # env, database, redis
│ │ ├── routes/ # 14 route modules
│ │ ├── services/ # AI, metrics, scans, tools, VPN, MCP
│ │ ├── middleware/ # guardrails, rate limiter, validation
│ │ ├── schemas/ # Zod request validation
│ │ ├── utils/ # credential scoring, safe paths
│ │ └── websocket/ # Socket.IO setup + typed emitter
│ └── prisma/
│ ├── schema.prisma # 10 models, PostgreSQL 16
│ └── seed.ts # Database seeder
│
├── web/ # React 19 + TypeScript + Tailwind 4
│ ├── src/
│ │ ├── modules/ # 9 view modules (dashboard, targets, ai, ...)
│ │ ├── components/ # Shared UI components
│ │ ├── services/ # API client + WebSocket
│ │ ├── stores/ # 7 Zustand state stores
│ │ └── types/ # TypeScript interfaces
│ └── package.json
│
├── mcp_server/ # Python MCP tool server (16 categories)
│ ├── tools/ # recon, web_exploit, metasploit, credentials, ...
│ ├── guardrails.py # Scope + tool + exploitation validation
│ └── config.py # JSON config loader
│
├── tui/ # Textual terminal UI
│ ├── app.py # Main TUI app
│ ├── screens/ # dashboard, startup
│ └── widgets/ # ai_thoughts, log_viewer, loot_summary, ...
│
├── modules/ # Python scan modules (recon, exploit, AI, loot)
├── docker/
│ ├── Dockerfile.api # Multi-stage Node 22 + Python 3.12
│ ├── Dockerfile.frontend # Multi-stage Node 22 + serve@14
│ ├── traefik/dynamic.yml # Traefik routing + security headers
│ ├── certs/ # TLS certificates (generated)
│ └── generate-certs.sh # Self-signed cert generator
│
├── scripts/vm/ # VM provisioning & distribution
│ ├── provision-host.sh # 7-step host setup (Kali tools, Go, Docker)
│ ├── harden-host.sh # Security hardening (SSH, PAM, auditd, fail2ban)
│ ├── setup-redteam.sh # Redteam user + VPN routing
│ ├── create-vm.sh # Proxmox API VM creation
│ ├── export-ova.sh # VirtualBox OVA export
│ ├── package-vm.sh # VM packaging & distribution builder
│ ├── cstrike-firstboot.sh # First-boot auto-setup (partition, SSH, passwords)
│ ├── cstrike-v2.ovf # OVF descriptor for OVA packaging
│ ├── cloud-init.yml # Proxmox cloud-init
│ └── cloud-init-generic.yml # Generic cloud-init (AWS/GCP/Azure/DO)
│
├── docker-compose.yml # 6-container Docker stack
├── install.sh # Master bare-metal installer
├── .env.example # Infrastructure secrets template
├── results/ # Per-target scan output (JSON)
└── data/ # Agent registry, runtime data
```
## 安全工具
可通过主机绑定挂载从 API 容器访问 35+ 种工具:
| 类别 | 工具 |
|----------|-------|
| 端口扫描 | nmap, masscan, rustscan |
| Web 侦察 | nikto, whatweb, wafw00f, httpx, gowitness |
| 子域名枚举 | subfinder, amass, dnsrecon, dnsenum |
| 目录模糊测试 | ffuf, gobuster, feroxbuster, dirb, wfuzz |
| 漏洞扫描 | nuclei, sqlmap, xsstrike, commix |
| 凭证攻击 | hydra, john, hashcat, cewl |
| 网络枚举 | enum4linux, smbclient, ldapsearch, snmpwalk, rpcclient |
| SSL/TLS 分析 | testssl.sh, sslscan, sslyze |
| 后渗透 | impacket (secretsdump, psexec, wmiexec), chisel, bloodhound |
| 容器安全 | trivy, kube-hunter |
| OSINT | theHarvester, sherlock, gau, waybackurls |
| 利用框架 | Metasploit (msfrpcd RPC), OWASP ZAP |
## VPN 与 OPSEC
CStrike 支持 5 个 VPN 提供商,并实施 nftables kill switch:
| 提供商 | 接口 | Kill Switch |
|----------|-----------|-------------|
| WireGuard | `wg0` | 隧道断开时 nftables DROP |
| OpenVPN | `tun0` | 隧道断开时 nftables DROP |
| Tailscale | `tailscale0` | 管理覆盖 |
| NordVPN | `nordlynx` | Mullvad 风格锁定 |
| Mullvad | `wg-mullvad` | 内置锁定模式 |
**分流路由:** `redteam` 用户的流量使用 iptables fwmark 标记,并通过专用 VPN 隧道路由。管理流量(SSH, Web UI)保留在主接口上。
**OPSEC 把关:** 所有扫描在 API 中间件层和 MCP 服务器护栏强制执行目标范围验证和工具白名单检查。
## 分发
CStrike v2 提供 7 种格式。有关详细信息和下载,请参阅 [docs/DISTRIBUTION.md](docs/DISTRIBUTION.md)。
| 格式 | 设置时间 | 命令 |
|--------|:----------:|---------|
| **预构建 VM** (QCOW2/OVA/VDI/VMDK) | ~5 分钟 | [下载](#downloads) → 导入 → 启动 |
| **Docker Compose** | ~10 分钟 | `docker compose up -d` |
| **裸金属** | ~45 分钟 | `sudo bash install.sh` |
| **Cloud-Init** (AWS/GCP/Azure/DO) | ~30 分钟 | 用户数据: `scripts/vm/cloud-init-generic.yml` |
| **Proxmox (全新)** | ~20 分钟 | `scripts/vm/create-vm.sh` + `install.sh` |
## 文档
| 文档 | 描述 |
|----------|-------------|
| [分发指南](docs/DISTRIBUTION.md) | 部署格式, 预构建 VM 下载, BitTorrent |
| [Docker 部署](docs/DOCKER_DEPLOYMENT.md) | 仅 Docker 部署指南 |
| [裸金属安装](docs/BARE_METAL_INSTALL.md) | 完整的 Debian 12 → CStrike 演示 |
| [Web UI README](web/README.md) | 前端架构与开发 |
| [v2 更新日志](v2-changelog.md) | 从 v1 到 v2 的完整变更历史 |
## 法律声明
本软件**专用于授权渗透测试**和红队行动。在扫描或测试任何目标之前,您必须拥有明确的书面授权。根据《计算机欺诈和滥用法》(CFAA) 和其他司法管辖区的同等法律,未经授权访问计算机系统是非法的。
作者不对滥用行为承担任何责任。
## 许可证
MIT License (c) 2025-2026 Culpur Defense Inc.
由 Culpur Defense Inc. 构建
GitHub