culpur/cstrike

GitHub: culpur/cstrike

一个集成AI驱动攻击编排、35+安全工具和9阶段攻击流水线的容器化自主红队作战平台。

Stars: 18 | Forks: 1

CStrike v2

自主攻击安全平台
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

标签:9阶段攻击流水线, AI驱动攻击, CISA项目, DNS枚举, Docker Compose, Docker容器栈, GitHub, Google搜索, IP 地址批量处理, KasmVNC远程浏览器, Linux安全工具, Metasploit RPC, MITM代理, Modbus, nftables, PE 加载器, Python安全开发, TypeScript, VPN Kill Switch, 企业安全评估, 域名收集, 多模型AI (OpenAI/Anthropic/Ollama), 安全插件, 实时Web仪表盘, 实时处理, 密码管理, 插件系统, 搜索引擎查询, 无线安全, 测试用例, 渗透测试框架, 网络安全审计, 网络安全工具, 自主进攻安全平台, 自动化攻击, 自动化攻击, 自动化攻击模拟, 请求拦截, 逆向工具, 防御, 防御绕过