Explorer les bases de Metasploit Framework

Beginner

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous explorerons les concepts fondamentaux et l'utilisation du Metasploit Framework, un puissant outil de test de pénétration open-source. Metasploit offre une plateforme complète pour identifier et exploiter les vulnérabilités dans divers systèmes et applications. L'objectif de ce laboratoire est de vous familiariser avec les composants principaux de Metasploit, ses méthodologies d'attaque et les techniques d'utilisation de base.


Skills Graph

Comprendre le Metasploit Framework

Dans cette étape, nous allons présenter le Metasploit Framework, son architecture et ses concepts de base.

Metasploit est un puissant et largement utilisé framework de test de pénétration développé en Ruby. Il est composé de divers composants, notamment des modules, des interfaces, des plugins, des utilitaires et des bibliothèques. Le framework est conçu pour être modulaire, permettant la réutilisation du code et l'extensibilité.

Le Metasploit Framework est organisé en plusieurs modules clés :

  1. Exploits : Ce sont des modules de code qui exploitent les vulnérabilités des systèmes cibles pour obtenir un accès non autorisé ou exécuter un code arbitraire.
  2. Auxiliary : Ce module comprend divers outils de support, tels que des scanners, des fuzzers et des utilitaires de manipulation de protocoles.
  3. Encoders : Ces modules sont utilisés pour obfusquer ou encoder les charges utiles (payloads) afin de contourner les mécanismes de sécurité tels que les logiciels antivirus ou les pare-feu.
  4. Payloads : Ces modules contiennent le code qui est exécuté sur le système cible après une exploitation réussie.
  5. Post-Exploitation : Ces modules fournissent des fonctionnalités pour maintenir l'accès et effectuer des actions supplémentaires sur le système compromis.

Metasploit propose plusieurs interfaces pour interagir avec le framework, notamment une interface en ligne de commande (msfconsole), une interface web (Metasploit Web UI) et une interface en ligne de commande (Metasploit Command Line).

Tout d'abord, lançons l'environnement de laboratoire. Démarrez Metasploitable2 en double-cliquant sur le terminal xfce sur le bureau et en entrant la commande suivante dans le terminal :

sudo virsh start Metasploitable2

Attendez que la machine cible démarre, cela peut prendre de 1 à 3 minutes.

Pinguez la machine cible pour vous assurer qu'elle est en fonctionnement (appuyez sur Ctrl - C pour quitter le ping) :

ping 192.168.122.102

Ensuite, lançons le conteneur Kali et entrons dans l'interface bash, exécutons l'opération de ping pour vérifier la connectivité réseau :

docker run -ti --network host b5b709a49cd5 bash

Maintenant, nous pouvons exécuter l'opération de ping pour vérifier la connectivité réseau (appuyez sur Ctrl - C pour quitter le ping) :

ping 192.168.122.102

Maintenant, nous pouvons démarrer la console Metasploit :

cd ~
msfconsole

Dans les étapes suivantes, nous explorerons l'utilisation de base de la console Metasploit et effectuerons diverses tâches.

Dans cette étape, nous allons apprendre à naviguer dans la console Metasploit et à explorer les modules disponibles.

La console Metasploit propose une interface en ligne de commande pour interagir avec le framework. Voici quelques commandes de base :

  • help : Affiche une liste des commandes disponibles et de leurs descriptions.
  • search [mot-clé] : Recherche des modules en fonction du mot-clé fourni.

Recherchons des modules liés à Linux dans la console Metasploit :

search linux

Cette commande affichera tous les modules liés aux vulnérabilités et aux exploits de Linux.

Pour sélectionner un module spécifique, utilisez la commande use suivie du chemin du module dans la console Metasploit :

use auxiliary/analyze/jtr_linux

Une fois un module sélectionné, vous pouvez afficher ses options et ses paramètres requis en utilisant la commande show options dans la console Metasploit :

show options

Voici un exemple de sortie que vous pourriez voir :

Module options (auxiliary/analyze/jtr_linux):

   Name                  Current Setting  Required  Description
   ----                  ---------------  --------  -----------
   BLOWFISH              false            no        Inclure les hachages BLOWFISH (Très lent)
   BSDI                  true             no        Inclure les hachages BSDI
   CONFIG                                 no        Le chemin vers un fichier de configuration John à utiliser au lieu de la configuration par défaut
   CRACKER_PATH                           no        Le chemin absolu vers l'exécutable du cracker
   CUSTOM_WORDLIST                        no        Le chemin vers une liste de mots personnalisée facultative
   DES                   true             no        Inclure les hachages DES
   FORK                  1                no        Nombre de processus pour John the Ripper à utiliser
   INCREMENTAL           true             no        Exécuter en mode incrémental
   ITERATION_TIMEOUT                      no        Le temps maximal d'exécution pour chaque itération de cracking
   KORELOGIC             false            no        Appliquer les règles KoreLogic au mode de liste de mots de John the Ripper (plus lent)
   MD5                   true             no        Inclure les hachages MD5
   MUTATE                false            no        Appliquer des mutations courantes à la liste de mots (LENT)
   POT                                    no        Le chemin vers un fichier POT John à utiliser au lieu du fichier par défaut
   SHA256                false            no        Inclure les hachages SHA256 (Très lent)
   SHA512                false            no        Inclure les hachages SHA512 (Très lent)
   USE_CREDS             true             no        Utiliser les données d'identification existantes enregistrées dans la base de données
   USE_DB_INFO           true             no        Utiliser les informations de schéma de base de données pillées pour initialiser la liste de mots
   USE_DEFAULT_WORDLIST  true             no        Utiliser la liste de mots par défaut de Metasploit
   USE_HOSTNAMES         true             no        Initialiser la liste de mots avec les noms d'hôtes de l'espace de travail
   USE_ROOT_WORDS        true             no        Utiliser la liste de mots de racines courantes
   WORDLIST              true             no        Exécuter en mode de liste de mots


Auxiliary action:

   Name  Description
   ----  -----------
   john  Utiliser John the Ripper

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Configuration des options de module

Dans cette étape, nous allons apprendre à configurer les options d'un module sélectionné dans Metasploit.

Tout d'abord, si vous n'êtes pas dans la console Metasploit, vous devriez démarrer la console Metasploit :

cd ~
msfconsole

Sélectionnez un module :

use auxiliary/analyze/jtr_linux

De nombreux modules nécessitent la configuration d'options spécifiques avant de pouvoir être exécutés. Vous pouvez configurer une option en utilisant la commande set suivie du nom de l'option et de sa valeur dans la console Metasploit, comme set NOM_DE_L_OPTION valeur.

Par exemple, configurons l'option JOHN_PATH pour le module jtr_linux dans la console Metasploit :

set JOHN_PATH /usr/share/metasploit-framework/data/wordlists/password.lst

Vous pouvez également utiliser la commande setg pour configurer une option globale qui persistera lors des changements de module.

Après avoir configuré les options requises, vous pouvez exécuter le module en utilisant la commande run ou exploit dans la console Metasploit, selon le type de module.

run

ou

exploit

Pour revenir au contexte parent ou quitter le module actuel, utilisez la commande back.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Exploitation d'une vulnérabilité

Dans cette étape, nous allons simuler un scénario réaliste et tenter d'exploiter une vulnérabilité sur un système cible.

Tout d'abord, si vous n'êtes pas dans la console Metasploit, vous devriez démarrer la console Metasploit :

cd ~
msfconsole

Supposons que nous ayons identifié un serveur MySQL vulnérable à l'adresse IP cible 192.168.122.102. Nous pouvons utiliser le module mysql_login pour tenter une attaque de force brute sur les identifiants MySQL.

Sélectionnez le module mysql_login dans la console Metasploit :

use auxiliary/scanner/mysql/mysql_login

Ensuite, configurez les options requises dans la console Metasploit :

set RHOSTS 192.168.122.102
set user_file /path/to/usernames.txt
set pass_file /path/to/passwords.txt

Enfin, exécutez le module dans la console Metasploit :

exploit

Metasploit tentera de se connecter au serveur MySQL en utilisant les combinaisons de noms d'utilisateur et de mots de passe fournis dans les fichiers spécifiés. Les nom d'utilisateur et mot de passe que nous avons fournis ne sont que des exemples, la connexion peut échouer. Vous devriez les remplacer par les vrais nom d'utilisateur et mot de passe.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Tâches de post-exploitation

Dans cette étape, nous allons explorer les modules de post-exploitation disponibles dans Metasploit, qui peuvent être utilisés pour maintenir l'accès et effectuer des actions supplémentaires sur un système compromis.

Après avoir exploité avec succès une vulnérabilité et obtenu l'accès au système cible, vous pouvez utiliser les modules de post-exploitation pour effectuer diverses tâches, telles que :

  • Collecter des informations sur le système
  • Élever les privilèges
  • Maintenir un accès persistant
  • Pivoter vers d'autres systèmes

Tout d'abord, si vous n'êtes pas dans la console Metasploit, vous devriez démarrer la console Metasploit :

cd ~
msfconsole

Pour utiliser un module de post-exploitation, suivez les mêmes étapes que pour les autres types de modules dans la console Metasploit :

use post/windows/gather/enum_logged_on_users
show options

Voici un exemple de sortie que vous pourriez voir :

Module options (post/windows/gather/enum_logged_on_users):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   CURRENT  true             yes       Énumérer les utilisateurs actuellement connectés
   RECENT   true             yes       Énumérer les utilisateurs connectés récemment
   SESSION                   yes       La session sur laquelle exécuter ce module
set SESSION 1
exploit

Ce module exemple énumère les utilisateurs connectés sur un système Windows, mais Metasploit propose de nombreux autres modules de post-exploitation pour diverses plateformes et tâches.

Appuyez sur Ctrl+D pour quitter la console Metasploit, puis commencez l'inspection

Résumé

Dans ce laboratoire, nous avons exploré le Framework Metasploit, un outil puissant pour les tests de pénétration et l'évaluation des vulnérabilités. Nous avons appris les composants essentiels de Metasploit, tels que les exploits, les payloads et les modules auxiliaires. Nous avons également pratiqué la navigation dans la console Metasploit, la recherche de modules, la configuration des options et l'exécution de modules pour exploiter les vulnérabilités et effectuer des tâches de post-exploitation.

Metasploit offre une plateforme complète et polyvalente pour les hackers éthiques, les professionnels de la sécurité et les chercheurs afin d'identifier et de réduire les vulnérabilités de sécurité. En comprenant et en pratiquant avec Metasploit, vous pouvez améliorer vos compétences en matière de tests de pénétration, d'analyse des vulnérabilités et d'évaluation globale de la sécurité.