Shells
Tratamiento de la TTY interactiva
Una vez que tenemos una reverse shell, es vital configurar una TTY interactiva para trabajar de forma cómoda y segura. De esta manera, evitamos cerrar la conexión accidentalmente y ganamos la facilidad de desplazarnos con las flechas o utilizar el tab para autocompletar rutas. El proceso es muy sencillo: solo hay que ajustar la tty siguiendo estos pasos para obtener una sesión más fluida y robusta.
Desde la reverse shell obtenida, script /dev/null -c bash
transforma la sesión en una TTY interactiva.
$ script /dev/null -c bash
Script started, file is /dev/null
A continuación, hacemos Ctrl+Z
para suspender la Reverse Shell.
www-data@test:/$ ^Z
zsh: suspended nc -nlvp 443
Desde la reverse shell, con stty raw -echo; fg
recuperamos la sesión en primer plano y reset xterm
restablece la terminal para una experiencia interactiva óptima.
❯ stty raw -echo; fg
[1] + continued nc -nlvp 443
reset xterm
Exportamos las variables para que la terminal y la shell funcionen correctamente:
export TERM=xterm
corrige el valor por defecto de TERM (a veces aparece como "dump") y permite usar atajos de teclado.export SHELL=bash
fuerza a que la shell sea bash.
www-data@test:/$ export TERM=xterm
www-data@test:/$ export SHELL=bash
Desde nuestra máquina revisaremos las dimensiones de nuestra terminal para ajustarlas en la máquina víctima.
❯ stty size
Desde la máquina configuraremos la terminal con los valores de nuestra terminal. En el caso anterior, como ejemplo nos devolvió 40 filas y 230 columnas, el comando sería el siguiente.
www-data@test:/$ stty rows 40 columns 230
Spawning Interactive Shells
Python
python -c 'import pty; pty.spawn("/bin/sh")'
Perl
perl —e 'exec "/bin/sh";'
perl: exec "/bin/sh";
El comando anterior debe ejecutarse desde un script.
Ruby
exec "/bin/sh"
El comando anterior debe ejecutarse desde un script.
Lua
os.execute('/bin/sh')
El comando anterior debe ejecutarse desde un script.
Awk
awk 'BEGIN {system("/bin/sh")}'
Find
find / -name <file> -exec /bin/awk 'BEGIN {system("/bin/sh")}' \;
find . -exec /bin/sh \; -quit
Vim
Vim to Shell
vim -c ':!/bin/sh'
Vim Escape
vim
:set shell=/bin/sh
:shell
Última actualización
¿Te fue útil?