Advertisement
Guest User

Untitled

a guest
Dec 30th, 2016
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.73 KB | None | 0 0
  1. import socks
  2. import socket
  3. import re
  4. from Tkinter import *
  5. from Tkinter import Tk as ttk
  6. from io import BytesIO
  7. from bs4 import BeautifulSoup
  8. from time import sleep, strftime
  9. from random import randrange
  10. import requests
  11.  
  12. #install libraries before usage:
  13. #pip install pysocks
  14. #pip install beautifulsoup (or beautifulsoup4)
  15. #pip install requests
  16. print("Starting...")
  17. ###config###
  18. MAX_RETRIES = 10
  19. message_title = "Hello user!"
  20. message_body = "What's up?"
  21. abmURL = "http://pwoah7foa6au2pul.onion/"
  22. abmUsername = "notillegaltolook" #notillegal2look
  23. abmPassword = "lollollol"
  24.  
  25. headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0",
  26.            "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
  27.            "Accept-Encoding" : "gzip, deflate"
  28.            }
  29.  
  30. usersList = []
  31.        
  32. global storeFile
  33.  
  34. sesh = requests.Session()
  35. adapter = requests.adapters.HTTPAdapter(max_retries=MAX_RETRIES)
  36. sesh.mount('https://', adapter)
  37. sesh.mount('http://', adapter)
  38.  
  39. globCaptchaText = "hurrdurr"
  40.  
  41. def saveCaptcha(content):
  42.     file_ = open('securimage.png', 'wb')
  43.     file_.write(content)
  44.     file_.close()    
  45.  
  46. def userEntry(*args):
  47.     global globCaptchaText
  48.     try:
  49.         #print(captchaText.get()) #str(captchaText.get())
  50.         globCaptchaText = captchaText.get()
  51.         root.destroy()
  52.     except ValueError:
  53.         pass
  54.        
  55. def newCaptcha(*args):
  56.     try:
  57.         root.destroy()
  58.         sesh = requests.Session()
  59.         resp = sesh.get(abmURL + "challenge.php", proxies=proxies, headers=headers)
  60.         handleDDOSCaptcha(resp.text)
  61.        
  62.     except ValueError:
  63.         pass
  64.  
  65. def captchaPrompt():
  66.     global root
  67.     global captchaText
  68.    
  69.     root = Tk()
  70.     root.title("CAPTCHA Time, faggot.")
  71.     print("\a")
  72.     mainframe = ttk.Frame(root, padding="3 3 12 12")
  73.     mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
  74.     mainframe.columnconfigure(0, weight=1)
  75.     mainframe.rowconfigure(0, weight=1)
  76.  
  77.  
  78.     captchaText = StringVar()
  79.  
  80.     captcha_entry = ttk.Entry(mainframe, width=10, textvariable=captchaText)
  81.     captcha_entry.grid(column=1, row=3, sticky=(W, E))
  82.  
  83.     #ttk.Button(mainframe, text="New CAPTCHA", command=newCaptcha).grid(column=3, row=2, sticky=W)
  84.     ttk.Button(mainframe, text="Send", command=userEntry).grid(column=3, row=3, sticky=W)
  85.  
  86.     captchaImage = PhotoImage(file= "securimage.png")
  87.     ttk.Label(mainframe, image=captchaImage).grid(column=1, row=2, sticky=E)
  88.    
  89.     for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
  90.  
  91.     captcha_entry.focus()
  92.     root.bind('<Return>', userEntry)
  93.  
  94.     root.mainloop()
  95.    
  96.     print("--------------=================---------------")
  97.     print("--------------=================---------------")
  98.     print("--------------=================---------------")
  99.     print("--------------=================---------------")
  100.  
  101.    
  102.     #globCaptchaText = captchaText.get()
  103.    
  104.     return captchaText.get()
  105.  
  106.  
  107. import requests
  108.    
  109. proxies = {
  110.     'http': 'socks5://127.0.0.1:9150',
  111.     'https': 'socks5://127.0.0.1:9150'
  112. }
  113.  
  114.  
  115. def handleDDOSCaptcha(content):
  116.     try:
  117.         imagePath = getDDOSCaptchaPath(content)
  118.     except Exception as e:
  119.         print(e)
  120.     imageContent = sesh.get(abmURL + imagePath, proxies=proxies, headers=headers)
  121.     print("handleDDOSCaptcha cookies:")
  122.     print(imageContent.cookies)
  123.     saveCaptcha(imageContent.content)
  124.     captchaText = captchaPrompt()
  125.    
  126.    
  127.     print("captchatext : " + captchaText)
  128.     resp = sesh.post(abmURL + "challenge.php", data = {"reff":"index.php", "answer":captchaText}, proxies=proxies, headers=headers)
  129.     print("handleddoscaptcha cookies: ")
  130.     print(resp.cookies)
  131.  
  132.     print("items:")
  133.     #print(sesh.cookies.items())
  134.  
  135.     print(resp.url)
  136.    
  137.     if resp.url == abmURL + "challenge.php":
  138.         print("[-] Failed CAPTCHA...")
  139.         #handleDDOSCaptcha(content)
  140.         #sesh = requests.Session()
  141.         resp = sesh.get(abmURL + "challenge.php", proxies=proxies, headers=headers)
  142.         return handleDDOSCaptcha(resp.text)
  143.     else:
  144.         print("[+] Passed CAPTCHA! (at " + resp.url + ")")
  145.            
  146.        
  147.     return resp
  148.    
  149. def getDDOSCaptchaPath(htmlsource):
  150.     soup = BeautifulSoup(htmlsource, 'lxml')
  151.    
  152.     for tag in soup.find_all("img", alt="Captcha"):
  153.         return tag.get("src")
  154.  
  155.  
  156. def coolSleep(min, max):
  157.     sleepTime = randrange(min, max)
  158.     i = 0
  159.     while i <= sleepTime:
  160.         print("Sleeping: " + str(i) + " / " + str(sleepTime) + "\r")#, end="", flush=True)
  161.         sleep(1)
  162.         i += 1
  163.        
  164.     return
  165.        
  166. def handleLogin():
  167.     #user=notillegaltolook
  168.     #pass=lollollol
  169.     #captcha_code=aAYUw2
  170.    
  171.     imageContent = sesh.get(abmURL + "ifl/lb/securimage86/securimage_ren.php", proxies=proxies, headers=headers)
  172.     saveCaptcha(imageContent.content)
  173.     captchaText = captchaPrompt()
  174.     print("[~] Login Captcha Text: " + captchaText)
  175.     payload = {"user" : abmUsername, "pass" : abmPassword, "captcha_code" : captchaText}
  176.     resp = sesh.post(abmURL + "login.php", data = payload, proxies=proxies, headers=headers)
  177.     if resp.url == abmURL + "index.php":
  178.         print("[+] Logged in!")
  179.         return True
  180.    
  181.     print("[-] Wrong user/pass or CAPTCHA. ( " + resp.url + ")")
  182.     return False
  183.    
  184.    
  185. def send_msg(user):
  186.     resp = sesh.get(abmURL + "messagenew.php", proxies=proxies, headers=headers)
  187.     imageContent = sesh.get(abmURL + "ifl/lb/securimage86/securimage_ren.php", proxies=proxies, headers=headers)
  188.     saveCaptcha(imageContent.content)
  189.     captchaText = captchaPrompt()
  190.     print("[~] Message Captcha Text: " + captchaText)
  191.     payload = {"aid": "",
  192.                "captcha_code": captchaText,
  193.                "cid": "-1",
  194.                "da_content": message_body,
  195.                "da_delay": "0",
  196.                "da_title": message_title,
  197.                "da_tousername": user,
  198.                "did": "-1"}
  199.     cookiedict = sesh.cookies.get_dict()
  200.     cookiestring = "".join(['%s=%s; ' % (key, value) for (key, value) in cookiedict.items()])
  201.     headers["Cookie"] = cookiestring
  202.     resp = sesh.post(abmURL + "messagenew.php", data = payload, proxies=proxies, headers=headers)
  203.     if resp.url == abmURL + "messages.php?folderid=1":
  204.         print("[+] Sent message successfully!")
  205.         return True
  206.     else:
  207.         print("[-] Failed to send message")
  208.         return False
  209.    
  210.  
  211. def scrape():    
  212.     resp = sesh.get(abmURL + "forum/index.php?members/", proxies=proxies, headers=headers)
  213.    
  214.     if resp.url != abmURL + "forum/index.php?members/":
  215.         print("[-] Redirected " + resp.url)
  216.    
  217.     soup = BeautifulSoup(resp.content, "lxml")
  218.    
  219.     print("[~] Scraping...")
  220.    
  221.     for atag in soup.find_all("a"):
  222.         if atag.get("data-tipclass") == "flipped":
  223.             #print(atag.get("href"))
  224.        
  225.             #searchObj = re.search(r'members/(.*)\./', str(atag.get("href")))
  226.             searchObj = re.search(r'(.*), ', str(atag.get("title")))
  227.             if searchObj:
  228.                 user = searchObj.group(1)
  229.                
  230.                
  231.                 if user not in usersList:
  232.                     print("[+] Scraped username: " + user)
  233.                     usersList.append(user)
  234.                     storeFile.write(user + "\n")
  235.         #if matchObj:
  236.         #    print(matchObj.group())
  237.         #    usersList.append(matchObj.group())
  238.         #else:
  239.         #    print("no match")
  240.  
  241.     return resp
  242.  
  243.  
  244. resp = sesh.get(abmURL + "forum/index.php", proxies=proxies, headers=headers)
  245. loggedIn = False
  246. with open("users.txt") as f:
  247.     content = f.readlines()
  248.  
  249. while len(content) > 0:
  250.     try:
  251.         if resp.url == abmURL + "challenge.php":
  252.                print("[+] DDoS Captcha...")
  253.                resp = handleDDOSCaptcha(resp.text)
  254.         else:
  255.             print("[+] No DDoS CAPTCHA...")
  256.        
  257.             if not loggedIn:
  258.                 coolSleep(10, 20)
  259.        
  260.             resp = sesh.get(abmURL + "login.php", proxies=proxies, headers=headers)
  261.             if not loggedIn:
  262.                 login = handleLogin()
  263.                 if login:
  264.                     print("[+] Login success!")
  265.                     loggedIn = True
  266.                 else:
  267.                     print("[-] Login failure!")
  268.                     exit()
  269.                
  270.             if loggedIn:
  271.                 print("Sending message to ", content[0])
  272.                 send_msg(content[0])
  273.                 content.pop(0)
  274.                 coolSleep(10, 20)
  275.                
  276.     except Exception as e:
  277.         print("[!] Got some exception... ")
  278.         print(e)
  279.         resp = sesh.get(abmURL + "forum/index.php", proxies=proxies, headers=headers)
  280.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement