Recherche et Sélection de Modules Metasploit

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le monde de Metasploit ! Le Metasploit Framework est un outil open-source incroyablement puissant utilisé par les professionnels de la cybersécurité pour développer, tester et exécuter des exploits. Il contient une vaste base de données de modules, qui sont des morceaux de code pouvant être utilisés pour diverses tâches de tests d'intrusion (penetration testing). Ces modules comprennent des exploits, des charges utiles (payloads) et des outils auxiliaires.

Dans ce laboratoire, vous apprendrez le flux de travail fondamental pour travailler avec les modules Metasploit. Vous commencerez par lancer la console Metasploit, puis vous apprendrez à rechercher des modules spécifiques, à en sélectionner un à utiliser et à configurer ses options de base. C'est l'ensemble de compétences fondamentales pour tout aspirant testeur d'intrusion.

Dans cette étape, vous apprendrez à utiliser la commande search pour trouver des modules au sein du Metasploit Framework. La commande search est votre outil principal pour naviguer parmi les milliers de modules disponibles.

Tout d'abord, lançons la console Metasploit Framework. Cela peut prendre un moment pour démarrer.

msfconsole

Vous verrez une bannière et l'invite de commande Metasploit, qui ressemble à msf >. Toutes les commandes suivantes dans ce laboratoire seront exécutées à l'intérieur de cette console.

Pour rendre votre recherche plus efficace, vous pouvez utiliser des mots-clés pour filtrer les résultats. L'un des mots-clés les plus courants est type, qui vous permet de spécifier le genre de module que vous recherchez (par exemple, exploit, payload, auxiliary).

Recherchons tous les modules classés comme exploits. Tapez la commande suivante dans la console Metasploit :

search type:exploit

Vous verrez une longue liste d'exploits disponibles. Le résultat est organisé en colonnes :

  • #: Le numéro d'index du résultat de la recherche.
  • Name: Le chemin complet et le nom du module.
  • Disclosure Date: Date de divulgation publique de la vulnérabilité.
  • Rank: La fiabilité de l'exploit, allant de low (faible) à excellent.
  • Check: Indique si le module peut vérifier si une cible est vulnérable sans l'exploiter.
  • Description: Un bref résumé de ce que fait le module.
msf > search type:exploit

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

   ##   Name                                    Disclosure Date  Rank       Check  Description
   -   ----                                    ---------------  ----       -----  -----------
   0   exploit/windows/local/adobe_sandbox_esc  2011-04-15       excellent  No     Adobe Reader/Acrobat "Movie" Annotation Sandbox Escape
   1   exploit/windows/fileformat/acdsee_pica   2011-01-12       good       No     ACDSee PicaView 2.0 EML File Parsing Buffer Overflow
   ... (output truncated) ...

Ceci vous donne une idée générale des exploits disponibles, mais la liste est trop longue pour être pratique. Dans l'étape suivante, nous allons la restreindre.

Dans cette étape, vous apprendrez à affiner vos résultats de recherche. La recherche précédente a renvoyé des milliers d'exploits pour de nombreux systèmes d'exploitation différents. Pour trouver un exploit pertinent, vous devez ajouter davantage de filtres.

Le mot-clé platform vous permet de filtrer les modules en fonction du système d'exploitation cible, tel que windows, linux, osx ou android. Vous pouvez combiner plusieurs mots-clés dans une seule commande search pour créer une requête très spécifique.

Recherchons les exploits spécifiquement conçus pour la plateforme Linux.

search type:exploit platform:linux

Le résultat sera maintenant une liste beaucoup plus courte et plus gérable d'exploits pertinents pour les systèmes Linux.

msf > search type:exploit platform:linux

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

   ##   Name                                          Disclosure Date  Rank     Check  Description
   -   ----                                          ---------------  ----     -----  -----------
   0   exploit/linux/http/advantech_switch_bash_env_exec 2014-09-24       excellent  Yes    Advantech Switch Bash Environment Variable Code Injection (Shellshock)
   1   exploit/linux/http/airties_login_cgi_bof      2012-01-17       excellent  No     AirTies login.cgi Buffer Overflow
   ... (output truncated) ...

En combinant des mots-clés, vous pouvez rapidement cibler l'exploit exact dont vous avez besoin pour une cible spécifique.

Utiliser le Module Exploit avec use exploit/multi/handler

Dans cette étape, vous allez sélectionner un module avec lequel travailler. Après avoir trouvé un module avec la commande search, vous devez le charger dans le contexte du framework en utilisant la commande use.

La commande use prend le nom complet du module comme argument. Vous pouvez copier le nom directement à partir des résultats de la recherche.

Pour ce laboratoire, nous allons sélectionner un module spécial et très courant : exploit/multi/handler. Ce module n'est pas un exploit typique qui cible une vulnérabilité spécifique. Il s'agit plutôt d'un écouteur (listener) générique qui attend une connexion entrante provenant d'une charge utile (payload) qui a été exécutée sur une machine cible. C'est un outil fondamental pour intercepter des reverse shells.

Chargez le module handler avec la commande suivante :

use exploit/multi/handler

Après avoir exécuté la commande, vous remarquerez que votre invite de commande change.

msf > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf exploit(multi/handler) >

L'invite msf exploit(multi/handler) > indique que vous êtes maintenant dans le contexte du module exploit/multi/handler. Toutes les commandes que vous émettrez maintenant, comme la définition des options, s'appliqueront à ce module spécifique.

Vérifier les Options du Module avec show options

Dans cette étape, vous apprendrez à visualiser les paramètres configurables pour le module que vous avez sélectionné. Chaque module possède un ensemble d'options que vous pourriez avoir besoin de configurer avant de pouvoir l'exécuter. Ces options définissent le comportement du module, telles que l'adresse IP de la cible ou le port sur lequel écouter.

La commande show options affiche toutes les options disponibles pour le module actuellement chargé.

Maintenant que vous êtes dans le contexte de exploit/multi/handler, exécutez la commande suivante :

show options

Le résultat listera les options du module, ainsi que leurs paramètres actuels et leurs descriptions.

msf exploit(multi/handler) > show options

Module options (exploit/multi/handler):

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

Payload options (generic/shell_reverse_tcp):

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

Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target

Portez une attention particulière à la colonne Required. Toute option marquée comme yes doit être définie avant que vous puissiez exécuter le module. Pour multi/handler, LHOST (Listen Host - Hôte d'écoute) et LPORT (Listen Port - Port d'écoute) sont requis. LHOST est l'adresse IP sur laquelle votre machine écoutera, et LPORT est le port.

Définir les Options de Base avec set LHOST

Dans cette étape, vous apprendrez à configurer les options d'un module en utilisant la commande set. Cette commande vous permet d'attribuer des valeurs aux paramètres que vous avez vus avec show options.

La syntaxe générale est set <NOM_OPTION> <VALEUR>.

Pour le module multi/handler, l'option la plus importante à configurer est LHOST, qui signifie "Listen Host" (Hôte d'écoute). Ceci spécifie l'adresse IP sur laquelle le handler écoutera les connexions entrantes provenant des payloads.

Définissons l'option LHOST sur l'adresse de bouclage (loopback address), 127.0.0.1, afin que le handler écoute sur la machine locale.

set LHOST 127.0.0.1

Metasploit confirmera le changement :

LHOST => 127.0.0.1

Vous pouvez vérifier que l'option a été mise à jour en exécutant à nouveau show options. Vous verrez 127.0.0.1 listé comme Current Setting (Paramètre actuel) pour LHOST. Cette simple commande set est la manière dont vous configurerez tous les modules avant de lancer une attaque.

Pour quitter la console Metasploit, vous pouvez taper exit.

exit

Résumé

Félicitations pour avoir terminé ce laboratoire ! Vous avez appris les premières étapes essentielles pour travailler avec le Metasploit Framework.

Vous savez maintenant comment :

  • Lancer la console Metasploit (msfconsole).
  • Rechercher des modules en utilisant la commande search et les filtrer par type et platform.
  • Sélectionner un module spécifique à utiliser avec la commande use.
  • Visualiser les paramètres configurables d'un module avec show options.
  • Configurer les paramètres d'un module en utilisant la commande set (par exemple, définir LHOST pour les écouteurs (listeners)).

Ces commandes constituent le flux de travail de base pour toute tâche que vous effectuerez dans Metasploit. Les maîtriser est la clé pour utiliser efficacement cet outil puissant de test d'intrusion (penetration testing).