Advertisement
Guest User

Untitled

a guest
Aug 31st, 2018
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.77 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. from io import BytesIO
  5. from bs4 import BeautifulSoup
  6. from captcha_solver import CaptchaSolver
  7. import urllib.parse as urlparse
  8. import PIL.Image
  9. import sys
  10. import requests
  11. import random
  12. import uuid
  13. import urllib
  14. import gnupg
  15. import time
  16. import subprocess
  17. import pytesseract
  18.  
  19. url = "http://dfasyuoatwcchfgd.onion/"
  20.  
  21. usernames = []
  22.  
  23. subjects = [
  24.     "Bonjour",
  25.     "Présentation de :username",
  26.     "Hola ! C'est :username",
  27.     ":username",
  28.     "Présentation",
  29.     "Présentation :username",
  30.     "Je me présente",
  31.     "Salut les gars",
  32.     "Encore un nouveau",
  33.     "Bien le bonjour !",
  34.     "Salutation !",
  35.     "Voici :username",
  36.     "Hello les potos"
  37. ]
  38.  
  39. presentations = [
  40.     "Je me présente je m'appelle :username et je viens ici pour faire des affaires et trouvez des bons vendeurs de cannabis, car je suis un gros fumeur de weed.\n\nVoici ma clef PGP : [code]:public_key[/code]\n\n" + "et voici la signature qui va avec : \n\n" + "[code]:signature[/code]\n\n Je ne suis pas sur d'autre forum car seul DFAS m'intéresse c'est le meilleur forum que j'ai trouvé sur le DW. Voilà j'espère pouvoir me faire ma place ici. A bientot peut-être."
  41.     "Salut à tous ! \n\n Je viens de voir votre forum et ça a l'air super sympa, moi c'est :username et je suis ici pour acheter des bons produits du terroir. \n Je ne suis pas encore présent sur d'autre forum. \n\n Voici ma clef pgp : :public_key \n\n et voici ma signature \n\n :signature, @+ Les gangsters",
  42.     "Slt.\n\n Ayy. Je viens de découvrir le Dark Web et je suis tombé sur votre forum. On m'a dit qu'ici on pouvez acheter de la cam alors j'ai fait le pleins de BTC et donc je viens faire mes courses les potos. Je sais me servir de pgp etc.... Voici ma clef : \n[code]:public_key[/code]\n, et ma signature : \n\n :signature",
  43.     "Yo !!!!! \n\n Putain j'ai galéré pour venir jusqu'ici !! \n\n Enfin voilà je me présente moi c'est :username les amigos chuis venu ici pr voir ce quil se trame dans ses lieux chelous et jé aussi pls de btc donc si jvois du matos sympa bah je serai acheteur voili voulou les amigos ! jé une clef pgp que voici : \n\n [code]:public_key[/code] et pour l'otographe qui va avec \n\n :signature \n\n  Voilà amis de l'ombre là je prend l'apéro j'espère que je pourrai etre accepté! merci bcp",
  44.     "Bonjour,\n\nJe souhaite etre menbre de ce forum  afin d' enrichir mes connaisances , j'éspere y decouvrir des personnes passionnées tout comme moi , avec qui je pourrais discuter , partager et faire affaires. \n\n En éspérant du reponse positive su STAFF. \n\n # :username",
  45.     "Bonjour, Ici pour discuté je vois une board sérieuse  :)",
  46.     "Salut a tous, je suis :username assez connu du net et du depp sous le speudo de ange noir ou kiki bis anonymous depuis la creation en 2003 j'ai de trés bonne connaissance en informatique est hacking j'ai aussi un site internet destiné a pourir le systeme actuel ci vous désirez le lien je peu le fournir bien sur avec l'autorisation du straf ",
  47.     "Slt \n\njsuis la pr fR D jobs ac D person konpetente. \n g pris 2 3btc, pr acheté zatla en mass ! \n jcopi o6 D k ac une equipe a marseill 6 interessé pr Khout. \n voila pgp é 6gnatur kom demanD.\n\n [code]:public_key[/code] \n\n [code]:signature[/code]",
  48.     "Hello, \n\n On va faire simple, une présentation détaillée n'ayant pas sa place ici... \n Fouille dans le deep depuis un moment, recherches axées sur l'informatique.Pas la pour créer des problèmes, simplement partager et apprendre. \n Bien à vous !"
  49. ]
  50.  
  51. excluded_users = [
  52.     '130n',
  53.     'ManuLeCoq',
  54.     'Hachi',
  55.     'Spore',
  56.     'hamster-guerrier'
  57. ]
  58.  
  59. proxies = {
  60.  
  61. }
  62.  
  63. signatures = [
  64.     ":username pour présentation DFAS le :date",
  65.     "dfas, :username, le :date",
  66.     "signature pour présentation sur dfas de :username le :date",
  67.     "c'est :username pour dfas le :date"
  68. ]
  69.  
  70. with open('usernames.txt', 'r') as f:
  71.     for line in f.readlines():
  72.         usernames.append(line.strip())
  73.  
  74. while True:
  75.     session = requests.Session()
  76.  
  77.     headers = {
  78.         'User-agent': "Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0",
  79.         'Referer': url
  80.     }
  81.  
  82.     data = {
  83.         'step': '1',
  84.         'accept_agreement': "J'accepte les conditions de ce document."
  85.     }
  86.  
  87.     response = session.post(url + "index.php?action=register", headers=headers, data=data, proxies=proxies)
  88.  
  89.     headers['Referer'] = url + "index.php?action=register"
  90.  
  91.     response2 = session.get(url + "index.php?action=verificationcode;vid=register", headers=headers, proxies=proxies)
  92.  
  93.     image = PIL.Image.open(BytesIO(response2.content))
  94.     image.save("captcha.gif")
  95.  
  96.     cmd = "convert captcha.gif -morphology Dilate Rectangle:3 -negate -threshold 0 -negate -background white -alpha remove -crop 0x36-48+0 -morphology Dilate Rectangle:3 out_dfas.gif"
  97.  
  98.     print (subprocess.call(cmd, shell=True))
  99.  
  100.     captcha_str = pytesseract.image_to_string(PIL.Image.open("out_dfas.gif"), config="--oem 1 -l Latin")
  101.  
  102.     print ("Captcha : ", captcha_str)
  103.  
  104.     #solver = CaptchaSolver('browser')
  105.     #raw_data = open('captcha.gif', 'rb').read()
  106.     #captcha_str = solver.solve_captcha(raw_data)
  107.  
  108.     username = ""
  109.  
  110.     while len(username) < 3:
  111.         username = random.choice(usernames)
  112.         if username in excluded_users:
  113.             username = ""
  114.  
  115.     print ("Username: ", username)
  116.  
  117.     def random_string(string_length=10):
  118.         random = str(uuid.uuid4())
  119.         random = random.upper()
  120.         random = random.replace("-","")
  121.         return random[0:string_length]
  122.  
  123.     password = random_string(10)
  124.  
  125.     gpg = gnupg.GPG()
  126.  
  127.     input_data = gpg.gen_key_input(
  128.         key_type="RSA",
  129.         key_length=1024,
  130.         name_email=username + '@gmail.com',
  131.         passphrase='passphrase',
  132.     )
  133.  
  134.     pgp = gpg.gen_key(input_data)
  135.     ascii_armored_public_keys = gpg.export_keys(pgp.fingerprint)
  136.     date = time.strftime('%d/%m/%Y')
  137.  
  138.     signature = random.choice(signatures)
  139.     signature = signature.replace(":username", username)
  140.     signature = signature.replace(":date", date)
  141.  
  142.     signed_data = str(gpg.sign(signature, passphrase='passphrase', keyid=pgp.fingerprint, detach=False))
  143.  
  144.     data = {
  145.         'registration': '',
  146.         'user': username,
  147.         'passwrd1': password,
  148.         'passwrd2': password,
  149.         'email': random_string(10) + "@gmail.com",
  150.         'allow_email': 'on',
  151.         'customfield[cust_pgp]': ascii_armored_public_keys,
  152.         'register_vv[code]': captcha_str,
  153.         'regSubmit': 'Inscrivez-vous',
  154.         'step': '2'
  155.     }
  156.  
  157.     response3 = session.post(url + "index.php?action=register2", headers=headers, data=data, proxies=proxies, allow_redirects=False)
  158.  
  159.     if "register_error" in response3.text:
  160.         print("Fail.")
  161.         with open("out.html", "w") as f:
  162.             f.write(response3.text)
  163.         continue
  164.     else:
  165.         print("Success.")
  166.         with open('dfas_accounts.txt', 'a') as f:
  167.             f.write(username + ":" + password + "\n")  
  168.  
  169.     headers['Referer'] = url + 'index.php?action=register'
  170.  
  171.     parsed = urlparse.urlparse(response3.headers['Location'])
  172.     last_member_id = int(urlparse.parse_qs(parsed.query)['member'][0])
  173.  
  174.     print ("Last member id:", last_member_id)
  175.  
  176.     response4 = session.get(url + "index.php?action=login2;sa=check;member=" + str(last_member_id), headers=headers, proxies=proxies)
  177.     response5 = session.get(url + "index.php?action=post;board=2.0", headers=headers, proxies=proxies)
  178.  
  179.     subject = random.choice(subjects)
  180.     subject = subject.replace(":username", username)
  181.  
  182.     message = random.choice(presentations)
  183.     message = message.replace(":username", username)
  184.     message = message.replace(":public_key", ascii_armored_public_keys)
  185.     message = message.replace(":signature", signed_data)
  186.  
  187.     icons = [
  188.         'xx',
  189.         'thumbup',
  190.         'thumbdown',
  191.         'exclamation',
  192.         'cheesy',
  193.         'sad',
  194.         'wink',
  195.         'grin',
  196.         'question',
  197.         'lamp',
  198.         'smiley',
  199.         'angry',
  200.         'grin'
  201.     ]
  202.  
  203.     data = {
  204.         'postmodify': '',
  205.         'topic': '0',
  206.         'message_mode': '0',
  207.         'goback': '1',
  208.         'ns': 'NS',
  209.         'additional_options': "0",
  210.         'subject': subject,
  211.         'icon': random.choice(icons),
  212.         'message': message
  213.     }
  214.  
  215.     soup = BeautifulSoup(response5.text, features="lxml")
  216.  
  217.     for input in soup.select('#postmodify input'):
  218.         name = input.get('name')
  219.         if name not in data and name != "preview":
  220.             data[name] = input.get('value')
  221.  
  222.     response6 = session.post(url + "index.php?action=post2;start=0;board=2", headers=headers, data=data, proxies=proxies)
  223.  
  224.     with open("final.html", "w") as f:
  225.         f.write(response6.text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement