Volver al blog
Post-Explotación LinuxEspañol activo

Tratamiento TTY en Linux: cómo convertir una reverse shell limitada en una terminal usable

Guía para entender y aplicar el tratamiento TTY en Linux tras obtener una reverse shell: script, Ctrl+Z, stty raw -echo, fg, reset, TERM y alternativas con Python.

2026-05-275 min
ttyptyreverse-shelllinuxpost-explotacionbashsttyscripttermpentesting

Cuando conseguimos una reverse shell en un laboratorio de ciberseguridad, muchas veces la terminal que recibimos no es cómoda de usar. Podemos ejecutar comandos, pero la shell suele estar limitada: no funciona bien Ctrl + C, no tenemos autocompletado, algunas teclas se comportan raro y ciertos programas interactivos pueden fallar.

A este proceso de mejorar la terminal se le suele llamar tratamiento TTY. Dicho de forma simple: consiste en convertir una shell básica en una terminal más estable y parecida a una sesión real de Linux.

Este artículo está pensado para entornos controlados, laboratorios, CTFs y formación en ciberseguridad.

¿Qué problema tiene una reverse shell básica?

Una reverse shell básica nos permite ejecutar comandos en la máquina objetivo, pero normalmente no se comporta como una terminal completa.

Por ejemplo, puede pasar que:

  • No funcione correctamente el autocompletado con Tab.
  • Ctrl + C cierre la conexión en vez de cancelar un comando.
  • No podamos usar bien programas interactivos.
  • La terminal no reconozca correctamente el tipo de entorno.
  • La experiencia sea incómoda para enumerar el sistema.

La idea del tratamiento TTY es mejorar esa shell para poder trabajar mejor durante la fase de post-explotación.

Esquema rápido del proceso

Paso 1: crear una shell interactiva

Una vez tenemos la reverse shell, ejecutamos:

script /dev/null -c bash

Este comando inicia una nueva sesión de Bash usando script. En la práctica, nos ayuda a conseguir una shell más interactiva dentro de la máquina comprometida.

script /dev/null -c bash

En este punto, la terminal mejora, pero todavía no está completamente cómoda. Por eso hacemos algunos ajustes más desde nuestra máquina atacante.

Paso 2: suspender la conexión

Después de ejecutar el comando anterior, pulsamos:

Ctrl + Z

Esto suspende temporalmente la conexión y nos devuelve a nuestra terminal local.

No estamos cerrando la shell. Solo la estamos dejando en segundo plano durante un momento para poder ajustar cómo se comporta nuestra terminal.

Paso 3: ajustar la terminal local

Ahora, en nuestra máquina atacante, ejecutamos:

stty raw -echo; fg

Este comando hace dos cosas:

ParteQué hace
stty raw -echoAjusta la forma en la que nuestra terminal local envía y muestra caracteres
fgRecupera la reverse shell que habíamos suspendido

Después de esto, la shell vuelve al primer plano.

Puede que al recuperar la terminal se vea algo raro o que parezca que no responde igual. Es normal en este paso.

Paso 4: resetear la terminal

Cuando volvemos a la shell, podemos ejecutar:

reset

Este comando ayuda a limpiar el estado de la terminal y a que vuelva a comportarse de forma más normal.

reset

Después de eso, ya podemos configurar algunas variables de entorno.

Paso 5: configurar TERM y SHELL

Por último, ejecutamos:

export TERM=xterm
export SHELL=bash

Estos comandos ayudan a que la terminal sepa qué tipo de entorno está utilizando.

ComandoPara qué sirve
export TERM=xtermIndica el tipo de terminal que se va a usar
export SHELL=bashDefine Bash como shell de referencia

Con esto, la shell suele quedar mucho más cómoda para trabajar.

Comandos completos

El flujo completo sería el siguiente:

script /dev/null -c bash

Después pulsamos:

Ctrl + Z

Luego, en nuestra máquina atacante:

stty raw -echo; fg

Y finalmente, dentro de la shell:

reset
export TERM=xterm
export SHELL=bash

¿Qué conseguimos con esto?

Después del tratamiento TTY, la shell suele ser mucho más usable.

Podremos trabajar de forma más cómoda para:

  • Enumerar usuarios, permisos y procesos.
  • Movernos por el sistema de archivos.
  • Ejecutar comandos de Linux con menos problemas.
  • Usar una terminal más estable durante la práctica.
  • Continuar con la escalada de privilegios en mejores condiciones.

Resumen visual

Antes:
Shell limitada, incómoda y poco interactiva

Después:
Shell más estable, más cómoda y mejor preparada para trabajar

El tratamiento TTY no es una explotación por sí misma. Es una técnica de mejora de la sesión. Sirve para trabajar mejor una vez que ya hemos obtenido una shell en un entorno autorizado.

Conclusión

El tratamiento TTY es uno de esos pasos que al principio puede parecer extraño, pero que se vuelve muy útil cuando practicas laboratorios de ciberseguridad. No hace que la máquina sea más vulnerable, sino que mejora la forma en la que interactuamos con la shell obtenida.

En resumen: si tienes una reverse shell básica y quieres trabajar de forma más cómoda, este pequeño proceso puede marcar bastante la diferencia.

Siempre realiza estas pruebas únicamente en laboratorios propios, CTFs o entornos donde tengas autorización.