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 commeexploitouauxiliary.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.


