
🔒 Modern C2 Platform with Cloudflare Tunnel Integration | WinRM & SSH Remote Management | Real-time Terminal & Remote Desktop | Built with FastAPI & React
ZeroPulse is a comprehensive Command & Control (C2) platform designed for secure remote management and monitoring. It leverages Cloudflare Tunnel technology to provide secure, encrypted connections without exposing your infrastructure to the public internet.
⚠️ Development Status: This project is currently in active development. This version is a demo/alpha release and some features may be:
- Unstable or subject to breaking changes
- Incomplete or partially implemented
- Under active development with frequent updates
We recommend using this software for testing and evaluation purposes only. For production use, please wait for a stable release or use at your own risk.
ZeroPulse Dashboard - Overview of all tunnels and system status
Tunnel Management
Remote Command Execution
Remote Desktop
Session & Security
DNS Management
Local Shell Access
Module Control System
.nvmrc in frontend directory)gem install evil-winrm)# Ubuntu/Debian
sudo apt update
sudo apt install -y python3 python3-pip python3-venv git curl
# Install Node.js 20+ (using nvm recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 20.19.0
nvm use 20.19.0
# Optional: Install Ruby for evil-winrm
sudo snap install ruby --classic
gem install evil-winrm
# Verify versions
python3 --version # Should be 3.8+
node --version # Should be 20.19.0+ or 22.12.0+
npm --version
Installation Process - Setting up ZeroPulse on a new system
git clone https://github.com/yourusername/zeropulse.git
cd zeropulse
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
source venv/bin/activate
# Upgrade pip
pip install --upgrade pip
# Install dependencies
pip install -r requirements.txt
cd frontend
# Check Node.js version (should be 20.19.0+ or 22.12.0+)
node --version
# If using nvm, switch to required version
nvm use # Automatically uses version from .nvmrc
# Install dependencies
npm install
# Build frontend
npm run build
cd ..
Create a .env file in the project root:
cat > .env << EOF
# Authentication Settings
ADMIN_USERNAME=admin
ADMIN_PASSWORD=your-secure-password-here
JWT_SECRET_KEY=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))")
JWT_ALGORITHM=HS256
JWT_EXPIRATION_HOURS=24
# Cloudflare Settings
CLOUDFLARE_API_TOKEN=your-cloudflare-api-token-here
CLOUDFLARE_ACCOUNT_ID=your-cloudflare-account-id-here
CLOUDFLARE_DOMAIN=your-domain.com
# WinRM Settings (optional)
WINRM_USERNAME=WinRMUser
WINRM_PASSWORD=your-secure-password-here
# SSH Settings (optional)
SSH_KEY_PATH=/path/to/ssh/key
SSH_USERNAME=ssh_user
# C2 Server Settings
C2_SERVER_HOST=0.0.0.0
C2_SERVER_PORT=8000
ENVIRONMENT=production
# Database Settings
DATABASE_PATH=data/database.db
EOF
# Set permissions
chmod 600 .env
# Ensure virtual environment is active
source venv/bin/activate
# Start the server
python3 run_server.py
The server will be accessible at http://localhost:8000
Your Cloudflare API token needs the following permissions:
Zone:Read, DNS:EditCloudflare Tunnel:Edit
Tunnel List - View all tunnels with status, health indicators, and quick actions
Tunnel Routes Configuration - Configure ingress rules and DNS records
Command Execution Interface - Execute commands on remote Windows systems via WinRM And SSH
Command History - Comprehensive view of all executed commands with detailed information
The Command History feature provides a complete audit trail of all command executions:
Comprehensive Logging
Advanced Filtering
Detailed View
History Management
Module Control Panel - Centralized interface for managing all system modules and capabilities
The Module Control Panel provides a unified interface for accessing and managing various system modules:
Settings Modal - Centralized configuration and management interface
The Settings modal provides comprehensive system configuration and management through multiple tabs:
Manage PowerShell modules that can be executed on remote systems:
Module Features:
The Template Engine allows you to create dynamic PowerShell modules with user-input variables. Variables are defined using the _{...}_ syntax and are replaced with user-provided values before execution.
1. Simple Text Input
ping _{ip,192.168.1.1}_
_{name,placeholder}_ping _{target_ip,192.168.1.1}_ → User enters IP address2. Dropdown List
ping _{ip,list,(192.168.1.1,192.168.1.2,10.0.0.1)}_
_{name,list,(option1,option2,option3)}_3. Radio Buttons
netstat -an | findstr _{port,radio,(80,443,8080)}_
_{name,radio,(option1,option2,option3)}_4. Checkbox
if (_{enable,check,(true,false),Enabled,Disabled}_) { Write-Host "Enabled" }
_{name,check,(true_value,false_value),true_label,false_label}_Module Creation
_{variable}_ syntax for dynamic valuesVariable Extraction
User Input
Variable Replacement
Execution
PowerShell Script:
# Network Scanner Module
$target = "_{target_ip,192.168.1.1}_"
$port = "_{port,radio,(80,443,8080)}_"
$scan_type = "_{scan_type,list,(ping,tcp,udp)}_"
$verbose = "_{verbose,check,(true,false),Yes,No}_"
if ($scan_type -eq "ping") {
ping -n 4 $target
} elseif ($scan_type -eq "tcp") {
Test-NetConnection -ComputerName $target -Port $port
} else {
Write-Host "UDP scan for $target on port $port"
}
if ($verbose -eq "true") {
Write-Host "Scan completed with verbose output"
}
Generated Form:
Nested Variables:
$command = "ping _{ip}_ -n _{count,4}_"
Invoke-Expression $command
Conditional Logic:
if (_{enable_feature,check,(true,false),Yes,No}_ -eq "true") {
# Feature code
}
Multiple Variables:
$server = "_{server_name,localhost}_"
$port = "_{port,list,(80,443,8080,8443)}_"
$protocol = "_{protocol,radio,(http,https)}_"
$url = "$protocol://$server`:$port"
Dependencies Management - Manage system dependencies and requirements
Manage system dependencies and requirements:
Supported Dependencies:
System Log - View and monitor system logs in real-time
Monitor system activity through comprehensive logging:
Log Levels:
API Token Management - Create and manage API tokens with granular permissions
Active Sessions Management - View and manage active user sessions
View and manage active user sessions:
Active Sessions Management - View and manage active user sessions
Configure routes for all tunnels:
Agent Script Editor - Create, edit, and customize PowerShell agent scripts for Windows deployment
The Agent is a PowerShell script that automates the setup of Windows systems for remote management through ZeroPulse. It configures WinRM, creates Cloudflare Tunnels, and establishes secure connections.
API Token Management - Create and manage API tokens with granular permissions
Once the server is running, access the interactive API documentation:
http://localhost:8000/docshttp://localhost:8000/redocAll API endpoints (except /api/auth/*) require authentication:
# Include token in Authorization header
curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \
http://localhost:8000/api/tunnels
For production deployment:
ENVIRONMENT=production in .env🚨 This tool is developed strictly for educational and authorized security testing purposes only.
🔬 It is intended to help cybersecurity professionals, researchers, and enthusiasts understand post-exploitation, red teaming, and detection techniques in lab or controlled environments.
❌ Do NOT use this tool on any system or network without explicit permission. Unauthorized use may be illegal and unethical.
🛡 The author takes no responsibility for any misuse or damage caused by this project.
Always hack responsibly. 💻🔐
| Layer | Technology | Purpose |
|---|
| Frontend | React 19, Redux Toolkit, React Router, TailwindCSS, xterm.js | User interface |
| Backend | FastAPI, Uvicorn | API server |
| Database | SQLite (with optimized queries and indexes) | Data persistence |
| Authentication | JWT, python-jose | Token-based auth |
| Remote Execution | pywinrm, paramiko, evil-winrm | WinRM & SSH integration |
| Terminal | xterm.js, WebSocket | Interactive terminal |
| External APIs | requests, cloudflare | Service integration |
| Process Management | subprocess, asyncio, threading | Background tasks |
| Variable | Description | Default |
|---|
ADMIN_USERNAME | Admin username | admin |
ADMIN_PASSWORD | Admin password | - |
JWT_SECRET_KEY | JWT signing key | - |
JWT_EXPIRATION_HOURS | Token expiration time | 24 |
CLOUDFLARE_API_TOKEN | Cloudflare API token | - |
CLOUDFLARE_ACCOUNT_ID | Cloudflare account ID | - |
CLOUDFLARE_DOMAIN | Your domain | - |
WINRM_USERNAME | WinRM username | WinRMUser |
WINRM_PASSWORD | WinRM password | - |
SSH_KEY_PATH | SSH private key path | - |
SSH_USERNAME | SSH username | - |
C2_SERVER_HOST | Server host | 0.0.0.0 |
C2_SERVER_PORT | Server port | 8000 |
ENVIRONMENT | Environment mode | development |
DATABASE_PATH | Database file path | data/database.db |