Rechercher des modules dans Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Le Metasploit Framework est un outil puissant utilisé par les professionnels de la sécurité pour les tests d'intrusion et l'évaluation des vulnérabilités. Il contient une vaste base de données de modules, incluant des exploits, des scanners auxiliaires, des payloads, et plus encore. Avec des milliers de modules disponibles, savoir comment rechercher efficacement celui qui convient est une compétence essentielle.

Dans ce laboratoire, vous apprendrez les techniques fondamentales pour rechercher des modules dans Metasploit. Nous commencerons par des recherches par mots-clés basiques, puis nous explorerons comment affiner ces recherches en utilisant des filtres pour le type de module et des identifiants CVE spécifiques. Enfin, vous apprendrez comment inspecter les détails d'un module et le sélectionner pour son utilisation.

Utiliser la commande search avec un nom de service comme ssh

Dans cette étape, vous commencerez par lancer la console Metasploit et effectuer une recherche basique de modules liés à un service spécifique. La commande search est votre outil principal pour naviguer dans la vaste bibliothèque de modules de Metasploit.

Tout d'abord, ouvrez votre terminal et démarrez la console Metasploit Framework en exécutant la commande msfconsole. Le chargement peut prendre un moment.

msfconsole

Vous verrez une bannière et l'invite de commande Metasploit, qui ressemble à msf6 >.

Maintenant, recherchons tous les modules liés au service SSH (Secure Shell). Tapez la commande suivante dans la console Metasploit et appuyez sur Entrée :

search ssh

Metasploit affichera une liste de tous les modules qui contiennent "ssh" dans leur nom ou leur description. La sortie sera un tableau avec plusieurs colonnes :

  • #: Le numéro d'index du module dans les résultats de la recherche.
  • Name: Le chemin complet et le nom du module.
  • Disclosure Date: La date à laquelle la vulnérabilité a été divulguée publiquement.
  • Rank: Le niveau de fiabilité du module (par exemple, excellent, great, good).
  • Check: Indique si le module dispose d'une méthode de vérification pour déterminer si une cible est vulnérable sans l'exploiter.
  • Description: Un bref résumé de ce que fait le module.

Votre sortie ressemblera à ceci (la liste peut être plus longue et les versions peuvent différer) :

msf6 > search ssh

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

   ##   Name                                                 Disclosure Date  Rank     Check  Description
   -   ----                                                 ---------------  ----     -----  -----------
   0   auxiliary/scanner/ssh/ssh_login                      1999-01-01       normal   No     SSH Login Check Scanner
   1   auxiliary/scanner/ssh/ssh_login_pubkey               2002-07-23       normal   No     SSH Public Key Login Scanner
   2   exploit/linux/ssh/libssh_auth_bypass                 2018-10-16       great    Yes    LibSSH Authentication Bypass
   3   auxiliary/scanner/ssh/ssh_enumusers                  2018-08-20       normal   No     OpenSSH User Enumeration
   4   post/linux/manage/ssh_authorized_keys                                 normal   No     Linux Manage SSH Authorized Keys
...

Cette recherche simple vous donne un aperçu général de tous les modules disponibles liés à SSH.

Filtrer les résultats de recherche par type de module comme exploit ou auxiliary

Dans cette étape, vous apprendrez à affiner vos résultats de recherche en filtrant par un type de module spécifique. La recherche précédente a renvoyé divers types de modules, tels que auxiliary, exploit et post. Souvent, vous savez quel type de module vous avez besoin.

Metasploit vous permet de filtrer les recherches avec des mots-clés comme type. Les types les plus courants sont :

  • exploit : Modules qui tirent parti d'une vulnérabilité pour prendre le contrôle.
  • auxiliary : Modules pour le scan, le fuzzing, le sniffing et d'autres actions qui ne sont pas des exploits directs.
  • post : Modules de post-exploitation qui sont exécutés sur un système compromis.

Affinerons notre recherche précédente pour trouver uniquement les modules exploit liés à SSH. Utilisez le filtre type: dans votre requête de recherche :

search type:exploit ssh

La sortie sera maintenant limitée aux modules classés comme exploits :

msf6 > search type:exploit ssh

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

   ##   Name                                  Disclosure Date  Rank    Check  Description
   -   ----                                  ---------------  ----    -----  -----------
   0   exploit/linux/ssh/libssh_auth_bypass  2018-10-16       great   Yes    LibSSH Authentication Bypass
   1   exploit/multi/ssh/sshexec             2004-01-01       manual  No     SSH Exec
...

De même, si vous recherchiez un scanner pour collecter des informations sur un service SSH, vous rechercheriez des modules auxiliary :

search type:auxiliary ssh

Cette commande renverra une liste de scanners et d'autres outils non-exploits pour SSH.

msf6 > search type:auxiliary ssh

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

   ##   Name                                  Disclosure Date  Rank    Check  Description
   -   ----                                  ---------------  ----    -----  -----------
   0   auxiliary/scanner/ssh/ssh_login       1999-01-01       normal  No     SSH Login Check Scanner
   1   auxiliary/scanner/ssh/ssh_enumusers   2018-08-20       normal  No     OpenSSH User Enumeration
...

L'utilisation de filtres de type est un moyen puissant de trouver rapidement le type d'outil dont vous avez besoin.

Rechercher un identifiant CVE spécifique

Dans cette étape, vous apprendrez à rechercher des modules associés à un identifiant spécifique de Common Vulnerabilities and Exposures (CVE). Lorsque vous connaissez l'ID CVE d'une vulnérabilité que vous souhaitez cibler, c'est le moyen le plus direct de trouver l'exploit correspondant.

Un CVE est un identifiant unique pour une vulnérabilité de cybersécurité publiquement connue. Les modules Metasploit sont souvent tagués avec les CVE qu'ils traitent.

Vous pouvez rechercher par CVE en utilisant le filtre cve:. Par exemple, recherchons un module lié au CVE-2018-15473, une vulnérabilité d'énumération d'utilisateurs dans certaines versions d'OpenSSH.

search cve:2018-15473

Cette recherche est très spécifique et ne devrait renvoyer que le(s) module(s) conçu(s) pour cibler cette vulnérabilité exacte.

msf6 > search cve:2018-15473

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

   ##   Name                                 Disclosure Date  Rank    Check  Description
   -   ----                                 ---------------  ----    -----  -----------
   0   auxiliary/scanner/ssh/ssh_enumusers  2018-08-20       normal  No     OpenSSH User Enumeration

Comme vous pouvez le constater, la recherche identifie le module auxiliaire exact pour ce CVE. La recherche par CVE est une technique essentielle lorsque vous travaillez à partir d'un rapport de scan de vulnérabilité ou d'un avis de sécurité.

Utiliser la commande info pour afficher des informations détaillées sur un module

Dans cette étape, vous apprendrez à obtenir des informations détaillées sur un module avant de l'utiliser. Après avoir trouvé un module prometteur, il est important de comprendre ce qu'il fait, quelles options il requiert et qui l'a développé. La commande info fournit toutes ces informations.

Vous pouvez utiliser la commande info avec le nom complet du module ou son numéro d'index du dernier résultat de recherche. Obtenons plus d'informations sur le module ssh_enumusers que nous avons trouvé à l'étape précédente.

Vous pouvez utiliser son nom complet :

info auxiliary/scanner/ssh/ssh_enumusers

Alternativement, s'il s'agissait de l'élément 0 de votre dernière recherche, vous pourriez simplement utiliser info 0. L'utilisation du nom complet est généralement plus fiable.

La commande affichera une page détaillée sur le module :

msf6 > info auxiliary/scanner/ssh/ssh_enumusers

       Name: OpenSSH User Enumeration
     Module: auxiliary/scanner/ssh/ssh_enumusers
    License: Metasploit Framework License (BSD)
       Rank: Normal
  Disclosed: 2018-08-20

Provided by:
  Justin Gardner

Check supported:
  No

Basic options:
  Name      Current Setting  Required  Description
  ----      ---------------  --------  -----------
  RHOSTS                     yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
  RPORT     22               yes       The target port (TCP)
  THREADS   1                yes       The number of concurrent threads (max one per host)
  USER_FILE                  yes       File containing usernames, one per line

Description:
  This module enumerates valid usernames on OpenSSH servers by exploiting
  a subtle timing discrepancy in the C library's handling of password
  authentication.

References:
  https://nvd.nist.gov/vuln/detail/CVE-2018-15473
  https://www.exploit-db.com/exploits/45233/

Cette sortie vous donne des informations cruciales, y compris les options requises (RHOSTS, USER_FILE, etc.), une description complète de l'objectif du module et des liens vers les divulgations originales de vulnérabilité. Examinez toujours ces informations avant d'utiliser un module.

Sélectionner un module à utiliser avec la commande use

Dans cette dernière étape, vous apprendrez à sélectionner un module pour le rendre actif. Une fois que vous avez identifié et recherché un module, vous devez le charger dans le contexte du framework pour le configurer et l'exécuter. Ceci est fait avec la commande use.

Similaire à la commande info, use peut être suivi du nom complet du module ou de son numéro d'index des résultats de recherche. Sélectionnons le module ssh_enumusers.

use auxiliary/scanner/ssh/ssh_enumusers

Après avoir exécuté cette commande, vous remarquerez que votre invite Metasploit change. Elle inclut maintenant le nom du module actif, indiquant qu'il est chargé et prêt à être configuré.

msf6 > use auxiliary/scanner/ssh/ssh_enumusers
msf6 auxiliary(scanner/ssh/ssh_enumusers) >

La nouvelle invite msf6 auxiliary(scanner/ssh/ssh_enumusers) > confirme que le module est chargé. À partir de là, vous utiliseriez généralement des commandes comme show options pour voir quels paramètres doivent être définis, set pour les configurer, et enfin run ou exploit pour exécuter le module. Nous n'exécuterons pas le module dans ce laboratoire, mais sa sélection est l'étape finale essentielle du processus de recherche.

Pour revenir à l'invite principale msf6 >, vous pouvez utiliser la commande back.

Résumé

Dans ce laboratoire, vous avez acquis les compétences essentielles pour trouver des modules au sein du Metasploit Framework. Vous êtes désormais capable de naviguer parmi les milliers de modules disponibles avec précision et efficacité.

Vous avez pratiqué l'utilisation des commandes principales pour ce processus :

  • search : Pour trouver des modules basés sur des mots-clés tels que les noms de services.
  • search type:<type> : Pour filtrer les résultats par types de modules spécifiques comme exploit ou auxiliary.
  • search cve:<cveid> : Pour identifier précisément les modules associés à une vulnérabilité CVE spécifique.
  • info : Pour inspecter les détails, les options et le but d'un module.
  • use : Pour sélectionner et charger un module dans le contexte du framework.

La maîtrise de ces techniques de recherche est une étape fondamentale pour devenir compétent avec Metasploit. Vous êtes maintenant bien équipé pour trouver les bons outils pour vos futurs engagements de tests d'intrusion.