BF47 Brute Force Generator
Rédigé par BeHuman
Aucun commentaire

BF47 est générateur de dictionnaire pour attaque en force brute, l'algorithme est franchement simple à mettre en place
$ ./bf47 -m "azerty123" "$HOME/dico.txt"
$ ./bf47 -h BF47 Brute Force Generator GNU/GPL v3 BF47 to generate a dictionary to your brute force attacks Create by Be Human (human_be@rocketmail.com) Options: Help: bf47 -h or --help Functions: letters: bf47 -l or --letters [number] [file] digits: bf47 -d or --digits [number] [file] letters and digits: bf47 -ld [number] [file] punctuation: bf47 -p or --punctuation [number] [file] all : bf47 -a or --all [number] [file] manual : bf47 -m or --manual [number] [file] [strings]
#!/usr/bin/env python #-*- coding:utf-8 -*- import string, sys, os intro="""BF47 Brute Force Generator GNU/GPL v3 BF47 to generate a dictionary to your brute force attacks Create by Be Human (human_be@rocketmail.com)""" def start(): cnt=0 maxlen=int(sys.argv[2])+1 out=open(sys.argv[3], 'w') for a in range(maxlen): allkey('',a, cnt,out) out.close() def allkey(chaine,maxlen,cnt,out): if len(chaine) < maxlen: for b in range(len(dico)): allkey(chaine+dico[b], maxlen,cnt,out) else: if len(chaine) == maxlen: pOut(chaine,cnt,out) def pOut(chaine,cnt,out): cnt+=1 ochaine=chaine+"\n" out.write(ochaine.encode('utf8')) tailout='%s' % os.path.getsize(sys.argv[3]) print tailout+' => '+chaine def help(): print(intro+"""\n\nOptions: Help: bf47 -h or --help Functions: letters: bf47 -l or --letters [number] [file] digits: bf47 -d or --digits [number] [file] letters and digits: bf47 -ld [number] [file] punctuation: bf47 -p or --punctuation [number] [file] all : bf47 -a or --all [number] [file] manual : bf47 -m or --manual [number] [file] [strings]\n""") if (len(sys.argv) < 4): if (len(sys.argv) < 2): print("\n[!]Mauvais nombre d\'arguments[!]\n") help() else: if sys.argv[1] == "-h" or sys.argv[1] == "--help": help() else: print("\n[!]Mauvais nombre d\'arguments[!]\n") help() else: #white=string.whitespace white=' ' letters=string.letters digits=string.digits puncts=string.punctuation specs=u"à âäéèêëîïôöûüùçÀÂÄÉÈÊËÎÃÔÖÙÇ" if sys.argv[1] == "-l" or sys.argv[1] == "--letters": dico="%s%s%s"%( letters, specs, white ) start() elif sys.argv[1] == "-d" or sys.argv[1] == "--digits": dico="%s%s"%( digits, white ) start() elif sys.argv[1] == "-ld": dico="%s%s%s%s"%( letters, specs, digits, white ) start() elif sys.argv[1] == "-p" or sys.argv[1] == "--punctuation": dico="%s%s"%( puncts, white ) start() elif sys.argv[1] == "-a" or sys.argv[1] == "--all": dico="%s%s%s%s%s"%( letters, specs, digits, puncts, white ) start() elif sys.argv[1] == "-m" or sys.argv[1] == "--manual": dico=sys.argv[4] start() else: print("\n[!]Option inconnu[!]\n") help()