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/nullA continuación, hacemos Ctrl+Z para suspender la Reverse Shell.
www-data@test:/$ ^Z
zsh: suspended nc -nlvp 443Desde 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 xtermExportamos las variables para que la terminal y la shell funcionen correctamente:
export TERM=xtermcorrige el valor por defecto de TERM (a veces aparece como "dump") y permite usar atajos de teclado.export SHELL=bashfuerza a que la shell sea bash.
www-data@test:/$ export TERM=xterm
www-data@test:/$ export SHELL=bashDesde nuestra máquina revisaremos las dimensiones de nuestra terminal para ajustarlas en la máquina víctima.
❯ stty sizeDesde 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 230Spawning 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 \; -quitVim
Vim to Shell
vim -c ':!/bin/sh'Vim Escape
vim
:set shell=/bin/sh
:shellÚltima actualización
¿Te fue útil?