Collecte d'informations et modules auxiliaires

CybersécuritéBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le laboratoire sur la collecte d'informations et les modules auxiliaires !

Lorsque l'on pense au framework Metasploit, on pense immédiatement à l'exploitation : le lancement de charges utiles (payloads) pour compromettre des systèmes vulnérables. Cependant, Metasploit est également un outil puissant pour les phases de reconnaissance et de collecte d'informations lors d'un test d'intrusion.

Metasploit propose une catégorie de modules appelés modules auxiliaires (Auxiliary modules). Contrairement aux modules d'exploitation, les modules auxiliaires n'exécutent pas de charge utile sur le système cible. Ils sont conçus pour effectuer des tâches telles que le scan de ports, l'identification de services, le fuzzing et le scan de vulnérabilités.

Cette distinction est importante car elle souligne que l'exploitation n'est qu'une étape parmi d'autres. Un travail offensif efficace repose également sur une reconnaissance, une énumération et une validation structurées.

Dans ce laboratoire, vous apprendrez à naviguer dans la console Metasploit, à rechercher des modules auxiliaires spécifiques, à configurer leurs paramètres, à exécuter des scans réseau sur une cible locale et à consulter les résultats stockés automatiquement dans la base de données de Metasploit.

Rechercher des modules auxiliaires

Dans cette étape, vous allez lancer la console du framework Metasploit et apprendre à rechercher des modules auxiliaires.

Metasploit contient des milliers de modules. Pour trouver ce dont vous avez besoin, vous pouvez utiliser la commande intégrée search. La commande de recherche vous permet de filtrer par type de module, nom, plateforme, etc.

Tout d'abord, ouvrez votre terminal et lancez la console Metasploit. Nous utiliserons l'option -q pour démarrer en mode "silencieux", ce qui permet d'ignorer la grande bannière en art ASCII et de démarrer la console plus rapidement.

Savoir effectuer des recherches efficaces est une compétence pratique dans Metasploit. Le framework est trop vaste pour être parcouru manuellement à chaque fois ; apprendre à restreindre la sélection de modules fait donc partie intégrante de son utilisation efficace.

Tapez la commande suivante dans votre terminal :

msfconsole -q

Vous verrez apparaître l'invite de commande Metasploit, qui ressemble à msf6 >. Cela indique que vous êtes maintenant dans le shell interactif de Metasploit. Si c'est la première fois que vous lancez Metasploit dans cet environnement, il se peut qu'il vous demande brièvement si vous souhaitez configurer une nouvelle base de données. Répondez yes et attendez la fin de l'initialisation.

Ensuite, recherchons un module capable d'effectuer un scan de ports TCP de base. Une recherche par mot-clé simple est plus fiable entre les différentes versions de Metasploit que l'utilisation de multiples filtres de recherche.

Exécutez la commande suivante dans la console Metasploit :

search portscan

Vous devriez voir un résultat similaire à celui-ci :

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

   ##  Name                                              Disclosure Date  Rank    Check  Description
   -  ----                                              ---------------  ----    -----  -----------
   0  auxiliary/scanner/portscan/ack                                     normal  No     TCP ACK Firewall Scanner
   1  auxiliary/scanner/portscan/ftpbounce                               normal  No     FTP Bounce Port Scanner
   2  auxiliary/scanner/portscan/syn                                     normal  No     TCP SYN Port Scanner
   3  auxiliary/scanner/portscan/tcp                                     normal  No     TCP Port Scanner
   4  auxiliary/scanner/portscan/xmas                                    normal  No     TCP "XMas" Port Scanner

Les résultats de recherche affichent une liste de modules correspondants. Chaque module possède un chemin spécifique (par exemple, auxiliary/scanner/portscan/tcp), un rang et une brève description. Dans l'étape suivante, nous sélectionnerons l'un de ces modules pour l'utiliser.

Configurer les paramètres de la cible (RHOSTS)

Dans cette étape, vous allez sélectionner un module de scan de ports spécifique et configurer ses paramètres.

Pour indiquer à Metasploit quel module vous souhaitez utiliser, vous devez employer la commande use suivie du chemin du module. Nous utiliserons le scanner de ports TCP standard.

Exécutez la commande suivante dans votre console Metasploit :

use auxiliary/scanner/portscan/tcp

Remarquez que votre invite de commande change pour msf6 auxiliary(scanner/portscan/tcp) >. Cela indique que le module est maintenant actif.

Avant d'exécuter un module, vous devez configurer ses paramètres. Vous pouvez afficher tous les paramètres disponibles pour le module actuel en utilisant la commande show options :

show options

Le résultat affichera un tableau d'options. Faites attention à la colonne Required. Toute option marquée comme yes doit avoir une valeur définie avant que le module ne puisse être exécuté.

Module options (auxiliary/scanner/portscan/tcp):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   CONCURRENCY  10               yes       The number of concurrent ports to check per host
   DELAY        0                yes       The delay between connections, per thread, in milliseconds
   JITTER       0                yes       The delay jitter factor (maximum value by which to +/- DELAY) in milliseconds.
   PORTS        1-10000          yes       Ports to scan (e.g. 22-25,80,110-900)
   RHOSTS                        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   THREADS      1                yes       The number of concurrent threads (max one per host)
   TIMEOUT      1000             yes       The socket connect timeout in milliseconds

Le paramètre le plus important est RHOSTS (Remote Hosts), qui spécifie l'adresse IP cible ou la plage réseau. Pour ce laboratoire, nous scannerons notre propre machine locale, qui héberge plusieurs services.

Définissez l'adresse IP cible sur 127.0.0.1 (localhost) en utilisant la commande set :

set RHOSTS 127.0.0.1

Par défaut, ce module scanne les ports de 1 à 10000. Pour que notre scan se termine rapidement, limitons-le à quelques ports spécifiques où nous savons que des services sont censés être actifs dans cette configuration de laboratoire : FTP sur 21, HTTP sur 80 et PostgreSQL sur 5432.

Définissez l'option PORTS pour scanner uniquement ces ports spécifiques :

set PORTS 21,80,5432

Vous pouvez exécuter show options à nouveau pour vérifier que vos paramètres ont été correctement appliqués.

Exécuter les scans et stocker les résultats

Dans cette étape, vous allez exécuter le scan de ports configuré.

Une fois le scan lancé sous Metasploit, sa valeur ne réside pas seulement dans le résultat immédiat. Elle réside également dans le fait que les découvertes sont intégrées à la base de données et peuvent alimenter les modules et décisions ultérieurs.

L'un des plus grands avantages de l'utilisation de Metasploit pour la collecte d'informations est son intégration native avec une base de données. Lorsqu'une base de données est connectée, Metasploit stocke automatiquement les résultats de vos scans, gardant ainsi vos données de reconnaissance organisées.

Tout d'abord, vérifions que Metasploit est bien connecté à sa base de données PostgreSQL. Exécutez la commande suivante :

db_status

Vous devriez voir un résultat confirmant la connexion, tel que :

[*] Connected to msf. Connection type: postgresql.

Maintenant que nous avons confirmé que la base de données est active et que les options de notre module sont configurées, il est temps de lancer le scan. Vous pouvez démarrer le module en tapant run ou exploit. Pour les modules auxiliaires, run est la convention standard.

Exécutez le scan :

run

Metasploit va maintenant tenter de se connecter aux ports spécifiés sur l'adresse IP cible. Comme nous avons limité le scan à trois ports, il devrait se terminer presque instantanément.

Vous verrez un résultat similaire à ce qui suit, indiquant quels ports sont ouverts :

[+] 127.0.0.1             - 127.0.0.1:21 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:80 - TCP OPEN
[+] 127.0.0.1             - 127.0.0.1:5432 - TCP OPEN
[*] 127.0.0.1:            - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Le symbole [+] indique une découverte réussie (un port ouvert). En arrière-plan, Metasploit a récupéré ces informations et les a enregistrées directement dans sa base de données.

Afficher les hôtes et les services dans la base de données

Dans cette dernière étape, vous apprendrez à récupérer et à visualiser les informations que Metasploit a automatiquement enregistrées dans sa base de données pendant le scan.

Lors de la gestion d'un test d'intrusion de grande envergure, vous pourriez scanner des dizaines de réseaux et des centaines d'hôtes. Il est impossible de se souvenir de chaque port ouvert, c'est pourquoi les commandes de base de données sont extrêmement utiles.

Pour afficher une liste de tous les systèmes cibles que Metasploit a découverts et enregistrés, utilisez la commande hosts :

hosts

Le résultat affichera un tableau des hôtes connus. Vous devriez voir l'adresse IP locale que nous venons de scanner :

Hosts
=====

address    mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------    ---  ----  -------  ---------  -----  -------  ----  --------
127.0.0.1             Unknown                    device

Pour voir les ports ouverts et les services spécifiques découverts sur ces hôtes, utilisez la commande services :

services

Cette commande interroge la base de données et liste tous les ports ouverts que nous avons trouvés lors de notre scan :

Services
========

host       port  proto  name  state  info  resource  parents
----       ----  -----  ----  -----  ----  --------  -------
127.0.0.1  21    tcp          open         {}
127.0.0.1  80    tcp          open         {}
127.0.0.1  5432  tcp          open         {}

À ce stade, le scanner de ports TCP de base enregistre que ces ports sont ouverts, mais il peut ne pas remplir les noms de services détaillés ou les informations de version. À mesure que vous exécuterez des modules auxiliaires plus avancés par la suite, ce tableau pourra être enrichi avec des détails supplémentaires.

Vous avez terminé avec succès les objectifs du laboratoire ! Pour quitter la console Metasploit et revenir à votre terminal Linux standard, tapez :

exit

Résumé

Félicitations ! Vous avez terminé avec succès le laboratoire sur la collecte d'informations et les modules auxiliaires.

Dans ce laboratoire, vous avez appris que Metasploit est un framework polyvalent qui va bien au-delà de la simple exploitation. Vous vous êtes exercé à naviguer dans la console Metasploit, à rechercher des modules auxiliaires spécifiques et à configurer des paramètres essentiels comme RHOSTS et PORTS. De plus, vous avez exécuté un scan de ports réseau et utilisé la puissante intégration de base de données de Metasploit pour stocker et consulter automatiquement vos données de reconnaissance à l'aide des commandes hosts et services.

Ces compétences fondamentales sont essentielles pour organiser votre flux de travail lors de la phase de collecte d'informations de toute évaluation de sécurité.