Comprendre les modules d'exploitation

CybersécuritéBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le laboratoire sur la compréhension des modules d'exploitation !

Dans le cadre des tests d'intrusion, l'exploitation d'une vulnérabilité consiste à utiliser un module d'exploitation pour transmettre une charge utile (payload) à un système cible. Le framework Metasploit est l'un des outils les plus populaires à cet effet, offrant une base de données massive et interrogeable de modules d'exploitation pour diverses vulnérabilités connues.

Cependant, un travail d'exploitation mature ne se résume pas à « chercher et lancer ». Il s'agit d'un processus méthodique consistant à sélectionner le bon module, à comprendre ses hypothèses, à le configurer avec soin et à vérifier la cible avant de risquer une action perturbatrice.

Dans ce laboratoire, vous apprendrez la méthodologie standard pour utiliser ces modules. Vous vous exercerez à rechercher une exploitation réelle, à analyser les exigences du module, à configurer les options de la cible et à vérifier en toute sécurité un service vulnérable avant de lancer une attaque réelle.

Rechercher des exploits spécifiques (CVE/Nom)

Dans cette étape, vous apprendrez à lancer la console du framework Metasploit et à rechercher des modules d'exploitation spécifiques.

Metasploit contient des milliers de modules. Pour trouver le bon, vous pouvez utiliser la commande search. Vous pouvez effectuer une recherche par nom de logiciel, par type de vulnérabilité ou par identifiants spécifiques comme un numéro CVE. Pour ce laboratoire, nous travaillerons avec une cible Shellshock réelle exposée sur 127.0.0.1:8080.

Tout d'abord, démarrez la console Metasploit. L'indicateur -q est utilisé pour la démarrer en mode « silencieux », ce qui permet d'ignorer la bannière de démarrage.

msfconsole -q

Une fois la console chargée, votre invite de commande passera à msf6 >. Utilisez maintenant la commande search pour trouver les modules liés à Shellshock.

La recherche par famille de vulnérabilité ou par CVE est souvent le moyen le plus rapide de passer de la reconnaissance à la logique d'exploitation candidate.

search shellshock

Vous verrez un tableau répertoriant les modules correspondants. Faites attention à la colonne Name, qui indique le chemin d'accès du module. Pour ce laboratoire, le module d'exploitation qui nous intéresse est exploit/multi/http/apache_mod_cgi_bash_env_exec. La colonne Disclosure Date indique quand la vulnérabilité a été rendue publique. La colonne Rank décrit la fiabilité de l'exploitation (par exemple, Excellent, Good ou Normal). Enfin, la colonne Check précise si le module prend en charge une vérification de vulnérabilité plus sûre.

Analyser les informations du module (info)

Dans cette étape, vous sélectionnerez le module d'exploitation que vous avez trouvé et analyserez ses détails.

Pour indiquer à Metasploit quel module vous souhaitez utiliser, vous utilisez la commande use suivie du nom du module (le chemin affiché dans les résultats de recherche).

Tapez la commande suivante dans votre invite msf6 > :

use exploit/multi/http/apache_mod_cgi_bash_env_exec

Notez que votre invite change pour inclure le nom du module, indiquant qu'il est maintenant actif. Avant de configurer quoi que ce soit, il est recommandé de comprendre ce que fait le module. Vous pouvez le faire en utilisant la commande info.

info

La commande info fournit une mine d'informations. Cela inclut des détails sur les personnes ayant fourni le module, tels que les auteurs et les chercheurs qui l'ont développé. Elle répertorie également les options de base, qui sont les paramètres que vous devez configurer à l'étape suivante. De plus, elle offre une description détaillée du fonctionnement de la vulnérabilité et de la manière dont l'exploitation en tire parti. Enfin, elle fournit des références, qui sont des liens vers des bases de données externes (comme la National Vulnerability Database) pour une lecture approfondie.

La lecture de ces informations fait partie de la discipline de l'opérateur. Un module peut nécessiter un chemin très spécifique, un comportement de protocole particulier ou un environnement précis. Si vous ignorez ce contexte, vous travaillez à l'aveugle.

Prenez un moment pour lire la description afin de comprendre les mécanismes de la vulnérabilité Shellshock et comment ce module abuse des variables d'environnement CGI.

Configurer les cibles et les options d'exploitation

Dans cette étape, vous configurerez les options nécessaires pour pointer le module d'exploitation vers votre cible spécifique.

Chaque module nécessite la définition de certains paramètres. Pour afficher la configuration actuelle, utilisez la commande show options :

show options

Regardez la colonne Required. Si une option indique yes, elle doit être configurée avant que le module puisse s'exécuter. Les options les plus courantes que vous devez définir sont RHOSTS, qui spécifie l'hôte distant (l'adresse IP de votre cible), et RPORT, qui spécifie le port distant (le port sur lequel le service vulnérable s'exécute). Pour les modules d'exploitation Web, vous avez également souvent besoin de TARGETURI, qui indique à Metasploit quel chemin HTTP doit recevoir la requête malveillante.

Notre cible vulnérable s'exécute localement sur le port 8080, et le chemin CGI vulnérable est /cgi-bin/vulnerable. Utilisez la commande set pour configurer ces paramètres :

set RHOSTS 127.0.0.1
set RPORT 8080
set TARGETURI /cgi-bin/vulnerable

Après avoir défini les valeurs, il est toujours judicieux de vérifier que vos modifications ont été appliquées correctement. Exécutez à nouveau la commande options :

show options

Vous devriez maintenant voir 127.0.0.1 répertorié sous Current Setting pour RHOSTS, 8080 pour RPORT, et /cgi-bin/vulnerable pour TARGETURI.

Vérifier l'état de la vulnérabilité (check)

Dans cette étape, vous vérifierez si la cible est réellement vulnérable avant de lancer une attaque.

Le flux de travail check existe car la sécurité et la fiabilité sont primordiales. Confirmer l'exposition au préalable réduit le bruit inutile, les tentatives infructueuses et l'instabilité du service.

Dans les tests d'intrusion professionnels, lancer des exploits à l'aveugle peut faire planter des services ou déclencher des alertes de sécurité. Heureusement, de nombreux modules Metasploit (y compris celui que nous utilisons) prennent en charge la commande check.

La commande check envoie une sonde à la cible pour déterminer si la vulnérabilité existe, sans lancer immédiatement une charge utile d'exploitation complète.

Exécutez la commande suivante dans votre invite Metasploit :

check

Dans ce laboratoire, la cible Shellshock est intentionnellement vulnérable, vous devriez donc voir une sortie similaire à celle-ci :

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

Cela confirme que la cible est sensible au module. Vous avez maintenant terminé le flux de travail principal du module d'exploitation : rechercher le bon module, lire sa documentation, configurer les options requises et valider la cible avant l'exploitation.

Si vous souhaitez une confirmation manuelle supplémentaire en dehors de Metasploit, vous pouvez tester le service depuis un autre terminal avec curl http://127.0.0.1:8080 et vérifier que le chemin CGI existe à l'adresse http://127.0.0.1:8080/cgi-bin/vulnerable.

Puisque nous avons atteint notre objectif de comprendre la méthodologie des modules, vous pouvez maintenant quitter la console Metasploit :

exit

Résumé

Félicitations ! Vous avez terminé avec succès le laboratoire sur la compréhension des modules d'exploitation.

Dans ce laboratoire, vous avez appris la méthodologie fondamentale pour exploiter des vulnérabilités à l'aide du framework Metasploit. Vous vous êtes exercé à rechercher une exploitation Shellshock réelle, à analyser les descriptions et les exigences des modules, à configurer les options de cible distante telles que RHOSTS, RPORT et TARGETURI, et à utiliser la fonctionnalité intégrée check pour vérifier en toute sécurité une cible vulnérable. Ces étapes constituent le flux de travail principal pour tout testeur d'intrusion travaillant avec des modules d'exploitation.