Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BlackBerryC2 — Verschlüsseltes Command‑and‑Control (C2)‑Forschungsframework für Cybersicherheitsbildung, Red‑Team‑Labore und sichere Client‑Server‑Kommunikationsexperimente. | Kitploit
Tools/GitHubGitHub/dereeqw/blackberryc2
Verschlüsselungs-/EntschlüsselungstoolsPayload-GenerierungIDS/IPS-UmgehungNetzwerksicherheitKryptographiePenetrationstestsCommand and ControlLernen & BildungRed TeamingRemote-Access-Tool
GitHubdereeqw/blackberryc2
312vor 5 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

BlackBerryC2

Verschlüsseltes Command‑and‑Control (C2)‑Forschungsframework für Cybersicherheitsbildung, Red‑Team‑Labore und sichere Client‑Server‑Kommunikationsexperimente.

Repository anzeigen

BlackBerryC2 2.0.0-beta

BlackBerryC2 ist ein verschlüsseltes Fernverwaltungs- und C2-Framework, das ausschließlich für Bildungszwecke, Sicherheitsforschung und kontrollierte Laborumgebungen entwickelt wurde. BlackBerryC2 Demo

Das Projekt zeigt, wie man einen benutzerdefinierten Command-and-Control-Server mit Anwendungsschicht-Kryptographie, Sitzungsverwaltung und sicherer Client-Kommunikation ohne Abhängigkeit von externen TLS-Stacks erstellt.


⚠️ Wichtiger Hinweis

Dieses Projekt ist KEINE Malware und NICHT für unbefugten Zugriff gedacht.

BlackBerryC2:

  • Verbreitet sich nicht selbst
  • Nutzt keine Sicherheitslücken automatisch aus
  • Enthält keine Persistenzmechanismen
  • Versucht nicht, Antivirensoftware zu umgehen

Verwenden Sie es nur auf Systemen und Netzwerken, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben.


Python-Abhängigkeiten:

root@kitploit:~
pip install cryptography prompt_toolkit zstandard

zstandard ist optional, aber für Übertragungen größer als 1 GB empfohlen.


Hauptfunktionen

  • Benutzerdefinierter TCP-basierter verschlüsselter C2-Server (v2.0)
  • ECDHE (secp256r1) Schlüsselaustausch — ephemeral oder persistent
  • AES-256-GCM authentifizierte Verschlüsselung pro Sitzung
  • HMAC-SHA256 Authentifizierung pro Paket + Anti-Replay-Sequenznummern
  • Mehrere gleichzeitige Client-Sitzungen
  • Interaktive Operator-Konsole mit Tab-Vervollständigung (prompt_toolkit)
  • Verschlüsselte Fernausführung von Befehlen
  • Verschlüsselte Dateiübertragungen mit zlib / Zstandard-Kompression
  • Rekursives Hoch-/Herunterladen von Verzeichnissen (get -r, put -r)
  • Hintergrundübertragungen (-b Flag) — nicht blockierend, abbrechbar
  • Unterstützung für Fortsetzung von Übertragungen (.partial + .resume-Dateien)
  • Client-Payload-Generator (generate-payload)
  • IP-Sperrung: dauerhafte Sperrliste + temporäre Auto-Sperren
  • Scan/Flood-Erkennung: Connect-Scan, Banner-Grab, Handshake-Fehler, Heartbeat-Flood
  • Optionale HTTP(S)/TLS-Proxy-Unterstützung (BlackBerryHTTPs_TLSProxyGUI)
  • SPA (Single Packet Authorization) und Port-Knocking Pre-Auth
  • BerryTransfer-Modus — dedizierter Nur-Dateiübertragungs-Server (keine Shell)
  • Verschlüsseltes Sitzungsprotokoll (AES-256-GCM + PBKDF2, 600k Iterationen)
  • Verschlüsseltes Serverprotokoll mit In-Shell-Viewer (log-Befehl)

Kryptographisches Design

BlackBerryC2 v2.0 stellt eine sichere Kommunikation wie folgt her:

  1. Client verbindet sich über TCP; Server sendet Service-Banner.
  2. Client sendet REQUEST_PUBKEY.
  3. Server sendet seinen ephemeralen ECDHE öffentlichen Schlüssel (secp256r1).
  4. Client sendet seinen ECDHE öffentlichen Schlüssel + HMAC-SHA256 Authentifizierungs-Tag.
  5. Server überprüft den HMAC gegen das vorher geteilte Geheimnis (HMAC_PRE_SHARED_SECRET).
  6. Beide Seiten leiten einen 256-Bit AES-Sitzungsschlüssel über HKDF-SHA256 aus dem gemeinsamen Geheimnis ab.
  7. Die gesamte weitere Kommunikation verwendet AES-256-GCM mit paketweiser HMAC-SHA256 und Anti-Replay-Sequenznummern.

Jede Sitzung verwaltet:

  • Eigenen AES-256-Schlüssel und HMAC-Schlüssel
  • Unabhängige Nonces (12 Byte zufällig pro Nachricht)
  • Isolierter Anti-Replay-Tracker (Sequenzfenster ±100)
  • Flood-Schutz-Ratenbegrenzer (konfigurierbare Befehle/Sekunde)

Alle kryptographischen Schlüssel werden zur Laufzeit generiert und niemals über Neustarts hinweg wiederverwendet (es sei denn, --persistente ist gesetzt).


Server ausführen

root@kitploit:~
python3 BlackBerryC2_server.py

Standardkonfiguration:

  • Host: 0.0.0.0
  • Port: 9949

Befehlszeilenargumente

Beispiele:

root@kitploit:~
# Basic startup (prompts for log passphrase)
python3 BlackBerryC2_server.py

# Persistent ECDHE keys + verbose
python3 BlackBerryC2_server.py -p -vv

# Custom port, no HMAC check
python3 BlackBerryC2_server.py -P 8080 --no-secure

# Port-knocking on custom ports
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# BerryTransfer mode with auto-confirm
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# View/decrypt logs without starting server
python3 BlackBerryC2_server.py --logs

Operator-Konsolen-Befehle

Serververwaltung

Proxy


Sitzungsbefehle (innerhalb von select <ID>)

Allgemein

Dateiübertragung


BerryTransfer-Modus

BerryTransfer ist ein dedizierter Nur-Dateiübertragungs-Servermodus, inspiriert von scp. Wenn aktiv, lehnt der Server jeglichen Shell-Zugriff ab und akzeptiert nur BT:* Protokollbefehle.

Starten:

root@kitploit:~
python3 BlackBerryC2_server.py --berrytransfer
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm  # no operator prompt for GETs

BerryTransfer-Shell-Befehle:

Das Übertragungsprotokoll wird nach logs/bt_transfer.jsonl geschrieben (optional AES-256-GCM verschlüsselt).


SPA / Port-Knocking

Wenn --spa aktiv ist, müssen sich Clients über UDP authentifizieren, bevor die TCP-Verbindung akzeptiert wird.

SPA mode (Standard): Client sendet ein 32-Byte HMAC-SHA256-Token an SPA_UDP_PORT.

root@kitploit:~
token = HMAC-SHA256(HMAC_SECRET, "{ip}:{time_window_30s}")

Knock mode: Client klopft eine Sequenz von UDP-Ports in der Reihenfolge innerhalb eines Zeitfensters an.

root@kitploit:~
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 7001,7002,7003 --knock-timeout 10

Autorisierte IPs sind für --spa-ttl Sekunden gültig (Standard 60).


Sicherheitsfunktionen


Protokollierung

Protokolle mit dem integrierten Viewer anzeigen:

root@kitploit:~
BlackBerry> log

Oder eigenständig (ohne Server):

root@kitploit:~
python3 BlackBerryC2_server.py --logs

Verwendungszweck

Dieses Projekt ist ausschließlich bestimmt für:

  • Bildungsdemonstrationen
  • Sicherheitsforschung
  • Kontrollierte Laborumgebungen
  • Autorisierte Penetrationstests

Unbefugte Nutzung gegen Systeme ohne Erlaubnis ist strengstens untersagt.


Lizenz

Siehe LICENSE-Datei für vollständige Lizenzdetails.


Haftungsausschluss

Diese Software wird "wie besehen" zur Verfügung gestellt, ohne jegliche Gewährleistung.
Die Autoren übernehmen keine Verantwortung für Missbrauch oder Schäden, die durch diese Software verursacht werden.

Tool herunterladen
  • Startkonfiguration gespeichert in logs/last_start.json
  • FlagBeschreibung
    -p / --persistentePersistente ECDHE-Schlüssel aus ecdhe-cert/ verwenden (nach Passphrase fragen)
    -vDebug-Logging
    -vvAusführliches (entspanntes) Logging
    -H <host>Lausch-Host (Standard: 0.0.0.0)
    -P <port>Lausch-Port (Standard: 9949)
    --no-secureJeden ECDHE-Client ohne HMAC-Überprüfung akzeptieren
    --hmac <secret>Benutzerdefiniertes HMAC vorher geteiltes Geheimnis (hex oder String)
    --log-passphrase <pass>Serverprotokoll mit AES-256-GCM verschlüsseln (PBKDF2 600k Iter.)
    --logsInteraktiver Log-Viewer — kein Server gestartet
    --spaSPA/Port-Knocking Pre-Authentifizierung aktivieren
    --spa-mode <spa|knock>spa = einzelnes UDP-Token, knock = Port-Sequenz
    --spa-port <port>UDP-Port für SPA-Listener (Standard: 7331)
    --knock-seq <ports>Port-Sequenz für Knock-Modus (Standard: 7001,7002,7003)
    --knock-timeout <sec>Sekunden zum Abschließen der Knock-Sequenz (Standard: 10)
    --spa-ttl <sec>Sekunden, die eine autorisierte IP gültig bleibt (Standard: 60)
    --berrytransferBerryTransfer-Modus: nur Dateiübertragung, keine Shell
    --transfer-root <dir>Wurzelverzeichnis für BerryTransfer (Standard: ./berry_transfers)
    --auto-confirmAlle GET-Anfragen in BerryTransfer automatisch genehmigen (keine Operator-Aufforderung)
    BefehlBeschreibung
    listAktive Sitzungen mit Statistiken und Hostname auflisten
    select <ID>Mit einer Client-Sitzung interagieren
    all <cmd>Einen Befehl an alle verbundenen Clients senden
    reportVollständiger Serverstatusbericht (Betriebszeit, Sitzungen, Übertragungen)
    set host <HOST>Lausch-Host ändern (bindet Server neu)
    set port <PORT>Lausch-Port ändern (bindet Server neu)
    sVbanner "<text>"Service-Banner ändern
    generate-payloadEin Client-Payload generieren
    fingerprintECDHE-Server-Schlüsselfingerabdruck anzeigen (SHA-256)
    ecdhe-keysAktuelles ECDHE-Schlüsselpaar ausgeben (PEM)
    kill <id|ip>Eine Sitzung nach ID oder IP beenden
    block <IP>Eine IP dauerhaft sperren
    unblock <IP>Eine IP entsperren (dauerhaft + temporär)
    blocklistGesperrte IPs anzeigen (dauerhaft und temporär)
    logInteraktiver Log-Viewer (unterstützt verschlüsselte Logs)
    reportStatuszusammenfassung: Betriebszeit, Sitzungen, Übertragungen
    bannerStartbanner erneut anzeigen
    cleanServer-Logdateien löschen
    vDEBUG-Logging umschalten
    vvVERBOSE-Logging umschalten
    cd <dir>Lokales Arbeitsverzeichnis des Servers ändern
    E <cmd>Befehl über os.system lokal ausführen
    <any command>Lokal auf dem Server ausführen
    exitServer stoppen und beenden
    BefehlBeschreibung
    proxyTLS/HTTP-Proxy-Daemon starten (Auto-Modus)
    proxy --mode <mode>Modi: auto, tls, http, https, both, all
    proxy --statsProxy-Statistiken anzeigen
    proxy guiProxy-GUI starten (separater Prozess)
    stop-proxyProxy-Daemon stoppen
    stop-proxy-guiProxy-GUI stoppen
    proxy-helpVollständige Proxy-Hilfe
    BefehlBeschreibung
    helpSitzungshilfe anzeigen
    exitZurück zur Haupt-Shell
    !<cmd>Befehl lokal auf dem Server ausführen
    <cmd>Befehl auf dem entfernten Client ausführen
    cmd1 && cmd2Verkettung: cmd2 nur ausführen, wenn cmd1 erfolgreich war
    cmd1 || cmd2Verkettung: cmd2 nur ausführen, wenn cmd1 fehlschlug
    cmd1 ; cmd2Verkettung: cmd2 immer ausführen
    BefehlBeschreibung
    get <file>Datei vom Client herunterladen
    get <dir> -rRekursives Verzeichnis herunterladen
    get <file> -bHintergrund-Download (nicht blockierend)
    get <dir> -r -bRekursiver Hintergrund-Download
    put <file>Datei auf den Client hochladen
    put <file> -excHochladen und im Speicher ausführen (Skripte)
    put <dir> -rRekursives Verzeichnis hochladen
    put <file> -bHintergrund-Upload
    transfersAlle aktiven und abgeschlossenen Übertragungen auflisten
    stop <ID>Eine Hintergrundübertragung abbrechen (z.B. stop T1)
    resume <local_file>Eine unterbrochene Übertragung fortsetzen
    screenshotClient-Bildschirm erfassen
    BefehlBeschreibung
    confirm <ID>Eine ausstehende GET-Anfrage genehmigen
    deny <ID>Eine ausstehende GET-Anfrage ablehnen
    pendingGET-Anfragen auflisten, die auf Genehmigung warten
    auto [on|off]Auto-Confirm umschalten / setzen
    clientsAktive BerryTransfer-Sitzungen anzeigen
    ls [dir]Dateien im Übertragungs-Wurzelverzeichnis auflisten
    tree [dir]Dateibaum des Übertragungs-Wurzelverzeichnisses
    find <name>Datei im Übertragungs-Wurzelverzeichnis suchen
    rm <file>Datei aus dem Übertragungs-Wurzelverzeichnis löschen (mit Bestätigung)
    log [N]Die letzten N Übertragungsprotokolleinträge anzeigen (Standard 30)
    cd <dir>Lokales Arbeitsverzeichnis ändern
    pwdAktuelles lokales Verzeichnis anzeigen
    !<cmd>Lokalen Systembefehl ausführen
    exitBerryTransfer-Server stoppen
    FunktionDetails
    SchlüsselaustauschECDHE secp256r1 ephemeral oder persistent
    SitzungsverschlüsselungAES-256-GCM, zufällige 12-Byte Nonce pro Nachricht
    Client-AuthentifizierungHMAC-SHA256 über gemeinsames Geheimnis während des Handshakes
    NachrichtenintegritätHMAC-SHA256 pro Paket (deckt Seq + Nonce + Chiffretext ab)
    Anti-ReplaySequenznummern-Fenster-Tracker pro Sitzung
    Downgrade-SchutzMindest-AES-Schlüsselgröße erzwungen (256-Bit)
    Heartbeat-RatenbegrenzungMindestens 3s zwischen Heartbeats; Verstöße werden verfolgt
    Command-Flood-SchutzRatenbegrenzer; automatische Trennung nach Schwellenwert
    Scan-ErkennungConnect-Scan, Banner-Grab, Handshake-Fehler-Zähler
    IP-VerwaltungDauerhafte Sperrliste + temporäre Sperren (automatisch + manuell)
    ProtokollverschlüsselungAES-256-GCM + PBKDF2-HMAC-SHA256 (600k Iterationen)
    Antwort-Jitter10–50ms zufälliger Jitter, um Timing-Angriffen zu widerstehen
    Pre-AuthSPA-Token oder Port-Knocking, bevor TCP akzeptiert wird
    ProtokolldateiInhalt
    logs/BlackBerryC2_Server.logKlartext rotierendes Serverprotokoll (INFO+)
    logs/BlackBerryC2_enc.logVerschlüsseltes Serverprotokoll (wenn --log-passphrase gesetzt)
    logs/sessions.jsonlSitzungsereignisse: Verbinden, Trennen, Bytes
    logs/bt_transfer.jsonlBerryTransfer Dateiübertragungsprotokoll
    logs/last_start.jsonStartkonfigurations-Snapshot (Host, Port, Token, PID)