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.
Comprendre le Framework Metasploit
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 :
- 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.
- Auxiliary : Ce module comprend divers outils de support, tels que des scanners, des fuzzers et des utilitaires de manipulation de protocoles.
- 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.
- Payloads : Ces modules contiennent le code qui est exécuté sur le système cible après une exploitation réussie.
- 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.
Navigation de base et exploration des modules
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 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é.