Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
Outils/GitHubGitHub/xpn/blockchainc2
ExploitationTests d'IntrusionCommandement et ContrôleRed TeamingDéveloppement de Charges Utiles
GitHubxpn/blockchainc2

BlockchainC2

Un serveur C2 POC et un agent pour explorer si/comment la blockchain Ethereum peut être utilisée pour du C2.

Voir le dépôt
79225il y a 7 ansVé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

BlockchainC2

BlockchainC2 est un petit serveur/agent POC visant à évaluer comment la Blockchain (plus précisément la fonctionnalité de Smart Contract d'Ethereum) peut être utilisée par un attaquant pour du C2.

Les détails concernant cette application sont disponibles ici.

Smart Contract

Le Smart Contract utilisé dans ce POC est assez simple :

root@kitploit:~
pragma solidity ^0.5.0;

contract EventC2 {

    address owner;

    event _ServerData(bool f, bool enc, int seq, string agentID, string data);
    event _ClientData(bool f, bool enc, int seq, string agentID, string data);

    constructor() public {
        owner = msg.sender;
    }
    
    function AddClientData(string memory agentID, string memory d, int id, bool f, bool enc) public {
        emit _ClientData(f, enc, id, agentID, d);
    }

    function AddServerData(string memory agentID, string memory d, int id, bool f, bool enc) public {
        emit _ServerData(f, enc, id, agentID, d);
    }
}

L'objectif de ce code Solidity est de transmettre des événements entre un serveur et plusieurs clients sous forme d'événements.

Compilation

BlockchainC2 a été conçu pour fonctionner sur MacOS/Linux, mais l'agent peut être compilé pour s'exécuter sur MacOS, Windows ou Linux.

Pour compiler sur MacOS avec brew :

root@kitploit:~
# Installer solidity et ethereum
brew tap ethereum/ethereum
brew install ethereum
brew install solidity

# Compilation
make all

Pour compiler sur Ubuntu :

root@kitploit:~
# Installer solidity et ethereum
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc ethereum

# Compilation  
make all

Pour effectuer une compilation croisée d'un agent pour Windows :

root@kitploit:~
CGO_ENABLED=1 CC="x86_64-w64-mingw32-gcc" GOOS=windows go build blockchainc2/cmd/bc2agent

Exécution

Vous aurez besoin de configurer un compte pouvant être utilisé par le composant serveur. Le moyen le plus simple de le faire est d'utiliser geth :

root@kitploit:~
geth account new --keystore /tmp/mykeystore/
cat /tmp/mykeystore/*

De l'Ether peut être ajouté à votre portefeuille sur le testnet Ropsten en utilisant https://faucet.ropsten.be/.

Ajoutez le trousseau à votre config.json, par exemple :

root@kitploit:~
{
	"Key": "{\"address\":\"ADDRESS\",\"crypto\":{\"cipher\":\"aes-128-ctr\",\"ciphertext\":\"CT\",\"cipherparams\":{\"iv\":\"IV\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"06470fcc2121994e014f85e5ab9cdb3714c76b873a1f1186c3e623e87abc4a7a\"},\"mac\":\"SALT\"},\"id\":\"ID\",\"version\":3}",
	"Endpoint": "wss://ropsten.infura.io/_ws",
	"ContractAddress": "TODO_VIA_SETUP",
	"GasPrice": 0
}

Pour déployer un contrat en utilisant bc2server :

root@kitploit:~
./bin/bc2server -config ./config.json -pass Passw0rd -setup

Une fois le contrat déployé, ajoutez l'adresse à votre config.json et démarrez le serveur avec :

root@kitploit:~
./bin/bc2server -config ./config.json -pass Passw0rd

Avec le serveur en cours d'exécution, les agents peuvent être attachés en utilisant :

root@kitploit:~
./bin/bc2agent -config ./agent_config.json -pass Passw0rd

Il est recommandé d'utiliser un compte fraîchement créé pour un agent afin d'éviter les erreurs liées aux transactions en attente.

Télécharger l’outil