Introduction
Le Metasploit Framework est un outil open-source puissant pour développer, tester et exécuter du code d'exploitation contre une machine cible distante. Une partie essentielle de toute évaluation de sécurité est la collecte d'informations, qui comprend le balayage de ports pour identifier les ports ouverts et les services en cours d'exécution.
Metasploit intègre le populaire scanner Nmap via la commande db_nmap. L'avantage principal de db_n_map est qu'il enregistre automatiquement les résultats du balayage directement dans la base de données Metasploit, vous permettant de gérer et d'interroger facilement les données collectées.
Dans ce laboratoire, vous apprendrez à effectuer des balayages de ports de base en utilisant db_nmap et à visualiser les résultats dans la console Metasploit.
Sélectionner un espace de travail pour les résultats du balayage
Dans cette étape, vous allez démarrer la console Metasploit et créer un espace de travail dédié. Les espaces de travail dans Metasploit vous aident à organiser vos projets en séparant les hôtes, les services et autres données collectées pour chaque évaluation.
Tout d'abord, ouvrez votre terminal et démarrez la console Metasploit Framework en exécutant la commande suivante. Le chargement peut prendre un moment.
msfconsole
Une fois que l'invite msfconsole (msf6 >) apparaît, vous pouvez créer et basculer vers un nouvel espace de travail. Nous nommerons notre espace de travail portscan_lab. Utilisez l'indicateur -a pour ajouter un nouvel espace de travail.
workspace -a portscan_lab
Vous devriez voir un message de confirmation.
[*] Added workspace: portscan_lab
[*] Workspace: portscan_lab
Pour confirmer que vous êtes dans le bon espace de travail, vous pouvez exécuter la commande workspace sans aucun argument. L'astérisque * indique l'espace de travail actuellement actif.
workspace
La sortie listera tous les espaces de travail disponibles :
default
* portscan_lab
Maintenant que votre espace de travail est configuré, vous êtes prêt à commencer le balayage.
Exécuter un balayage TCP SYN avec db_nmap -sS
Dans cette étape, vous allez effectuer un balayage TCP SYN. Ce type de balayage, également connu sous le nom de "balayage furtif" (stealth scan) ou "balayage semi-ouvert" (half-open scan), est un choix populaire car il est rapide et moins susceptible d'être enregistré par les systèmes cibles. L'indicateur -sS indique à Nmap d'effectuer un balayage SYN.
Dans l'invite msfconsole, utilisez la commande db_nmap pour balayer votre machine locale (localhost). Les résultats seront automatiquement enregistrés dans votre espace de travail portscan_lab.
db_nmap -sS localhost
La commande exécutera Nmap et affichera sa progression et ses résultats. La sortie ressemblera à la sortie Nmap standard.
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.000084s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE
[*] Nmap: 22/tcp open ssh
[*] Nmap: 5432/tcp open postgresql
[*] Nmap: 6200/tcp open oracle-tns
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Le balayage a identifié plusieurs ports ouverts, et ces informations sont maintenant stockées dans la base de données Metasploit.
Exécuter un balayage de détection de version de service avec db_nmap -sV
Dans cette étape, vous allez effectuer un balayage plus détaillé pour identifier les versions spécifiques des services exécutés sur les ports ouverts. Connaître la version du service est crucial pour trouver des vulnérabilités potentielles. L'indicateur -sV active la détection de version dans Nmap.
Exécutez la commande suivante dans votre invite msfconsole. Ce balayage prendra un peu plus de temps que le précédent car Nmap doit interagir avec chaque port ouvert pour sonder les informations de version.
db_nmap -sV localhost
La sortie sera plus détaillée que le balayage SYN. Notez la nouvelle colonne VERSION, qui contient les informations collectées par les sondes de détection de version.
[*] Nmap: Starting Nmap 7.94 ( https://nmap.org ) at ...
[*] Nmap: Nmap scan report for localhost (127.0.0.1)
[*] Nmap: Host is up (0.00011s latency).
[*] Nmap: Other addresses for localhost (not scanned): ::1
[*] Nmap: Not shown: 997 closed tcp ports (reset)
[*] Nmap: PORT STATE SERVICE VERSION
[*] Nmap: 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
[*] Nmap: 5432/tcp open postgresql PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
[*] Nmap: 6200/tcp open unknown
[*] Nmap: Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 6.78 seconds
Ces nouvelles informations sont également ajoutées automatiquement à la base de données, mettant à jour les enregistrements de l'hôte découvert et de ses services.
Lister les hôtes découverts dans la base de données avec la commande hosts
Dans cette étape, vous apprendrez à interroger la base de données Metasploit pour afficher les hôtes qui ont été découverts lors de vos balayages. La commande hosts fournit un résumé de tous les hôtes stockés dans l'espace de travail actuel.
Exécutez la commande hosts dans votre invite msfconsole :
hosts
La sortie sera un tableau listant tous les hôtes trouvés. Comme vous n'avez balayé que localhost, vous verrez une seule entrée.
Hosts
=====
address mac name os_name os_flavor os_sp purpose info comments
------- --- ---- ------- --------- ----- ------- ---- --------
127.0.0.1 localhost Linux Linux device
Cette commande est un moyen rapide de voir toutes les cibles qui ont été identifiées et stockées dans votre espace de travail de projet.
Lister les services découverts avec la commande services
Dans cette étape, vous utiliserez la commande services pour afficher des informations détaillées sur les ports ouverts et les services découverts sur les hôtes de votre base de données. Cette commande est particulièrement utile après avoir effectué un balayage de détection de version.
Exécutez la commande services dans votre invite msfconsole :
services
La sortie affichera un tableau détaillé de tous les services trouvés. Remarquez comment il inclut le port, le protocole, le nom du service et les informations de version que vous avez collectées à l'étape 3.
Services
========
Host Port Proto Name State Info
---- ---- ----- ---- ----- ----
127.0.0.1 22 tcp ssh open OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
127.0.0.1 5432 tcp postgresql open PostgreSQL DB 14.10 (Ubuntu 14.10-0ubuntu0.22.04.1)
127.0.0.1 6200 tcp unknown open
La commande services vous permet de passer rapidement en revue tous les points d'entrée potentiels sur vos systèmes cibles, ce qui constitue une partie fondamentale de la planification de la prochaine phase d'une évaluation de sécurité.
Résumé
Dans ce laboratoire, vous avez appris les bases de la réalisation de scans de ports au sein du Metasploit Framework.
Vous avez commencé par configurer un espace de travail dédié pour organiser votre projet. Ensuite, vous avez utilisé la commande db_nmap pour exécuter à la fois un scan TCP SYN rapide (-sS) et un scan de détection de version de service plus détaillé (-sV). Enfin, vous avez appris à interroger la base de données Metasploit en utilisant les commandes hosts et services pour examiner les résultats de scan automatiquement enregistrés.
Ce flux de travail est une pierre angulaire de la phase de collecte d'informations dans les tests d'intrusion et l'analyse de sécurité.


