Small initial stager connects back, downloads the full stage from MSF listener
Requiresexploit/multi/handler running on your machine
Smaller initial payload size — good when payload space is limited
More reliable in controlled environments
Stageless ( _ in name )
windows/x64/meterpreter_reverse_tcp
^
_ = stageless (everything in one)
Entire payload embedded; no second-stage download needed
Larger file size
Works without MSF running (just need a netcat listener for basic shells)
Better for unstable networks or when staging might fail
OSCP rule of thumb: Use staged (/) when you have MSF running as a handler. Use stageless (_) when you’re delivering a payload that needs to work standalone or you’re not sure if the second-stage download will succeed.
Target connects back over HTTPS (encrypted + looks like legit traffic)
reverse_http
Target connects back over HTTP
bind_tcp
Payload listens on target; attacker connects in
reverse_tcp_allports
Try all ports for the callback (firewall bypass)
reverse_tcp_uuid
UUID-based reverse TCP (for specific handlers)
reverse_named_pipe
SMB named pipe reverse connection (Windows)
find_tag
Find an existing connection via tag (for SMB exploits)
Tip:reverse_https is stealthier than reverse_tcp — traffic blends with normal HTTPS. Prefer it in real engagements.
Payload Types
Type
Description
shell
Basic OS shell (cmd.exe or /bin/sh). No MSF features.
meterpreter
Full-featured in-memory agent. Most powerful.
vnc
VNC viewer/injector (GUI access)
upexec
Upload and execute a file on target
exec
Execute a single command
loadlibrary
Load a DLL on target
messagebox
Pop a message box (testing/demo only)
Common Payloads Table
Windows
Payload
Arch
Notes
windows/x64/meterpreter/reverse_tcp
x64
Most common staged Windows payload
windows/x64/meterpreter_reverse_tcp
x64
Stageless equivalent
windows/x64/meterpreter/reverse_https
x64
Staged, HTTPS
windows/meterpreter/reverse_tcp
x86
32-bit staged
windows/meterpreter_reverse_tcp
x86
32-bit stageless
windows/x64/shell/reverse_tcp
x64
Staged basic cmd.exe shell
windows/x64/shell_reverse_tcp
x64
Stageless basic cmd.exe shell
windows/x64/powershell/reverse_tcp
x64
PowerShell session
windows/x64/vnc/reverse_tcp
x64
VNC GUI session
Linux
Payload
Arch
Notes
linux/x64/meterpreter/reverse_tcp
x64
Most common Linux staged
linux/x64/meterpreter_reverse_tcp
x64
Stageless
linux/x86/meterpreter/reverse_tcp
x86
32-bit Linux
linux/x64/shell/reverse_tcp
x64
Staged basic /bin/sh
linux/x64/shell_reverse_tcp
x64
Stageless /bin/sh
Web / Script
Payload
Platform
Notes
php/meterpreter/reverse_tcp
PHP
Staged PHP meterpreter
php/meterpreter_reverse_tcp
PHP
Stageless PHP
php/reverse_php
PHP
Simple PHP reverse shell (no MSF)
java/meterpreter/reverse_tcp
Java
For Tomcat/WAR deployments
java/shell_reverse_tcp
Java
Basic Java shell
python/meterpreter/reverse_tcp
Python
Staged Python meterpreter
cmd/unix/reverse_bash
bash
bash -i reverse shell one-liner
cmd/windows/reverse_powershell
PowerShell
PS reverse shell
Mobile
Payload
Platform
Notes
android/meterpreter/reverse_tcp
Android
Full meterpreter APK
apple_ios/aarch64/meterpreter_reverse_tcp
iOS
Stageless iOS
Checking if 32-bit or 64-bit Target
Before generating a payload, confirm the architecture:
# From meterpreter (if you already have a shell)sysinfo# From Nmap scannmap -sV -O 10.10.10.10# From a basic shelluname -m # Linuxwmic os get osarchitecture # Windows CMD[Environment]::Is64BitOperatingSystem # PowerShell
Safe bet: If unsure, try x64 first. If the exploit/payload fails, try x86.
Payload Decision Tree
Do you need MSF features (hashdump, pivot, etc.)?
├── YES → use meterpreter
│ ├── Will MSF handler be running? → staged (/)
│ └── Standalone needed? → stageless (_)
└── NO → use shell (lighter, stealthier)
├── Will MSF handler be running? → staged shell (/)
└── No handler? → stageless shell (_) or nc listener