Botnet de Test en Python pour l'Ăducation đđ€
Ce projet Ă©ducatif est conçu pour simuler un rĂ©seau de bots (botnet) et montrer comment ils fonctionnent, comment ils peuvent ĂȘtre contrĂŽlĂ©s, et comment les dĂ©tecter et les combattre. L'objectif est de comprendre les mĂ©canismes de ces rĂ©seaux tout en favorisant la prĂ©vention et la sĂ©curitĂ©.
Fonctionnalités du Projet :
- đ» Simulation d'un Botnet : Permet de simuler un rĂ©seau de bots contrĂŽlĂ©s Ă distance par un "Command & Control" (C&C).
- đ DĂ©tection d'activitĂ© : Fournit des mĂ©thodes pour dĂ©tecter et stopper les bots actifs dans le rĂ©seau simulĂ©.
- đĄïž Analyse des Contremesures : Propose des solutions pour sĂ©curiser les systĂšmes contre des attaques similaires.
Pré-requis :
- đŠ Python 3 : Le script est conçu pour Python 3 avec des bibliothĂšques standard.
- đ RĂ©seau Local : Le projet fonctionne en local ou sur un rĂ©seau restreint.
Structure du Botnet :
- Master (C&C) : Serveur central envoyant des commandes aux bots.
- Bot : Programme client simulant un bot infecté, obéissant au C&C.
Script Python du Botnet de Test :
# Command and Control Server (C&C)
import socket
import threading
# Fonction qui gĂšre la communication avec un bot
def handle_bot(client_socket, addr):
print(f"Connexion avec le bot {addr} établie.")
while True:
try:
command = input(f"Commande pour {addr} (type 'quit' pour fermer) : ")
if command.lower() == "quit":
client_socket.send(b"exit")
print(f"Connexion fermée avec {addr}.")
client_socket.close()
break
client_socket.send(command.encode())
response = client_socket.recv(1024).decode()
print(f"Réponse de {addr} : {response}")
except Exception as e:
print(f"Erreur avec {addr} : {e}")
break
# Lancement du serveur C&C
def command_and_control_server():
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("0.0.0.0", 9999))
server.listen(5)
print("C&C en attente de connexions de bots...")
while True:
client_socket, addr = server.accept()
bot_handler = threading.Thread(target=handle_bot, args=(client_socket, addr))
bot_handler.start()
if __name__ == "__main__":
command_and_control_server()
# Bot Client
import socket
def bot_client():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
client.connect(("127.0.0.1", 9999))
print("Connecté au serveur C&C.")
while True:
command = client.recv(1024).decode()
if command == "exit":
print("ArrĂȘt du bot.")
break
output = f"Commande reçue : {command}"
print(output) # Pour montrer l'exécution
client.send(output.encode())
except Exception as e:
print(f"Erreur : {e}")
finally:
client.close()
if __name__ == "__main__":
bot_client()
Instructions d'Utilisation :
đ Lancer le Serveur Command & Control (C&C) :
Exécutez le script avec l'option 1 :
python botnet.py
đ€ Lancer un Bot :
Exécutez le script avec l'option 2 pour simuler un bot :
python botnet.py
đ Commandes Disponibles :
- Commande : Envoie des commandes aux bots connectés.
- exit : ArrĂȘte un bot spĂ©cifique.
- quit : ArrĂȘte les commandes depuis le C&C.
Prévention et Sécurité :
â ïž Attention Ăthique :
Ce projet est à des fins éducatives. Toute utilisation malveillante est strictement interdite.
đ Comment se protĂ©ger d'un Botnet :
- Utilisez un pare-feu pour bloquer les connexions non autorisées.
- Surveillez les processus réseau.
- Utilisez des IDS pour détecter les comportements suspects.
- Mettez Ă jour vos logiciels.