Tratamiento para la TTY
Cuando obtenemos acceso a un sistema víctima mediante una reverse shell, muchas veces nos encontramos con un entorno limitado donde ciertas funciones no están disponibles, como el uso de su
, edición de texto o incluso comandos que requieren interacción. Para solucionar esto, podemos mejorar la TTY y convertirla en una terminal completamente interactiva.
¿Qué es una TTY y por qué mejorarla?
En sistemas UNIX/Linux, una TTY (Teletype Terminal) es la interfaz de línea de comandos que permite la interacción con el sistema. Cuando obtenemos una reverse shell, normalmente estamos en un PTY (Pseudo-terminal) básico que no tiene las capacidades de una TTY real.
⚠️ Problemas comunes en una Reverse Shell sin tratamiento de TTY:
No podemos usar comandos interactivos como
sudo
,su
,nano
,vim
.La terminal no reconoce combinaciones como
Ctrl + C
oCtrl + Z
.La salida de comandos puede mostrarse de manera incorrecta o sin formateo adecuado.
Problemas al ejecutar programas que dependen de una terminal real.
Para evitar estos problemas, aplicamos una serie de ajustes que convierten nuestra shell en una más funcional.
Creación de una TTY interactiva con script
script
📌 Este comando inicia un entorno TTY funcional ejecutando bash
dentro de un pseudo-terminal gestionado por script
.
🔍 Explicación:
script
crea una sesión de terminal grabable./dev/null
evita la creación de un archivo de log innecesario.-c bash
ejecutabash
dentro de esta sesión.
✅ Esto nos permite una mejor interacción con la shell y mayor compatibilidad con herramientas interactivas.
Mejorando la Terminal y Ajustando TTY Manualmente
Una vez obtenida la shell, podemos mejorarla con los siguientes pasos:
🛠️ Poner la Shell en Segundo Plano y Modificar stty
stty
🔍 Explicación:
Suspender la shell con
<Ctrl> + <Z>
Esto envía la shell en segundo plano y nos permite modificar la terminal.
Configurar
stty raw -echo
stty raw
-> Pone la terminal en modo raw, permitiendo un control más completo.stty -echo
-> Desactiva el eco de caracteres, evitando doble impresión en pantalla.
fg
(Foreground)Vuelve a traer la shell a primer plano para seguir interactuando.
reset xterm
Restablece la terminal con una configuración más adecuada.
Exportar variables esenciales:
export TERM=xterm
→ Define el tipo de terminal comoxterm
, asegurando compatibilidad.export SHELL=/bin/bash
→ Nos aseguramos de que estamos enbash
en lugar desh
u otra shell limitada.
✅ Esto mejora la estabilidad de la sesión y evita problemas con la ejecución de ciertos comandos.
Ajustando el Tamaño de la Terminal
Algunas aplicaciones dependen de conocer el tamaño de la terminal. Podemos verificar y ajustar sus dimensiones con los siguientes comandos:
📏 Ver el tamaño de la terminal en el host víctima
Este comando devuelve las dimensiones actuales en filas (rows) y columnas (columns), por ejemplo:
🔄 Ajustar manualmente el tamaño de la terminal
Ejemplo:
✅ Esto garantiza que programas como vi
, nano
o incluso less
se rendericen correctamente.
Conclusión
El tratamiento de una TTY en una reverse shell es esencial para mejorar la estabilidad y funcionalidad de la sesión. Aplicando estos ajustes, podemos convertir una shell limitada en una terminal completamente interactiva, lo que nos permite ejecutar herramientas avanzadas sin restricciones.
🚀 ¡Ahora tu reverse shell será mucho más poderosa! 🏴☠️
Código utilizado completo
Last updated