MCP Hub
Back to servers

cstrike

Autonomous offensive security platform — 6-container Docker stack, real-time web dashboard, AI-driven 9-phase attack pipeline, 35+ tools. Multi-provider AI (OpenAI, Anthropic, Ollama, Grok) with MCP tool server, nftables VPN kill switch, Metasploit RPC, KasmVNC remote browser, and pre-built VM images. For authorized red team ops.

GitHub
Stars
39
Forks
3
Updated
Mar 6, 2026
Validated
Mar 8, 2026

CStrike v2

Autonomous Offensive Security Platform
9-container Docker stack | 35+ integrated tools | AI-driven 9-phase attack pipeline | VPN IP rotation

Quick Start | Downloads | Architecture | Web UI | TUI | API | Distribution | Docs


CStrike v2 is an autonomous offensive security platform built on a containerized Docker stack with a real-time web dashboard and AI-driven scan orchestration across 35+ integrated tools. Features a 9-phase attack pipeline (recon through exploitation), multi-provider AI reasoning (OpenAI, Anthropic, Ollama, Grok) with MCP tool server, nftables VPN kill switch across 5 providers (WireGuard, OpenVPN, Tailscale, NordVPN, Mullvad), automatic VPN IP rotation during scans via WireGuard config pool swapping, Metasploit RPC automation, and remote browser access via KasmVNC. Built for red team operations on isolated infrastructure with engagement lifecycle management, OPSEC gating, and emergency wipe capability.

Built for authorized red team engagements. Requires explicit scope authorization before use.


Quick Start

Fastest path: Download a pre-built VM image — boot and go in 5 minutes. The instructions below are for Docker-only or source deployment.

# Clone
git clone https://github.com/culpur/cstrike.git
cd cstrike

# Configure
cp .env.example .env
# Edit .env — set POSTGRES_PASSWORD, REDIS_PASSWORD, KASM_PASSWORD

# Generate TLS certificates
bash docker/generate-certs.sh

# Start the stack
docker compose up -d

# Seed the database (first run only)
docker exec cstrike-api npx prisma db seed
Access PointURL
HTTPS Dashboardhttps://localhost/
Remote Browser (Kasm)https://localhost:6901/
TUIdocker exec -it cstrike-api python -m tui
Health Checkcurl -sk https://localhost/health

Full install from bare metal? Run sudo bash install.sh on Debian 12. See Distribution.


Downloads

Pre-built VM images — boot and go, no building required.

amd64 (x86_64)

FormatUse CaseSizeDownload
QCOW2Proxmox / KVM / libvirt~14 GBDownload
OVAVirtualBox / VMware~14 GBDownload
VDIVirtualBox (native)~31 GBDownload

aarch64 (ARM64)

FormatUse CaseSizeDownload
QCOW2QEMU / UTM / Parallels~14 GBDownload
OVAVMware Fusion / UTM~14 GBDownload
VDIVirtualBox (native)~31 GBDownload

BitTorrent downloads | Checksums | All formats

Pre-built images include Debian 12 + 35+ security tools + Docker stack. First boot auto-expands disk, regenerates SSH keys, randomizes passwords, and starts all services.


Architecture

                          ┌─────────────────────────────────────┐
                          │   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, ...
          │
          │  ┌────────────┐  ┌────────────┐  ┌────────────┐
          │  │ ZAP :8080  │  │ MSF :55553 │  │VulnBox:8888│
          │  │ OWASP DAST │  │ Metasploit │  │ 30+ vulns  │
          │  └────────────┘  └────────────┘  └────────────┘

All containers use network_mode: host for direct access to host tools and VPN interfaces, except Kasm which uses bridge networking with port mapping.


Prerequisites

DependencyVersionPurpose
Docker Engine24+Container runtime
Docker Composev2 (plugin)Stack orchestration
Debian 12BookwormHost OS (recommended)

Hardware: 4 CPU cores, 8 GB RAM, 50 GB disk minimum.

Host tools: The API container executes security tools via bind-mounted host directories. Without tools installed on the host, scans will fail. Run scripts/vm/provision-host.sh for full installation, or see Bare Metal Install.


Docker Stack

ContainerImagePortPurpose
cstrike-postgrespostgres:16-alpine5432Primary database (10 models, Prisma ORM)
cstrike-redisredis:7-alpine6379LRU cache + AOF persistence
cstrike-apiCustom (Node 22 + Python 3.12)3001REST API + WebSocket + MCP server
cstrike-frontendCustom (Node 22 Alpine)3000React web dashboard (served by serve@14)
cstrike-traefiktraefik:v3.380, 443TLS reverse proxy, security headers, rate limiting
cstrike-kasmkasmweb/chrome:1.16.06901Remote browser session (KasmVNC)
cstrike-zapzaproxy/zap-stable8080OWASP ZAP daemon (web scanning)
cstrike-metasploitmetasploitframework/metasploit-framework55553Metasploit RPC (exploit framework)
cstrike-vulnboxCustom (Debian Bookworm)8888Deliberately vulnerable target (30+ vulns)

Named volumes: pgdata, redisdata, apidata, vulnbox-db.


Workflow

CStrike executes a 9-phase pipeline per target. Each phase feeds results forward.

#PhaseModulesOutput
1Reconnaissancenmap, dig, amass, subfinder, httpx, nikto, wafw00f, whatweb, dnsreconPort map, subdomains, tech stack, headers
2AI AnalysisOpenAI / Anthropic / Ollama / GrokSuggested commands, attack vectors
3Web ScanningOWASP ZAP, Burp SuiteWeb vulnerabilities, injection points
4Web Exploitationnuclei, ffuf, sqlmap, hydraCVEs, directory findings, SQLi, brute-force
5API SecurityVulnAPI (discover, curl, openapi)API endpoints, OWASP API Top 10 findings
6Metasploitmsfrpcd RPCExploit sessions, post-exploitation data
7Exploitation ChainsAuto-chained from phases 2-6Credential reuse, lateral movement
8AI Follow-upOpenAI / Anthropic / Ollama / GrokPivot suggestions, missed vectors
9Reportingloot_tracker, results compilerJSON results, loot summary, credentials

Web UI

The frontend is a React 19 / TypeScript / Tailwind CSS 4 application with a dark theme and 9 view modules.

ModuleDescription
Command CenterSystem metrics (CPU, RAM, VPN IP, network IPs), service status, scan launcher, AI feed
ServicesService health panel (API, Metasploit, ZAP, Burp)
TargetsAdd/manage targets, launch scans, view per-target results
AI StreamReal-time AI thought stream and command decisions
ExploitationWeb vuln exploitation controls, brute-force configuration
LootCredential tracker with sensitivity heatmaps and export
ResultsScan results browser with severity filtering
LogsStreaming log viewer with level filtering
ConfigurationAI provider selection, scan modes, tool allowlist, service connections, VPN rotation
Battle MapAttack visualization with scan progress, tool execution, VPN rotation IP tracking

WebSocket Events

Real-time updates via Socket.IO:

EventPayload
system_metricsCPU %, memory %, VPN IP, uptime, network IPs, service health
recon_outputTool name, target, output, completion status
ai_thoughtThought type, content, command
ai_command_executionCommand, status, output
phase_changePhase name, target, status
scan_completeTarget, scan ID, stats
exploit_startedTarget
exploit_resultVulnerability, severity, target
exploit_completedTarget
loot_itemCategory, value, source, target
vulnapi_outputTarget, findings
log_entryLevel, source, message
status_updateMetrics, services, phase
service_auto_startService name, status
vpn_rotationConfig file, provider, old/new IP, duration, success

TUI Mode

The Textual-based terminal UI runs inside the API container:

docker exec -it cstrike-api python -m tui
KeyAction
3Toggle live log viewer
4Start Metasploit RPC, ZAP, Burp
5Stop all services
fFilter logs (ERROR/WARN)
qQuit

Configuration

CStrike uses a two-tier configuration model:

Infrastructure (.env file)

Controls Docker container settings. Edit before docker compose up:

VariableDescriptionDefault
POSTGRES_PASSWORDPostgreSQL passwordchangeme
REDIS_PASSWORDRedis passwordchangeme
KASM_PASSWORDKasmVNC remote browser passwordCStr1k3!
CORS_ORIGINSAllowed API originshttp://localhost:3000,...
LOG_LEVELAPI log verbosityinfo

Operational (Web UI / REST API)

AI providers, scan modes, target scope, and tool allowlists are stored in the PostgreSQL ConfigEntry table and managed via the Configuration module or /api/v1/config endpoints:

SettingOptions
AI ProviderOpenAI (GPT-4o/5), Anthropic (Claude), Ollama (local), Grok
Scan Modesport, http, dirbusting, dns, subdomain, osint, vulnscan, apiscan, web_exploit, smb, ldap, snmp, network, ssl, password, cloud
Tool Allowlist60+ tools individually toggleable
Target ScopeAuthorized domains/IPs
Exploitation GateEnable/disable active exploitation

API Reference

The Express 5 API server exposes 14 route groups under /api/v1/ with Zod request validation, rate limiting (100 req/min per IP), and Helmet security headers.

Scan Control

MethodEndpointDescription
POST/api/v1/recon/startStart scan for a target
GET/api/v1/recon/status/:idScan status by ID
GET/api/v1/recon/activeList active scans
POST/api/v1/recon/batchStart batch scan (up to 10 targets)
DELETE/api/v1/recon/scans/:idCancel a scan

Targets & Results

MethodEndpointDescription
GET/api/v1/targetsList all targets
POST/api/v1/targetsAdd a target
GET/api/v1/resultsQuery scan results
GET/api/v1/lootLoot items (credentials, vulns)
GET/api/v1/loot/credentialsCredential pairs with scoring

AI & Exploitation

MethodEndpointDescription
POST/api/v1/ai/analyzeTrigger AI analysis
GET/api/v1/ai/thoughtsAI thought stream
PUT/api/v1/ai/providerSwitch AI provider
POST/api/v1/exploit/startStart exploitation
POST/api/v1/exploit/bruteforceBrute-force attack

Services & System

MethodEndpointDescription
GET/api/v1/statusSystem metrics (CPU, RAM, VPN, network IPs, uptime)
GET/api/v1/servicesService health states
GET/api/v1/configRead configuration entries
PUT/api/v1/configUpdate configuration
GET/api/v1/logsQuery log entries

Integrations

MethodEndpointDescription
POST/api/v1/vulnapi/scanStart VulnAPI DAST scan
GET/api/v1/vulnapi/results/:targetVulnAPI results
GET/api/v1/mcp/toolsList MCP tools
POST/api/v1/mcp/tools/:nameExecute MCP tool
GET/api/v1/vpnVPN connection status
POST/api/v1/vpn/:provider/connectConnect VPN provider
GET/api/v1/vpn/rotation/configVPN rotation configuration
PUT/api/v1/vpn/rotation/configUpdate rotation config
POST/api/v1/vpn/rotation/generate/nordvpnGenerate NordVPN WireGuard configs
POST/api/v1/vpn/rotation/generate/mullvadGenerate Mullvad WireGuard configs
GET/api/v1/vpn/rotation/poolList available rotation configs
GET/api/v1/vpn/rotation/history/:scanIdRotation history for a scan

Health

MethodEndpointDescription
GET/healthDatabase + Redis health check (200/503)

Project Structure

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, VPN rotation, 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              # 9-container Docker stack
├── docker-compose.arm64.yml        # ARM64 overrides (chromium instead of Kasm)
├── install.sh                      # Master bare-metal installer
├── .env.example                    # Infrastructure secrets template
├── results/                        # Per-target scan output (JSON)
└── data/                           # Agent registry, runtime data

Security Tools

35+ tools accessible from the API container via host bind mounts:

CategoryTools
Port Scanningnmap, masscan, rustscan
Web Reconnikto, whatweb, wafw00f, httpx, gowitness
Subdomain Enumerationsubfinder, amass, dnsrecon, dnsenum
Directory Fuzzingffuf, gobuster, feroxbuster, dirb, wfuzz
Vulnerability Scanningnuclei, sqlmap, xsstrike, commix
Credential Attackshydra, john, hashcat, cewl
Network Enumerationenum4linux, smbclient, ldapsearch, snmpwalk, rpcclient
SSL/TLS Analysistestssl.sh, sslscan, sslyze
Post-Exploitationimpacket (secretsdump, psexec, wmiexec), chisel, bloodhound
Container Securitytrivy, kube-hunter
OSINTtheHarvester, sherlock, gau, waybackurls
Exploitation FrameworksMetasploit (msfrpcd RPC), OWASP ZAP

VPN & OPSEC

CStrike supports 5 VPN providers with nftables kill switch enforcement:

ProviderInterfaceKill Switch
WireGuardwg0nftables DROP on tunnel down
OpenVPNtun0nftables DROP on tunnel down
Tailscaletailscale0Management overlay
NordVPNnordlynxMullvad-style lockdown
Mullvadwg-mullvadBuilt-in lockdown mode

Split routing: The redteam user's traffic is marked with iptables fwmark and routed through a dedicated VPN tunnel. Management traffic (SSH, web UI) stays on the primary interface.

VPN IP Rotation: During scans, CStrike can automatically rotate VPN exit IPs between tool executions to obfuscate scanning origin. Pre-generates WireGuard config pools from NordVPN (via nordgen) or Mullvad (native relay API), then swaps wg-quick configs (~5-10s per rotation). Three strategies: per-tool (every tool), periodic (every N tools, default 3), and phase-based (on phase change). Configured via the web UI Configuration tab or /api/v1/vpn/rotation/ endpoints.

OPSEC gating: All scans enforce target scope validation and tool allowlist checks at both the API middleware layer and the MCP server guardrails.


Distribution

CStrike v2 ships in 7 formats. See docs/DISTRIBUTION.md for details and downloads.

FormatSetup TimeCommand
Pre-built VM (QCOW2/OVA/VDI/VMDK)~5 minDownload → import → boot
Docker Compose~10 mindocker compose up -d
Bare Metal~45 minsudo bash install.sh
Cloud-Init (AWS/GCP/Azure/DO)~30 minUser data: scripts/vm/cloud-init-generic.yml
Proxmox (Fresh)~20 minscripts/vm/create-vm.sh + install.sh

Documentation

DocumentDescription
Distribution GuideDeployment formats, pre-built VM downloads, BitTorrent
Docker DeploymentDocker-only deployment guide
Bare Metal InstallFull Debian 12 → CStrike walkthrough
Web UI READMEFrontend architecture and development
v2 ChangelogFull change history from v1 to v2.5
VulnBoxDeliberately vulnerable target container (standalone repo)

Legal

This software is intended exclusively for authorized penetration testing and red team operations. You must have explicit written authorization before scanning or testing any target. Unauthorized access to computer systems is illegal under the Computer Fraud and Abuse Act (CFAA) and equivalent laws in other jurisdictions.

The authors assume no liability for misuse.


License

MIT License (c) 2025-2026 Culpur Defense Inc.


Built by Culpur Defense Inc.
GitHub

Reviews

No reviews yet

Sign in to write a review

cstrike — MCP Server | MCP Hub