TTY

Step 1: Upgrade to TTY shell

In the remote shell, upgrade the shell to TTY:

python3 -c 'import pty; pty.spawn("/bin/bash")'

Step 1 is sufficient in most scenarios. If you plan to use things like Vim or Nano for privesc, then you need to complete all steps.

Step 2: Export terminal environmental variables

In your local shell, check the environmental variable $TERM:

$ echo $TERM
xterm-256color

In the remote shell, export the environmental variables $TERM and $SHELL:

export TERM=xterm-256color
export SHELL=/bin/bash

Step 3: Set up terminal size

In your local shell, check terminal rows and columns:

$ stty size
36 145

In the remote shell, press ctrl+z to bring the current session to background:

^Z
[1]+  Stopped        nc -nlvp 443

Now you are brought back to the local shell. Bring the reverse shell to foreground:

$ stty raw -echo;fg
nc -nlvp 443
$                reset

Adjust the terminal size:

stty rows 36 columns 145

Last updated