projet dans Python Skill Tree

Shell inversée pour contrôler plusieurs cibles

Débutant

Dans ce projet, vous apprendrez à créer une shell inversée à l'aide de Python, qui vous permet de contrôler plusieurs machines compromises, également appelées bots. Contrairement aux shells traditionnelles, une shell inversée initie une connexion du bot au contrôleur, permettant de gérer des hôtes distants même derrière des pare-feu ou des NAT. Cette méthode est largement utilisée dans les pratiques de cybersécurité pour les tests de pénétration et la gestion sécurisée d'environnements contrôlés.

cybersecuritylinux

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous apprendrez à créer un reverse shell (shell inversé) en utilisant Python, ce qui permet de contrôler plusieurs machines compromises, également appelées « bots ». Contrairement aux shells traditionnels, un reverse shell initialise une connexion depuis le bot vers le contrôleur, permettant la gestion d'hôtes distants même derrière des pare-feu ou des dispositifs NAT. Cette méthode est largement utilisée en cybersécurité pour les tests d'intrusion et la gestion sécurisée d'environnements contrôlés.

Avant de passer à l'implémentation, il est important de comprendre les concepts fondamentaux de notre application de reverse shell, notamment l'architecture client-serveur (C/S) et le protocole TCP (Transmission Control Protocol).

L'architecture C/S implique un client qui demande des services et un serveur qui les fournit. Dans notre cas, les bots agissent comme des clients initiant des connexions vers notre serveur, nous permettant d'exécuter des commandes sur eux à distance.

Nous utiliserons TCP pour une communication fiable et orientée connexion entre le serveur et les clients. TCP garantit que les données sont livrées avec précision et dans l'ordre, ce qui est essentiel pour exécuter des commandes et recevoir des réponses sans erreurs.

👀 Aperçu

Exécution de commande via reverse shell

🎯 Tâches

Dans ce projet, vous apprendrez :

  • Comment comprendre l'architecture client-serveur (C/S) et le protocole TCP comme base des communications réseau.
  • Comment configurer un serveur qui écoute les connexions entrantes de plusieurs clients (bots).
  • Comment créer des scripts clients qui se connectent au serveur et exécutent les commandes reçues.
  • Comment implémenter l'exécution de commandes et la récupération de résultats sur le serveur pour interagir avec les clients connectés.
  • Comment gérer simultanément plusieurs connexions clients et basculer entre elles pour envoyer des commandes.

🏆 Objectifs pédagogiques

Après avoir terminé ce projet, vous serez capable de :

  • Démontrer votre maîtrise des bases du modèle client-serveur et de TCP pour une communication réseau fiable.
  • Implémenter un serveur de reverse shell multi-clients en Python.
  • Créer des scripts clients capables de se connecter à un serveur distant et d'exécuter des commandes envoyées par celui-ci.
  • Gérer plusieurs connexions et la communication avec plusieurs clients dans un environnement contrôlé.
  • Appliquer une expérience pratique en programmation réseau et comprendre ses applications en cybersécurité et en gestion de systèmes à distance.

Enseignant

labby
Labby
Labby is the LabEx teacher.