🔒 Moderne C2-Plattform mit Cloudflare-Tunnel-Integration | WinRM- und SSH-Fernverwaltung | Echtzeit-Terminal & Remote-Desktop | Entwickelt mit FastAPI & React
ZeroPulse ist eine umfassende Command-&-Control-Plattform (C2), die für sicheres Remote-Management und Monitoring entwickelt wurde. Sie nutzt die Cloudflare-Tunnel-Technologie, um sichere, verschlüsselte Verbindungen bereitzustellen, ohne Ihre Infrastruktur dem öffentlichen Internet auszusetzen.
⚠️ Entwicklungsstatus: Dieses Projekt befindet sich derzeit in aktiver Entwicklung. Diese Version ist eine Demo-/Alpha-Version, und einige Funktionen können:
- Instabil oder anfällig für Breaking Changes sein
- Unvollständig oder nur teilweise implementiert sein
- In aktiver Entwicklung mit häufigen Updates stehen
Wir empfehlen, diese Software nur für Test- und Evaluierungszwecke zu verwenden. Für den Produktionseinsatz warten Sie bitte auf eine stabile Version oder verwenden Sie sie auf eigenes Risiko.
ZeroPulse Dashboard - Übersicht über alle Tunnel und den Systemstatus
Tunnelverwaltung
Remote-Befehlsausführung
Remotedesktop
Sitzung & Sicherheit
DNS-Verwaltung
Lokaler Shell-Zugriff
Modulsteuerungssystem
| Schicht | Technologie | Zweck |
|---|---|---|
| Frontend | React 19, Redux Toolkit, React Router, TailwindCSS, xterm.js | Benutzeroberfläche |
| Backend | FastAPI, Uvicorn | API-Server |
| Datenbank | SQLite (mit optimierten Abfragen und Indizes) | Datenpersistenz |
| Authentifizierung | JWT, python-jose | Token-basierte Authentifizierung |
| Remote-Ausführung | pywinrm, paramiko, evil-winrm | WinRM- & SSH-Integration |
| Terminal | xterm.js, WebSocket | Interaktives Terminal |
| Externe APIs | requests, cloudflare | Dienstintegration |
| Prozessverwaltung | subprocess, asyncio, threading | Hintergrundaufgaben |
.nvmrc im Frontend-Verzeichnis)gem install evil-winrm)sudo apt update sudo apt install -y python3 python3-pip python3-venv git curl
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
sudo snap install ruby --classic gem install evil-winrm
python3 --version # Should be 3.8+ node --version # Should be 20.19.0+ or 22.12.0+ npm --version
## 🚀 Installation
<div align="center">
<img src="https://assets.kitploit.com/production/public/readmes/7371/63f8299d6bb31aaa64c5e271f4e78bcb3ea94ef8ae7a2f1e2e3b6205552fb8b2.png" alt="Installations-Setup" />
<p><em>Installationsprozess - Einrichten von ZeroPulse auf einem neuen System</em></p>
</div>
### 1. Repository klonen```bash
git clone https://github.com/yourusername/zeropulse.git
cd zeropulse
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
### 3. Frontend-Einrichtung```bash
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 ..
Erstellen Sie eine .env-Datei im Projektstammverzeichnis:```bash
cat > .env << EOF
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_API_TOKEN=your-cloudflare-api-token-here CLOUDFLARE_ACCOUNT_ID=your-cloudflare-account-id-here CLOUDFLARE_DOMAIN=your-domain.com
WINRM_USERNAME=WinRMUser WINRM_PASSWORD=your-secure-password-here
SSH_KEY_PATH=/path/to/ssh/key SSH_USERNAME=ssh_user
C2_SERVER_HOST=0.0.0.0 C2_SERVER_PORT=8000 ENVIRONMENT=production
DATABASE_PATH=data/database.db EOF
chmod 600 .env
### 5. Server starten```bash
# Ensure virtual environment is active
source venv/bin/activate
# Start the server
python3 run_server.py
Der Server ist erreichbar unter http://localhost:8000
| Variable | Beschreibung | Standard |
|---|---|---|
ADMIN_USERNAME | Admin-Benutzername | admin |
ADMIN_PASSWORD | Admin-Passwort | - |
JWT_SECRET_KEY | JWT-Signaturschlüssel | - |
JWT_EXPIRATION_HOURS | Token-Ablaufzeit | 24 |
CLOUDFLARE_API_TOKEN | Cloudflare-API-Token | - |
CLOUDFLARE_ACCOUNT_ID | Cloudflare-Konto-ID | - |
CLOUDFLARE_DOMAIN | Ihre Domain | - |
WINRM_USERNAME | WinRM-Benutzername | WinRMUser |
WINRM_PASSWORD | WinRM-Passwort | - |
SSH_KEY_PATH | Pfad zum privaten SSH-Schlüssel | - |
SSH_USERNAME | SSH-Benutzername | - |
C2_SERVER_HOST | Server-Host | 0.0.0.0 |
C2_SERVER_PORT | Server-Port | 8000 |
ENVIRONMENT | Umgebungsmodus | development |
DATABASE_PATH | Pfad zur Datenbankdatei | data/database.db |
Ihr Cloudflare-API-Token benötigt die folgenden Berechtigungen:
Zone:Read, DNS:EditCloudflare Tunnel:Edit
Tunnelliste - Alle Tunnel mit Status, Zustandsindikatoren und Schnellaktionen anzeigen
Tunnel-Routen-Konfiguration - Ingress-Regeln und DNS-Einträge konfigurieren
Schnittstelle zur Befehlsausführung - Befehle über WinRM und SSH auf entfernten Windows-Systemen ausführen
Befehlsverlauf - Umfassende Ansicht aller ausgeführten Befehle mit detaillierten Informationen
Die Funktion Befehlsverlauf bietet einen vollständigen Prüfpfad aller Befehlsausführungen:
Umfassende Protokollierung
Erweiterte Filterung
Detaillierte Ansicht
Verlaufsverwaltung
Modul-Bedienfeld - Zentrale Schnittstelle zur Verwaltung aller Systemmodule und Funktionen
Das Modul-Bedienfeld bietet eine einheitliche Schnittstelle für den Zugriff auf und die Verwaltung verschiedener Systemmodule:
Einstellungen-Modal - Zentrale Konfigurations- und Verwaltungsschnittstelle
Das Einstellungen-Modal bietet eine umfassende Systemkonfiguration und -verwaltung über mehrere Registerkarten:
Verwalten Sie PowerShell-Module, die auf entfernten Systemen ausgeführt werden können:
Modulfunktionen:
Die Vorlagen-Engine ermöglicht es Ihnen, dynamische PowerShell-Module mit Variablen für Benutzereingaben zu erstellen. Variablen werden mit der Syntax _{...}_ definiert und vor der Ausführung durch vom Benutzer bereitgestellte Werte ersetzt.
1. Einfache Texteingabe```powershell ping {ip,192.168.1.1}
- **Format**: `_{name,placeholder}_`
- **Verwendung**: Texteingabefeld mit Platzhalter
- **Beispiel**: `ping _{target_ip,192.168.1.1}_` → Benutzer gibt IP-Adresse ein
**2. Dropdown-Liste**```powershell
ping _{ip,list,(192.168.1.1,192.168.1.2,10.0.0.1)}_
_{name,list,(option1,option2,option3)}_3. Optionsfelder```powershell netstat -an | findstr {port,radio,(80,443,8080)}
- **Format**: `_{name,radio,(option1,option2,option3)}_`
- **Verwendung**: Optionsfeld-Gruppe für Einzelauswahl
- **Beispiel**: Der Benutzer wählt eine Portnummer über Optionsfelder aus
**4. Kontrollkästchen**```powershell
if (_{enable,check,(true,false),Enabled,Disabled}_) { Write-Host "Enabled" }
_{name,check,(true_value,false_value),true_label,false_label}_Modulerstellung
_{variable}_-Syntax für dynamische Werte verwendenVariablenextraktion
Benutzereingabe
Variablenersetzung
Ausführung
PowerShell-Skript:```powershell
$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" }
**Generiertes Formular:**
- **target_ip**: Textfeld (Platzhalter: 192.168.1.1)
- **port**: Optionsfelder (80, 443, 8080)
- **scan_type**: Dropdown (ping, tcp, udp)
- **verbose**: Kontrollkästchen (Ja/Nein)
##### Bewährte Methoden
- **Verwenden Sie beschreibende Namen**: Variablennamen sollten klar und beschreibend sein
- **Stellen Sie Platzhalter bereit**: Fügen Sie für Texteingaben stets hilfreiche Platzhalter hinzu
- **Begrenzen Sie die Optionen**: Halten Sie Dropdown-/Optionsfeld-Optionen überschaubar (5-10 Einträge)
- **Validieren Sie die Eingaben**: Ziehen Sie in Ihren PowerShell-Skripten eine Eingabevalidierung in Betracht
- **Dokumentieren Sie Variablen**: Fügen Sie Kommentare hinzu, die den Zweck der Variablen erklären
##### Erweiterte Nutzung
**Verschachtelte Variablen:**```powershell
$command = "ping _{ip}_ -n _{count,4}_"
Invoke-Expression $command
Bedingte Logik:```powershell if ({enable_feature,check,(true,false),Yes,No} -eq "true") { # Feature code }
**Mehrere Variablen:**```powershell
$server = "_{server_name,localhost}_"
$port = "_{port,list,(80,443,8080,8443)}_"
$protocol = "_{protocol,radio,(http,https)}_"
$url = "$protocol://$server`:$port"
Abhängigkeitsverwaltung - Systemabhängigkeiten und Anforderungen verwalten
Verwalten Sie Systemabhängigkeiten und -anforderungen:
Unterstützte Abhängigkeiten:
System-Log - Systemprotokolle in Echtzeit anzeigen und überwachen
Überwachen Sie Systemaktivitäten durch umfassende Protokollierung:
Protokollebenen:
API-Token-Verwaltung - API-Tokens mit granularen Berechtigungen erstellen und verwalten
Verwaltung aktiver Sitzungen - Aktive Benutzersitzungen anzeigen und verwalten
Aktive Benutzersitzungen anzeigen und verwalten:
Verwaltung aktiver Sitzungen - Aktive Benutzersitzungen anzeigen und verwalten
Routen für alle Tunnel konfigurieren:
Agent-Skript-Editor - PowerShell-Agentenskripte für die Windows-Bereitstellung erstellen, bearbeiten und anpassen
Der Agent ist ein PowerShell-Skript, das die Einrichtung von Windows-Systemen für die Fernverwaltung über ZeroPulse automatisiert. Es konfiguriert WinRM, erstellt Cloudflare-Tunnel und stellt sichere Verbindungen her.
API-Token-Verwaltung - API-Tokens mit granularen Berechtigungen erstellen und verwalten
Sobald der Server läuft, können Sie auf die interaktive API-Dokumentation zugreifen:
http://localhost:8000/docshttp://localhost:8000/redocAlle API-Endpunkte (außer /api/auth/*) erfordern eine Authentifizierung:```bash
curl -H "Authorization: Bearer YOUR_JWT_TOKEN"
http://localhost:8000/api/tunnels
### Produktionsbereitstellung
Für die Produktionsbereitstellung:
1. Setzen Sie `ENVIRONMENT=production` in `.env`
2. Verwenden Sie einen Reverse-Proxy (nginx/traefik) mit SSL
3. Konfigurieren Sie Firewall-Regeln
4. Richten Sie die Protokollrotation ein
5. Verwenden Sie den systemd-Dienst für den automatischen Neustart
<h2 id="contact">📧 Kontakt</h2>
<p >
<a href="https://t.me/amajax"><img title="Telegram" src="https://img.shields.io/badge/Telegram-black?style=for-the-badge&logo=Telegram"></a>
<a href="https://www.youtube.com/channel/UC0-QcOXgzRgSfcE3zerwu9w/?sub_confirmation=1"><img title="Youtube" src="https://img.shields.io/badge/Youtube-red?style=for-the-badge&logo=Youtube"></a>
<a href="https://www.instagram.com/jxroot"><img title="Instagram" src="https://img.shields.io/badge/Instagram-white?style=for-the-badge&logo=Instagram"></a>
## ⚠️ Rechtlicher & ethischer Haftungsausschluss
🚨 Dieses Tool wurde ausschließlich für Bildungs- und autorisierte Sicherheitstestzwecke entwickelt.
🔬 Es soll Cybersicherheitsexperten, Forschern und Enthusiasten helfen, Post-Exploitation-, Red-Teaming- und Erkennungstechniken in Labor- oder kontrollierten Umgebungen zu verstehen.
❌ Verwenden Sie dieses Tool NICHT auf einem System oder Netzwerk ohne ausdrückliche Genehmigung. Unautorisierte Nutzung kann illegal und unethisch sein.
🛡 Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Projekt verursacht werden.
---
> Hacke immer verantwortungsvoll. 💻🔐
---
<div align="center">
</div>