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
botnet-hackpack — Construire un botnet de commande et contrôle de base en C | Kitploit
Outils/GitHubGitHub/treehacks/botnet-hackpack
Mécanismes de PersistanceAnalyse de MalwareCommandement et ContrôleApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles
GitHubtreehacks/botnet-hackpack

botnet-hackpack

Construire un botnet de commande et contrôle de base en C

Voir le dépôt
4039529il 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

BOTNET C&C SIMPLE

Ce hackpack vous guidera dans l’implémentation d’un cadre simple qui caractérise fondamentalement un botnet. Cela peut vous aider si vous avez déjà travaillé avec le C. Si vous avez aimé ce tutoriel, n’oubliez pas de mettre une étoile sur ce dépôt !

Remarque : N’utilisez rien de ce que vous apprenez ici à des fins malveillantes. Ce hackpack est uniquement une étude de cas de botnets à des fins éducatives. Les concepts appris dans ce hackpack ont des cas d’utilisation très vastes (essentiellement tout ce qui touche au réseau). Plus important encore, ce hackpack est destiné à être testé et déployé localement (ne partagez donc rien de ce que vous construisez en lien avec ce hackpack avec d’autres hackers). La vie privée est importante, veuillez la respecter.

Qu’est-ce qu’un botnet ?

Avant de construire un botnet, il est important de comprendre ce qu’est un botnet. Un botnet est un réseau d’ordinateurs capables de recevoir des commandes à distance et de les déployer localement. Facultativement, ils peuvent choisir de relayer des informations vers d’autres nœuds du réseau. Ils ont été utilisés pour tout, des attaques par déni de service distribué au déploiement généralisé de logiciels espions. Vous avez peut-être entendu parler de nombreux botnets dans le passé. Les plus célèbres sont peut-être Mirai et Gameover Zeus, qui contrôlaient respectivement 3,8 mille et 3,6 millions d’appareils IoT. Il existe beaucoup de différences dans la manière dont les botnets implémentent certaines tâches. Mais pour construire notre botnet avec succès, nous devons garantir les fonctionnalités suivantes dans notre réseau fonctionnel.

Notre botnet doit :

  1. Inclure un nœud maître qui contrôle tous les autres nœuds du réseau
  2. Déployer des logiciels malveillants déguisés / des nœuds esclaves sur les ordinateurs hôtes
  3. Transmettre des commandes du nœud maître au nœud esclave, les exécuter et renvoyer une sortie au maître

Cette structure est caractéristique de ce qu’on appelle les botnets de type Command & Control. Ces botnets ont un serveur maître et de nombreux serveurs esclaves. Cependant, ce style de botnets est obsolète et peut facilement être démantelé en coupant l’accès au domaine maître. Les botnets plus récents et sophistiqués suivent une architecture pair-à-pair, où les droits d’administration sont répartis sur tous les nœuds ou un sous-ensemble de nœuds du réseau. Ces botnets posent un sérieux casse-tête aux experts en sécurité car il n’y a pas de point de contrôle central et ils peuvent atteindre des millions de nœuds. Démonter de tels botnets est une lecture intéressante en soi. Cependant, pour les besoins de ce hackpack, restons simples. Nous allons implémenter un nœud esclave simple pour un botnet C&C.

alt tag

Implémentation

Maître

Ce hackpack traitera principalement de l’implémentation du logiciel malveillant client. Pour le serveur maître, nous pouvons utiliser un serveur TCP open source appelé Netcat. Netcat n’a rien à voir avec les botnets. C’est simplement un outil pratique et établi que nous pouvons réutiliser pour envoyer des paquets texte vers et depuis les clients (ce qu’est fondamentalement un maître). J’ai légèrement ajusté le serveur netcat et l’ai compilé en un binaire nommé « master ». Pas plus de travail nécessaire ici ! Notre maître est prêt à être utilisé.

Esclave

Passons maintenant à la partie la plus intéressante : recevoir et exécuter des commandes à distance (nous nous occuperons plus tard du déguisement de notre malware). L’objectif ici est de rendre notre nœud esclave aussi simple que possible et de respecter les exigences détaillées ci-dessus. Notez que de nombreuses constantes ont été définies dans lib/macros.h ; n’hésitez pas à les utiliser. Toutes les signatures de fonctions implémentées se trouvent dans lib/connect.h ou lib/utils.h.

1. Initiation

Ouvrez le fichier bot.c. Lors du démarrage d’un nouveau nœud sur notre serveur, nous devrions probablement le nommer afin que le maître sache à quels clients déployer des commandes. Il existe de nombreuses conventions de nommage. Utiliser une adresse IP est probablement la meilleure car c’est un identifiant unique pour chaque client. Cependant, pour rendre les choses plus lisibles pour les humains ordinaires, utilisons le nom d’utilisateur de l’ordinateur. En utilisant la fonction C getenv() avec l’argument "USER", on obtient ce que l’ordinateur a stocké dans la variable d’environnement USER. C’est un endroit où le nom d’utilisateur est stocké, alors utilisons-le. Aussi, maintenant que votre esclave tourne, trouvons le maître. Pour ce faire, nous devons connaître l’adresse IP de notre maître. Chaque périphérique réseau a une adresse IP. Elle est responsable de l’identification des autres nœuds et de l’adressage de localisation. De plus, le maître peut avoir plusieurs serveurs fonctionnant sur différents ports. Donc, non seulement nous devons nous connecter au maître, mais nous devons aussi spécifier le bon port. Ce port est choisi par le maître mais peut être modifié. Dans ce hackpack, nous voulons tester localement. Nous utiliserons donc votre ordinateur comme notre réseau. L’adresse IP locale de chaque ordinateur (que « localhost » résout également) est "127.0.0.1". Dans le maître, j’ai spécifié qu’il devait tourner sur le port 9999. Avec ces trois éléments (adresse IP du maître, port du maître et nom de l’esclave), nous pouvons établir un pipeline de communication entre le serveur et le client appelé socket. Passez ces trois arguments dans la fonction init_socket() pour créer un socket. init_socket() n’est pas une commande C intégrée. Nous devons plutôt l’implémenter. Ensuite, nous devons allouer un espace sur la pile pour contenir les messages entrants. Soyons assez généreux et utilisons environ 10 Ko d’espace de pile. Appelez ce pointeur de pile msg. Enfin, une instruction printf indique que tout se passe bien.

char* name = // Récupérez le nom d’utilisateur du client et stockez-le dans name
int channel = // initialisez un canal avec SERVER, PORT et name ;
// Allouez un espace de pile de taille CMD_LENGTH pour contenir des données de type char. Appelez le pointeur de pile msg
printf("%s rejoignant le botnet\n", name);
Télécharger l’outil