Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
BlackBerryC2 — Cadre de recherche de commande et contrôle (C2) chiffré pour l'éducation en cybersécurité, les laboratoires d'équipe rouge et les expériences de communication client-serveur sécurisées. | Kitploit
Outils/GitHubGitHub/dereeqw/blackberryc2
Outils de Chiffrement/DéchiffrementGénération de PayloadsÉvasion IDS/IPSSécurité RéseauCryptographieTests d'IntrusionCommandement et ContrôleApprentissage et ÉducationRed TeamingOutil d'Accès à Distance
GitHub
31224il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
dereeqw/blackberryc2

BlackBerryC2

Cadre de recherche de commande et contrôle (C2) chiffré pour l'éducation en cybersécurité, les laboratoires d'équipe rouge et les expériences de communication client-serveur sécurisées.

Voir le dépôt

BlackBerryC2 2.0.0-beta

BlackBerryC2 est un framework d’administration à distance et de C2 chiffré conçu exclusivement pour un usage éducatif, la recherche en sécurité et les environnements de laboratoire contrôlés. BlackBerryC2 Demo

Le projet montre comment construire un serveur de commande et de contrôle personnalisé avec cryptographie au niveau applicatif, gestion de session et communication client sécurisée sans dépendre de piles TLS externes.


⚠️ Avis important

Ce projet n’est PAS un logiciel malveillant et n’est PAS destiné à un accès non autorisé.

BlackBerryC2 :

  • Ne se propage pas automatiquement
  • N’exploite pas de vulnérabilités automatiquement
  • N’inclut pas de mécanismes de persistance
  • Ne tente pas de contourner les antivirus

Utilisez-le uniquement sur des systèmes et réseaux que vous possédez ou pour lesquels vous avez une autorisation explicite de test.


Dépendances Python :

pip install cryptography prompt_toolkit zstandard

zstandard est optionnel mais recommandé pour les transferts de plus de 1 Go.


Fonctionnalités clés

  • Serveur C2 chiffré personnalisé basé sur TCP (v2.0)
  • Échange de clés ECDHE (secp256r1) — éphémère ou persistant
  • Chiffrement authentifié AES-256-GCM par session
  • Authentification par paquet HMAC-SHA256 + numéros de séquence anti-rejeu
  • Sessions client multiples et simultanées
  • Console opérateur interactive avec complétion par tabulation (prompt_toolkit)
  • Exécution de commande à distance chiffrée
  • Transferts de fichiers chiffrés avec compression zlib / Zstandard
  • Téléchargement/téléversement récursif de répertoires (get -r, put -r)
  • Transferts en arrière-plan (option -b) — non bloquants, annulables
  • Reprise de transfert (fichiers .partial + .resume)
  • Générateur de payload client (generate-payload)
  • Blocage IP : liste de blocage persistante + bannissements automatiques temporaires
  • Détection de scan/flood : scan de connexion, récupération de bannière, échecs de handshake, flood de heartbeat
  • Prise en charge optionnelle d’un proxy HTTP(S)/TLS (BlackBerryHTTPs_TLSProxyGUI)
  • Pré-authentification SPA (Single Packet Authorization) et Port-Knocking
  • Mode BerryTransfer — serveur dédié au transfert de fichiers uniquement (pas de shell)
  • Journal de session chiffré (AES-256-GCM + PBKDF2, 600 000 itérations)
  • Journal serveur chiffré avec visualisation intégrée (commande log)
  • Configuration de démarrage sauvegardée dans logs/last_start.json

Conception cryptographique

BlackBerryC2 v2.0 établit une communication sécurisée comme suit :

  1. Le client se connecte via TCP ; le serveur envoie sa bannière de service.
  2. Le client envoie REQUEST_PUBKEY.
  3. Le serveur envoie sa clé publique ECDHE éphémère (secp256r1).
  4. Le client envoie sa clé publique ECDHE + une étiquette d’authentification HMAC-SHA256.
  5. Le serveur vérifie le HMAC par rapport au secret partagé (HMAC_PRE_SHARED_SECRET).
  6. Les deux parties dérivent une clé de session AES 256 bits via HKDF-SHA256 sur le secret partagé.
  7. Toute communication ultérieure utilise AES-256-GCM avec HMAC-SHA256 par paquet et des numéros de séquence anti-rejeu.

Chaque session maintient :

  • Sa propre clé AES et sa propre clé HMAC
  • Des nonces indépendants (12 octets aléatoires par message)
  • Un traqueur anti-rejeu isolé (fenêtre de séquence ±100)
  • Un limiteur de débit anti-flood (commandes/seconde configurable)

Toutes les clés cryptographiques sont générées à l’exécution et jamais réutilisées entre les redémarrages (sauf si --persistente est défini).


Exécution du serveur

python3 BlackBerryC2_server.py

Configuration par défaut :

  • Hôte : 0.0.0.0
  • Port : 9949

Arguments de ligne de commande

FlagDescription
-p / --persistenteUtiliser des clés ECDHE persistantes depuis ecdhe-cert/ (demande une phrase de passe)
-vJournalisation de débogage
-vvJournalisation verbose (détendue)
-H <host>Hôte d’écoute (défaut : 0.0.0.0)
-P <port>Port d’écoute (défaut : 9949)
--no-secureAccepter tout client ECDHE sans vérification HMAC
--hmac <secret>Secret partagé HMAC personnalisé (hex ou chaîne)
--log-passphrase <pass>Chiffrer le journal serveur avec AES-256-GCM (PBKDF2 600k itérations)
--logsVisualiseur de journal interactif — sans démarrer le serveur
--spaActiver la pré-authentification SPA/port-knocking
--spa-mode <spa|knock>spa = jeton UDP unique, knock = séquence de ports
--spa-port <port>Port UDP pour l’écoute SPA (défaut : 7331)
--knock-seq <ports>Séquence de ports pour le mode knock (défaut : 7001,7002,7003)
--knock-timeout <sec>Secondes pour terminer la séquence knock (défaut : 10)
--spa-ttl <sec>Secondes pendant lesquelles une IP autorisée reste valide (défaut : 60)
--berrytransferMode BerryTransfer : transfert de fichiers uniquement, pas de shell
--transfer-root <dir>Répertoire racine pour BerryTransfer (défaut : ./berry_transfers)
--auto-confirmApprouver automatiquement toutes les demandes GET en BerryTransfer (sans invite opérateur)

Exemples :

# Démarrage de base (demande une phrase de passe pour le journal)
python3 BlackBerryC2_server.py

# Clés ECDHE persistantes + verbose
python3 BlackBerryC2_server.py -p -vv

# Port personnalisé, sans vérification HMAC
python3 BlackBerryC2_server.py -P 8080 --no-secure

# Port-knocking sur des ports personnalisés
python3 BlackBerryC2_server.py --spa --spa-mode knock --knock-seq 9001,9002,9003

# Mode BerryTransfer avec confirmation automatique
python3 BlackBerryC2_server.py --berrytransfer --auto-confirm

# Afficher/déchiffrer les journaux sans démarrer le serveur
python3 BlackBerryC2_server.py --logs

Commandes de la console opérateur

Gestion du serveur

CommandeDescription
listLister les sessions actives avec statistiques et nom d’hôte
select <ID>Interagir avec une session client
all <cmd>Envoyer une commande à tous les clients connectés
reportRapport complet d’état du serveur (uptime, sessions, transferts)
set host <HOST>Modifier l’hôte d’écoute (relie le serveur)
set port <PORT>Modifier le port d’écoute (relie le serveur)
sVbanner "<text>"Modifier la bannière de service
generate-payloadGénérer un payload client
fingerprintAfficher l’empreinte de la clé serveur ECDHE (SHA-256)
ecdhe-keysAfficher la paire de clés ECDHE actuelle (PEM)
kill <id|ip>Terminer une session par ID ou IP
block <IP>Bloquer définitivement une IP
unblock <IP>Débloquer une IP (persistante + temporaire)
blocklistAfficher les IP bloquées (persistantes et temporaires)
logVisualiseur de journal interactif (prend en charge les journaux chiffrés)
reportRésumé d’état : uptime, sessions, transferts
bannerRéafficher la bannière de démarrage
cleanSupprimer les fichiers de journal du serveur
vActiver/désactiver le journal DEBUG
vvActiver/désactiver le journal VERBOSE
cd <dir>Changer le répertoire de travail local du serveur
E <cmd>Exécuter une commande via os.system localement
<any command>Exécuter localement sur le serveur
exitArrêter le serveur et quitter

Proxy

Télécharger l’outil