作用:

当我们拿到一个webshell的时候,我们能够执行一些命令,但是这些命令都是非交互的,也就是说不存在上下文的概念。当我们想使用vim、top等命令时,webshell就无能为力了。

而使用交互shell就可以解决这个问题了

Python pty

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

如果该机器上有python点话,我们可以输入该命令,可以实现简单的tty

但是这种方式有个问题,当我们ctrl+C的时候,所有连接都会断掉,又需要重新来一遍,而且vim虽然可以用,也有点问题,同时没有记录,无法使用上方向键执行上条命令。

升级nc为完全交互

靶机执行bash反弹shell后

$ python -c 'import pty; pty.spawn("/bin/bash")'  //启用python交互式
# 把它丢到后台挂起
$ ctrl + z   
# 重置stty,也就意味着你看不到输入的内容
$ stty raw -echo  
# 把后台挂起的程序调回前台
$ fg  
# 完全刷新终端屏幕
$ reset  
# 接下来设置环境变量,根据第一步得到的环境变量来设置
$ export SHELL=bash   
$ export TERM=xterm-256color   
$ stty rows 行数 columns 列数