En la terminología de Unix, un tty es un tipo particular de archivo de dispositivo que implementa una cantidad de comandos proporcionados por el hardware de nuestro equipo.
También otros TTYs llamados, en ocasiones, pseudo-tty se proporcionan (a través de una delgada capa de kernel) mediante programas llamados emuladores de
terminal, como xterm
, termite
,gnome-terminal
, konsole
.
Cuando nos conectamos mediante una reverse-shell
con otro equipo, en muchas ocasiones nos encontraremos con que la Shell de la que disponemos no son
prácticas, las proporciones no son correctas, no podemos utilizar atajos de teclado, al pulsar (Cntrl + L) perdemos la terminal y una larga serie de
inconvenientes.
Para evitar todos estos problemas, una vez hemos establecido la Shell inversa, podemos realizar lo que se conoce como un tratamiento de la TTY, para poder disponer de una Shell completamente funcional.
Para saber si nos encontramos en una TTY:
tty
Si nos reporta not a tty
introducimos los siguientes comandos:
script /dev/null -c bash
Luego, pulsamos Cntrl + z
para salir de la terminal e introducimos el segundo comando:
stty raw echo; fg
Y debajo de este comando a la derecha, escribimos reset xterm
para volver a la terminal ya lista.
reset xterm
En caso de no funcionar aún el Ctrl + l
para limpiar la terminal, realizamos tambien lo siguiente:
export SHELL=bash
export TERM=xterm
Para que las proporciones de la terminal sean iguales a las de nuestro sistema debemos ajustar tanto las filas como las columnas. Por ejemplo si abrimos
o creamos un archivo con nano
este se verá pequeño. Para ajustar estas proporciones primero debemos ir a una de nuestras ventas y ver que proporciones tiene:
stty size
En mi caso mi terminal tiene 52 filas y 189 columnas. Ahora ajustaremos con estos parámetros nuestra Reverse Shell. Para ello escribimos lo siguiente en la terminal de la Reverse Shell:
stty rows 52 columns 189