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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
blacksandbeacon — Balise C2 Linux avec chargeur BOF ELF natif en mémoire, interrogation chiffrée AES-256-CFB et serveur C2 Python pour modules de post-exploitation sans fichier. | Kitploit
Outils/GitHubGitHub/grisuno/blacksandbeacon
Frameworks de Tests d'IntrusionEscalade de PrivilègesOutils de Chiffrement/DéchiffrementFrameworks d'ExploitationMécanismes de PersistanceShellcodePost-ExploitationCommandement et ContrôleRed TeamingDéveloppement de Charges UtilesCheval de Troie d'Accès à Distance
15425il y a 11 joursPas encore vérifié
Exploitation de Binaires
GitHubgrisuno/blacksandbeacon

blacksandbeacon

Balise C2 Linux avec chargeur BOF ELF natif en mémoire, interrogation chiffrée AES-256-CFB et serveur C2 Python pour modules de post-exploitation sans fichier.

Voir le dépôtSite web

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

Black Sand Beacon

Un beacon C2 Linux avec un loader BOF ELF natif en mémoire, écrit en C sans runtime Go ni Rust. Conçu pour s'intégrer au framework RedTeam LazyOwn et inspiré des Beacon Object Files de Cobalt Strike.

Ce dépôt contient :

  • Beacons dans beacons/v1/, beacons/v2/, beacons/v3/ Trois variantes du même beacon HTTPS/CFB. v1 est le beacon canonique en mode pull. v2 ajoute la découverte mesh/p2p. v3 est une branche expérimentale.
  • BOFs dans bof/<name>/bof.c Des objets ELF indépendants du positionnement que le beacon peut récupérer et exécuter en mémoire. Les cinq inclus sont : whoami, is_sudo, cat, userenum, suid_enum.
  • Serveur C2 dans c2/server.py Un petit serveur Python de type Gopher qui sert des commandes, accepte les résultats et héberge les BOFs.
  • Bibliothèque partagée dans include/ AES-256 autonome (aes.c/aes.h), cJSON, le chargeur de configuration d'exécution (config.c/config.h plus le miroir Python config_py.py), et les wrappers AES-256-CFB partagés par le beacon et les tests.
  • Build dans Makefile, CI dans .github/workflows/ci.yml, tests dans tests/.

Pour une exécution de bout en bout en 5 minutes, voir QUICKSTART.md. Pour le guide d'écriture de BOF, voir docs/BOF_AUTHORING.md. Pour le protocole de communication C2, voir docs/PROTOCOL.md.

Prérequis

Build (Debian/Ubuntu) :

sudo apt-get install gcc libcurl4-openssl-dev libssl-dev make

Environnement d'exécution pour le serveur C2 :

pip install -r requirements.txt

Compilation

make config        # one-time: copies config.example.json -> config.json
make beacon        # builds build/beacon (runnable, with build/config.json staged next to it)
make bofs          # builds all BOFs into build/bof/*.x64.o
make all-beacons   # builds v1, v2, v3
make test          # runs the full test suite
make clean         # removes build/

Après make beacon, le binaire est prêt à être exécuté :

./build/beacon

Il lit build/config.json (à côté de lui-même) via le chemin de recherche relatif au binaire, donc aucun BSB_CONFIG ni cd config/ n'est nécessaire. Le même binaire copié sur un autre hôte fonctionne de manière identique tant qu'un config.json se trouve à côté de lui.

Si vous souhaitez uniquement reconstruire un seul BOF :

make bof-whoami
make bof-suid_enum

Déployer sur un autre hôte (facultatif)

Pour expédier vers une cible, le Makefile dispose d'une cible install qui prépare un répertoire autonome :

make install-all DESTDIR=/tmp/deploy
scp -r /tmp/deploy/* user@target:/opt/bsb/
ssh user@target /opt/bsb/beacon

Ce n'est pas le flux normal. Utilisez-le uniquement lorsque vous devez regrouper le binaire + la configuration + les BOFs dans un seul répertoire que vous pouvez copier ailleurs.

Lancer le C2

python3 c2/server.py

Le serveur se lie à 0.0.0.0:7070 par défaut et lit sa clé AES et son URI C2 depuis config/config.json. Remplacez le chemin de configuration avec BSB_CONFIG=/path/to/config.json.

Une fois le serveur démarré, vous pouvez injecter des commandes depuis le REPL :

Client ID: linux
Command:   id

Exécuter le beacon

./build/beacon

Le beacon lit config/config.json (relatif au binaire, trouvé via le chemin de recherche relatif au binaire), interroge le C2 et affiche ce qu'il envoie et reçoit. Sans commandes en file d'attente, il se contente de dormir entre les interrogations.

Pour exécuter un BOF, le C2 renvoie un objet JSON avec un champ bof pointant vers /bof/<name>.x64.o. Le beacon récupère le fichier et le charge dans son propre processus via le chargeur ELF en mémoire (RunELF dans beacons/v1/beacon.c).

Configuration

Tous les paramètres opérationnels résident dans config/config.json et sont lus au démarrage. Rien n'est intégré en dur dans les binaires.

SectionCléValeur par défautRôle
c2urlhttps://127.0.0.1:4444URL de base du C2
c2uri/api/poll/Chemin URI avant l'identifiant client
c2client_idlinuxIdentifiant du beacon
cryptoaes_key_hex(placeholder)64 caractères hex = 32 octets
cryptomodecfbMode de chiffrement
timingsleep_seconds6Intervalle d'interrogation de base
timingjitter_percent20Jitter de +/- pourcentage sur le sommeil
timingcurl_timeout_seconds10Délai d'expiration total de libcurl
timingcurl_connect_timeout_seconds5Délai d'expiration de connexion de libcurl
networkuser_agents(4 chaînes)Liste de rotation
networkverify_tlsfalseVérification TLS du C2
bofdownload_chunk_size4096Tampon de téléchargement des BOF

La CI exécute un garde-fou qui fait échouer la compilation si une clé hex de 64 caractères apparaît dans le code source. Les vraies clés appartiennent à config/config.json, qui est ignoré par git.

Écrire un nouveau BOF

Un BOF n'est qu'un fichier source C qui exporte void go(char *args, int alen). Incluez bof/include/beacon_api.h pour l'API de callback et bof/include/syscalls.h pour les assistants d'appels système directs. Compilez-le en position-independent et sans libc :

gcc -c -fPIC -nostdlib -m64 -O2 -I bof/include bof/<name>/bof.c -o build/bof/<name>.x64.o

La cible make bof-<name> encapsule cela. Déposez le fichier .x64.o résultant dans sessions/uploads/ sur l'hôte C2 et déclenchez-le en renvoyant une commande comme bof:<name> depuis votre injection de commande.

Consultez docs/BOF_AUTHORING.md pour le contrat complet.

Tests

make test

La suite de tests est répartie en plusieurs fichiers dans tests/ :

FichierCe qu'il couvre
test_config.pyChargeur de configuration JSON en C : valeurs par défaut, surcharges, erreurs
test_crypto.pyAller-retour AES-256-CFB et interopérabilité Python/C
test_bof_compile.pyChaque BOF se compile, exporte go, ne présente aucune fuite libc
test_beacon_build.pyLe binaire Beacon se compile, expose l'API BOF + RunELF
test_c2_server.pyRépartiteur C2 : GET/POST/BOF, durcissement contre le path-traversal
test_c2_http_e2e.pyAller-retour réel sur socket HTTP/1.1 avec chiffrement
test_install_deploy.pyLe workflow make produit une arborescence exécutable, make clean l'efface

Organisation du dépôt

Télécharger l’outil