Introduction
Le framework Metasploit est un outil puissant utilisé par les professionnels de la sécurité pour les tests d'intrusion et le développement d'exploits. L'un des composants essentiels de son architecture est la base de données backend, généralement PostgreSQL.
Il est important de souligner que Metasploit n'est pas simplement une collection d'exploits, mais une véritable plateforme de flux de travail. La base de données, les modules, les sessions et les espaces de travail existent pour vous aider à gérer une mission à mesure qu'elle gagne en complexité.
L'intégration d'une base de données avec Metasploit vous permet de stocker, rechercher et gérer efficacement les données collectées lors de vos évaluations. Cela inclut les hôtes découverts, les ports ouverts, les services en cours d'exécution et les identifiants extraits. En utilisant les espaces de travail (workspaces), vous pouvez séparer logiquement ces données pour différents projets ou réseaux cibles, garantissant ainsi un flux de travail de test d'intrusion propre et organisé.
Sans cette structure, une évaluation de grande envergure devient rapidement difficile à suivre. La base de données transforme des commandes isolées en une connaissance persistante que vous pouvez consulter et corréler.
Dans ce laboratoire, vous apprendrez à initialiser la base de données PostgreSQL, à interagir avec l'interface principale de Metasploit (msfconsole), à gérer les espaces de travail de projet et à alimenter votre base de données à l'aide d'outils de scan intégrés.
Initialiser la base de données PostgreSQL
Dans cette étape, vous allez initialiser la base de données PostgreSQL pour Metasploit. La base de données est un composant crucial de l'architecture du framework Metasploit. Elle stocke votre configuration, vos espaces de travail, les hôtes découverts, les services et les identifiants, permettant une gestion efficace des données lors des tests d'intrusion.
Tout d'abord, assurez-vous que le service PostgreSQL est en cours d'exécution. Utilisez la commande suivante pour démarrer le service :
sudo systemctl start postgresql
Ensuite, initialisez la base de données Metasploit. Cette commande crée une nouvelle base de données, configure un utilisateur dédié pour Metasploit et génère les fichiers de configuration nécessaires dans votre répertoire personnel :
msfdb init
Vous devriez voir un message indiquant que la base de données a été créée et configurée avec succès. La configuration est enregistrée dans un répertoire caché à l'emplacement ~/.msf4/database.yml.
Démarrer msfconsole et vérifier l'état de la base de données
Dans cette étape, vous allez lancer la console du framework Metasploit (msfconsole) et vérifier qu'elle est correctement connectée à la base de données PostgreSQL.
msfconsole peut être considéré comme le centre de commande du framework. Une fois la base de données connectée, les actions effectuées dans la console enrichissent un modèle interne partagé de l'engagement.
msfconsole est l'interface de ligne de commande principale pour interagir avec le framework Metasploit. Elle offre une console centralisée pour accéder à tous les modules, payloads et fonctionnalités de la base de données.
Démarrez la console en mode silencieux (pour ignorer la bannière de démarrage ASCII) en exécutant la commande suivante dans votre terminal :
msfconsole -q
Une fois la console chargée, votre invite de commande passera à msf6 >, indiquant que vous êtes désormais dans l'environnement Metasploit.
Vérifiez l'état de la connexion à la base de données en tapant la commande suivante dans la console :
db_status
Vous devriez voir un résultat similaire à celui-ci, confirmant la connexion :
[*] Connected to msf. Connection type: postgresql.
Vous pouvez laisser msfconsole ouvert pour les étapes suivantes.
Créer et gérer des espaces de travail
Dans cette étape, vous apprendrez à créer et à gérer des espaces de travail (workspaces). Les espaces de travail vous permettent de séparer logiquement vos données de test d'intrusion. Par exemple, vous pouvez avoir des espaces de travail différents pour différents clients ou réseaux cibles, garantissant ainsi que les hôtes et les identifiants ne se mélangent pas.
Assurez-vous d'être toujours dans l'invite msfconsole (msf6 >). Si vous l'avez quittée, tapez simplement msfconsole -q pour y retourner.
Pour afficher les espaces de travail actuels, tapez :
workspace
Vous verrez un espace de travail nommé default marqué d'un astérisque (*), indiquant qu'il s'agit de l'espace de travail actuellement actif.
Maintenant, créez un nouvel espace de travail nommé project_alpha en utilisant l'option -a (add) :
workspace -a project_alpha
La console basculera automatiquement vers l'espace de travail nouvellement créé. Vous pouvez le vérifier en exécutant à nouveau la commande workspace :
workspace
Vous devriez voir * project_alpha dans le résultat, confirmant que votre nouvel espace de travail est actif et prêt à stocker des données.
Importer des scans Nmap dans l'espace de travail
Dans cette étape, vous allez alimenter la base de données de votre espace de travail en exécutant un scan Nmap directement depuis Metasploit.
Metasploit fournit la commande db_nmap, qui exécute l'outil Nmap standard mais importe automatiquement les résultats du scan (hôtes, ports et services) dans la base de données de l'espace de travail actif.
À l'intérieur de votre msfconsole (assurez-vous d'être toujours dans l'espace de travail project_alpha), exécutez un scan rapide sur votre machine locale (127.0.0.1). Dans cette configuration de laboratoire, PostgreSQL est le service que nous savons être en cours d'exécution, nous allons donc scanner son port par défaut, 5432.
db_nmap -sV -p 5432 127.0.0.1
Attendez quelques instants que le scan se termine. Une fois terminé, vous pouvez afficher les hôtes découverts qui ont été automatiquement stockés dans la base de données :
hosts
Pour voir les services spécifiques et les ports ouverts découverts lors du scan, utilisez la commande services :
services
Vous verrez un tableau structuré affichant l'adresse IP de l'hôte, le port, le protocole, l'état et le nom du service. Comme nous avons scanné le port 5432, vous devriez voir une entrée de service liée à PostgreSQL plutôt que HTTP ou SSH.
Vous avez initialisé avec succès la base de données, géré les espaces de travail et importé les données de scan. 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 l'architecture et la configuration de la base de données.
Vous avez appris à initialiser la base de données PostgreSQL pour le framework Metasploit, à lancer msfconsole et à vérifier la connectivité de la base de données. De plus, vous maîtrisez désormais la création et la gestion des espaces de travail pour isoler les données de vos projets, et vous avez utilisé db_nmap pour scanner des cibles et importer les résultats directement dans votre base de données. Ces compétences fondamentales sont essentielles pour maintenir des flux de travail de test d'intrusion organisés et efficaces.



