Full TTY en Linux
Cómo obtener una Full TTY desde una reverse shell para tener autocompletado, Ctrl+C, y moverse cómodamente por el sistema.
Cuando obtenemos una reverse shell básica, no tenemos autocompletado, Ctrl+C mata la conexión, y no podemos usar editores de texto. La solución es estabilizar la shell a Full TTY.
¿Qué es TTY?
TTY viene de Teletypewriter — originalmente hacía referencia a dispositivos de comunicación que transmitían texto entre computadoras. Hoy se refiere a cualquier terminal en un sistema Unix-like.
Los pasos
Paso 1 — Iniciar una sesión bash limpia con script:
script /dev/null -c bash
El comando script normalmente graba la salida a un archivo. Al redirigirla a /dev/null no guardamos nada, pero creamos un entorno de terminal controlado.
Paso 2 — Suspender la sesión:
Ctrl + Z
Paso 3 — Deshabilitar el echo local y traer el proceso al frente:
stty raw -echo; fg
stty raw pone el terminal en modo raw para que los caracteres se envíen directamente sin buffering. -echo desactiva el eco local. Esto es lo que nos da el Full TTY.
Paso 4 — Reset del terminal:
reset xterm
Paso 5 — Configurar el tipo de terminal:
export TERM=xterm-256color
Paso 6 — Cargar la configuración de bash:
source /etc/skel/.bashrc
Con esto tenés autocompletado, flechas, Ctrl+C sin perder la shell, y podés usar vim, nano, etc.