Nice job obtaining that reverse shell! But why is there no tab completion? That’s because you’re using a non-interactive shell. There are ways to upgrade a non-interactive shell to an interactive one, which gives you tab completion, signals (Ctrl-C to send SIGTERM instead of closing your revshell), and more.

You can also consider running SSH backdoor if the firewall allows it.

Linux

Using python3 and bash (stty raw -echo doesn’t work in fish last time I tried):

python -c 'import pty; pty.spawn("/bin/bash")'
^Z
stty raw -echo
fg
export TERM=xterm-256color
reset # enter xterm-256color when prompted
export SHELL=bash

Windows

There is no way to “upgrade” a simple reverse shell to a fully interactive one yet, but you can at least prefix the netcat listener with rlwrap to fix any CLRF issue. If the target host has PowerShell with ConPty support (meaning a somewhat modern version of Windows), use ConPtyShell for a full-fledged shell with tab autocompletion, colors, etc.