Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
BlackBerryC2 — Framework di ricerca per comando e controllo (C2) crittografato per l'educazione alla cybersecurity, laboratori red team ed esperimenti di comunicazione sicura client-server. | Kitploit
Strumenti/GitHubGitHub/dereeqw/blackberryc2
Strumenti di Crittografia/DecrittografiaGenerazione di PayloadEvasione IDS/IPSSicurezza di ReteCrittografiaPenetration TestingCommand and ControlApprendimento e FormazioneRed TeamingStrumento di Accesso Remoto
GitHubdereeqw/blackberryc2
31255 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

BlackBerryC2

Framework di ricerca per comando e controllo (C2) crittografato per l'educazione alla cybersecurity, laboratori red team ed esperimenti di comunicazione sicura client-server.

Vedi Repository

BlackBerryC2 2.0.0-beta

BlackBerryC2 è un framework di amministrazione remota e C2 crittografato progettato esclusivamente per uso educativo, ricerca sulla sicurezza e ambienti di laboratorio controllati. BlackBerryC2 Demo

Il progetto dimostra come costruire un server di comando e controllo personalizzato con crittografia a livello applicativo, gestione delle sessioni e comunicazione sicura con il client senza fare affidamento su stack TLS esterni.


⚠️ Avviso Importante

Questo progetto NON è malware e NON è destinato ad accessi non autorizzati.

BlackBerryC2:

  • Non si autopropaga
  • Non sfrutta vulnerabilità automaticamente
  • Non include meccanismi di persistenza
  • Non tenta di eludere software antivirus

Utilizzare solo su sistemi e reti di tua proprietà o per cui hai esplicita autorizzazione al test.


Dipendenze Python:

root@kitploit:~
pip install cryptography prompt_toolkit zstandard

zstandard è opzionale ma consigliato per trasferimenti superiori a 1 GB.


Caratteristiche principali

  • Server C2 crittografato basato su TCP personalizzato (v2.0)
  • Scambio di chiavi ECDHE (secp256r1) — effimero o persistente
  • Crittografia autenticata AES-256-GCM per sessione
  • Autenticazione per pacchetto HMAC-SHA256 + numeri di sequenza anti-replay
  • Sessioni client multiple concorrenti
  • Console interattiva per operatore con completamento tramite tab (prompt_toolkit)
  • Esecuzione remota di comandi crittografata
  • Trasferimenti file crittografati con compressione zlib / Zstandard
  • Caricamento/scaricamento ricorsivo di directory (get -r, put -r)
  • Trasferimenti in background (flag -b) — non bloccanti, annullabili
  • Supporto per ripresa trasferimenti (file .partial + .resume)
  • Generatore di payload client (generate-payload)
  • Blocco IP: blocklist persistente + ban automatici temporanei
  • Rilevamento scan/flood: connect scan, banner grab, fallimenti handshake, heartbeat flood
  • Supporto proxy HTTP(S)/TLS opzionale (BlackBerryHTTPs_TLSProxyGUI)
  • Pre-autenticazione SPA (Single Packet Authorization) e Port-Knocking
  • Modalità BerryTransfer — server dedicato solo trasferimento file (nessuna shell)
  • Log di sessione crittografato (AES-256-GCM + PBKDF2, 600k iterazioni)
  • Log server crittografato con visualizzatore in-shell (comando log)

Progettazione Crittografica

BlackBerryC2 v2.0 stabilisce una comunicazione sicura come segue:

  1. Il client si connette tramite TCP; il server invia il banner di servizio.
  2. Il client invia REQUEST_PUBKEY.
  3. Il server invia la sua chiave pubblica ECDHE effimera (secp256r1).
  4. Il client invia la sua chiave pubblica ECDHE + il tag di autenticazione HMAC-SHA256.
  5. Il server verifica l'HMAC rispetto al segreto pre-condiviso (HMAC_PRE_SHARED_SECRET).
  6. Entrambe le parti derivano una chiave di sessione AES a 256 bit tramite HKDF-SHA256 dal segreto condiviso.
  7. Tutte le comunicazioni successive utilizzano AES-256-GCM con HMAC-SHA256 per pacchetto e numeri di sequenza anti-replay.

Ogni sessione mantiene:

  • La propria chiave AES-256 e chiave HMAC
  • Nonce indipendenti (12 byte casuali per messaggio)
  • Tracker anti-replay isolato (finestra di sequenza ±100)
  • Limitatore di velocità per protezione flood (comandi/secondo configurabile)

Tutte le chiavi crittografiche sono generate in esecuzione e mai riutilizzate tra riavvii (a meno che non sia impostato --persistente).


Esecuzione del Server

root@kitploit:~
python3 BlackBerryC2_server.py

Configurazione predefinita:

  • Host: 0.0.0.0
  • Porta: 9949

Argomenti della Riga di Comando

Esempi:

root@kitploit:~
# Avvio base (richiede passphrase per log)
python3 BlackBerryC2_server.py

# Chiavi ECDHE persistenti + verbose
python3 BlackBerryC2_server.py -p -vv

# Porta personalizzata, nessun controllo HMAC
python3 BlackBerryC2_server.py -P 8080 --no-secure

# Port-knocking su porte personalizzate
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# Modalità BerryTransfer con conferma automatica
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# Visualizza/decifra log senza avviare server
python3 BlackBerryC2_server.py --logs

Comandi della Console Operatore

Gestione Server

Proxy


Comandi di Sessione (all'interno di select <ID>)

Generali

Trasferimento File


Modalità BerryTransfer

BerryTransfer è una modalità server dedicata solo trasferimento file ispirata a scp. Quando attiva, il server rifiuta qualsiasi accesso shell e accetta solo comandi di protocollo BT:*.

Avvio:

root@kitploit:~
python3 BlackBerryC2_server.py --berrytransfer
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm  # nessun prompt operatore per GET

Comandi shell BerryTransfer:

Il log di trasferimento è scritto in logs/bt_transfer.jsonl (opzionalmente crittografato con AES-256-GCM).


SPA / Port-Knocking

Quando --spa è attivo, i client devono autenticarsi tramite UDP prima che la connessione TCP venga accettata.

Modalità SPA (predefinita): Il client invia un token HMAC-SHA256 di 32 byte a SPA_UDP_PORT.

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

Modalità Knock: Il client esegue il knock su una sequenza di porte UDP in ordine entro una finestra di timeout.

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

Gli IP autorizzati sono validi per --spa-ttl secondi (default 60).


Caratteristiche di Sicurezza


Registrazione (Logging)

Visualizza i log con il visualizzatore integrato:

root@kitploit:~
BlackBerry> log

O in modo autonomo (nessun server):

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

Utilizzo Previsto

Questo progetto è destinato solo a:

  • Dimostrazioni educative
  • Ricerca sulla sicurezza
  • Ambienti di laboratorio controllati
  • Test di penetrazione autorizzati

L'uso non autorizzato contro sistemi senza permesso è severamente vietato.


Licenza

Vedere il file LICENSE per i dettagli completi della licenza.


Disclaimer

Questo software è fornito "così com'è", senza alcuna garanzia.
Gli autori non si assumono alcuna responsabilità per un uso improprio o danni causati da questo software.

Scarica lo strumento
  • Configurazione di avvio salvata in logs/last_start.json
  • FlagDescrizione
    -p / --persistenteUsa chiavi ECDHE persistenti da ecdhe-cert/ (richiede passphrase)
    -vLog di debug
    -vvLog verbose (rilassato)
    -H <host>Host in ascolto (predefinito: 0.0.0.0)
    -P <port>Porta in ascolto (predefinita: 9949)
    --no-secureAccetta qualsiasi client ECDHE senza verifica HMAC
    --hmac <secret>Segreto pre-condiviso HMAC personalizzato (hex o stringa)
    --log-passphrase <pass>Crittografa il log del server con AES-256-GCM (PBKDF2 600k iter)
    --logsVisualizzatore log interattivo — server non avviato
    --spaAbilita pre-autenticazione SPA/port-knocking
    --spa-mode <spa|knock>spa = token UDP singolo, knock = sequenza di porte
    --spa-port <port>Porta UDP per listener SPA (predefinita: 7331)
    --knock-seq <ports>Sequenza di porte per modalità knock (predefinita: 7001,7002,7003)
    --knock-timeout <sec>Secondi per completare la sequenza knock (predefinito: 10)
    --spa-ttl <sec>Secondi di validità di un IP autorizzato (predefinito: 60)
    --berrytransferModalità BerryTransfer: solo trasferimento file, nessuna shell
    --transfer-root <dir>Directory root per BerryTransfer (predefinita: ./berry_transfers)
    --auto-confirmApprova automaticamente tutte le richieste GET in BerryTransfer (nessun prompt operatore)
    ComandoDescrizione
    listElenca sessioni attive con statistiche e hostname
    select <ID>Interagisci con una sessione client
    all <cmd>Invia un comando a tutti i client connessi
    reportReport completo dello stato del server (uptime, sessioni, trasferimenti)
    set host <HOST>Cambia host in ascolto (riavvia il server)
    set port <PORT>Cambia porta in ascolto (riavvia il server)
    sVbanner "<text>"Cambia banner di servizio
    generate-payloadGenera un payload client
    fingerprintMostra impronta chiave server ECDHE (SHA-256)
    ecdhe-keysStampa coppia di chiavi ECDHE corrente (PEM)
    kill <id|ip>Termina una sessione per ID o IP
    block <IP>Blocca permanentemente un IP
    unblock <IP>Sblocca un IP (persistente + temporaneo)
    blocklistMostra IP bloccati (persistenti e temporanei)
    logVisualizzatore log interattivo (supporta log crittografati)
    reportRiepilogo stato: uptime, sessioni, trasferimenti
    bannerMostra nuovamente banner di avvio
    cleanElimina file di log del server
    vAttiva/disattiva log DEBUG
    vvAttiva/disattiva log VERBOSE
    cd <dir>Cambia directory di lavoro locale del server
    E <cmd>Esegue comando tramite os.system localmente
    <any command>Esegue localmente sul server
    exitArresta server ed esci
    ComandoDescrizione
    proxyAvvia demone proxy TLS/HTTP (modalità auto)
    proxy --mode <mode>Modalità: auto, tls, http, https, both, all
    proxy --statsMostra statistiche proxy
    proxy guiAvvia GUI proxy (processo separato)
    stop-proxyArresta demone proxy
    stop-proxy-guiArresta GUI proxy
    proxy-helpAiuto completo proxy
    ComandoDescrizione
    helpMostra aiuto sessione
    exitTorna alla shell principale
    !<cmd>Esegue comando localmente sul server
    <cmd>Esegue comando sul client remoto
    cmd1 && cmd2Catena: esegui cmd2 solo se cmd1 ha avuto successo
    cmd1 || cmd2Catena: esegui cmd2 solo se cmd1 è fallito
    cmd1 ; cmd2Catena: esegui sempre cmd2
    ComandoDescrizione
    get <file>Scarica file dal client
    get <dir> -rScaricamento ricorsivo di directory
    get <file> -bScaricamento in background (non bloccante)
    get <dir> -r -bScaricamento ricorsivo in background
    put <file>Carica file sul client
    put <file> -excCarica ed esegue in memoria (script)
    put <dir> -rCaricamento ricorsivo di directory
    put <file> -bCaricamento in background
    transfersElenca tutti i trasferimenti attivi e completati
    stop <ID>Annulla un trasferimento in background (es. stop T1)
    resume <local_file>Riprende un download interrotto
    screenshotCattura schermo client
    ComandoDescrizione
    confirm <ID>Approva una richiesta GET in sospeso
    deny <ID>Rifiuta una richiesta GET in sospeso
    pendingElenca richieste GET in attesa di approvazione
    auto [on|off]Attiva/disattiva/imposta conferma automatica
    clientsMostra sessioni BerryTransfer attive
    ls [dir]Elenca file nella root di trasferimento
    tree [dir]Albero file della root di trasferimento
    find <name>Cerca file nella root di trasferimento
    rm <file>Elimina file dalla root di trasferimento (con conferma)
    log [N]Mostra ultime N voci del log trasferimenti (default 30)
    cd <dir>Cambia directory di lavoro locale
    pwdMostra directory locale corrente
    !<cmd>Esegue comando di sistema locale
    exitArresta server BerryTransfer
    FunzionalitàDettagli
    Scambio chiaviECDHE secp256r1 effimero o persistente
    Crittografia sessioneAES-256-GCM, nonce casuale di 12 byte per messaggio
    Autenticazione clientHMAC-SHA256 su segreto condiviso durante l'handshake
    Integrità messaggioHMAC-SHA256 per pacchetto (copre seq + nonce + ciphertext)
    Anti-replayTracker finestra numeri di sequenza per sessione
    Protezione downgradeDimensione minima chiave AES imposta (256 bit)
    Limitazione frequenza heartbeatMinimo 3 secondi tra heartbeat; violazioni tracciate
    Protezione flood comandiLimitatore di velocità; disconnessione automatica dopo soglia
    Rilevamento scanConnect scan, banner grab, contatori fallimenti handshake
    Gestione IPBlocklist persistente + ban temporanei (auto + manuale)
    Crittografia logAES-256-GCM + PBKDF2-HMAC-SHA256 (600k iterazioni)
    Jitter rispostaJitter casuale 10-50ms per resistere ad attacchi temporali
    Pre-autenticazioneToken SPA o port-knocking prima che TCP sia accettato
    File di logContenuto
    logs/BlackBerryC2_Server.logLog server rotante in chiaro (INFO+)
    logs/BlackBerryC2_enc.logLog server crittografato (se --log-passphrase impostato)
    logs/sessions.jsonlEventi sessione: connessione, disconnessione, byte
    logs/bt_transfer.jsonlLog trasferimento file BerryTransfer
    logs/last_start.jsonIstantanea configurazione avvio (host, porta, token, pid)