Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socks
- import socket
- import re
- from Tkinter import *
- from Tkinter import Tk as ttk
- from io import BytesIO
- from bs4 import BeautifulSoup
- from time import sleep, strftime
- from random import randrange
- import requests
- #install libraries before usage:
- #pip install pysocks
- #pip install beautifulsoup (or beautifulsoup4)
- #pip install requests
- print("Starting...")
- ###config###
- MAX_RETRIES = 10
- message_title = "Hello user!"
- message_body = "What's up?"
- abmURL = "http://pwoah7foa6au2pul.onion/"
- abmUsername = "notillegaltolook" #notillegal2look
- abmPassword = "lollollol"
- headers = {"User-Agent" : "Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Firefox/45.0",
- "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
- "Accept-Encoding" : "gzip, deflate"
- }
- usersList = []
- global storeFile
- sesh = requests.Session()
- adapter = requests.adapters.HTTPAdapter(max_retries=MAX_RETRIES)
- sesh.mount('https://', adapter)
- sesh.mount('http://', adapter)
- globCaptchaText = "hurrdurr"
- def saveCaptcha(content):
- file_ = open('securimage.png', 'wb')
- file_.write(content)
- file_.close()
- def userEntry(*args):
- global globCaptchaText
- try:
- #print(captchaText.get()) #str(captchaText.get())
- globCaptchaText = captchaText.get()
- root.destroy()
- except ValueError:
- pass
- def newCaptcha(*args):
- try:
- root.destroy()
- sesh = requests.Session()
- resp = sesh.get(abmURL + "challenge.php", proxies=proxies, headers=headers)
- handleDDOSCaptcha(resp.text)
- except ValueError:
- pass
- def captchaPrompt():
- global root
- global captchaText
- root = Tk()
- root.title("CAPTCHA Time, faggot.")
- print("\a")
- mainframe = ttk.Frame(root, padding="3 3 12 12")
- mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
- mainframe.columnconfigure(0, weight=1)
- mainframe.rowconfigure(0, weight=1)
- captchaText = StringVar()
- captcha_entry = ttk.Entry(mainframe, width=10, textvariable=captchaText)
- captcha_entry.grid(column=1, row=3, sticky=(W, E))
- #ttk.Button(mainframe, text="New CAPTCHA", command=newCaptcha).grid(column=3, row=2, sticky=W)
- ttk.Button(mainframe, text="Send", command=userEntry).grid(column=3, row=3, sticky=W)
- captchaImage = PhotoImage(file= "securimage.png")
- ttk.Label(mainframe, image=captchaImage).grid(column=1, row=2, sticky=E)
- for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
- captcha_entry.focus()
- root.bind('<Return>', userEntry)
- root.mainloop()
- print("--------------=================---------------")
- print("--------------=================---------------")
- print("--------------=================---------------")
- print("--------------=================---------------")
- #globCaptchaText = captchaText.get()
- return captchaText.get()
- import requests
- proxies = {
- 'http': 'socks5://127.0.0.1:9150',
- 'https': 'socks5://127.0.0.1:9150'
- }
- def handleDDOSCaptcha(content):
- try:
- imagePath = getDDOSCaptchaPath(content)
- except Exception as e:
- print(e)
- imageContent = sesh.get(abmURL + imagePath, proxies=proxies, headers=headers)
- print("handleDDOSCaptcha cookies:")
- print(imageContent.cookies)
- saveCaptcha(imageContent.content)
- captchaText = captchaPrompt()
- print("captchatext : " + captchaText)
- resp = sesh.post(abmURL + "challenge.php", data = {"reff":"index.php", "answer":captchaText}, proxies=proxies, headers=headers)
- print("handleddoscaptcha cookies: ")
- print(resp.cookies)
- print("items:")
- #print(sesh.cookies.items())
- print(resp.url)
- if resp.url == abmURL + "challenge.php":
- print("[-] Failed CAPTCHA...")
- #handleDDOSCaptcha(content)
- #sesh = requests.Session()
- resp = sesh.get(abmURL + "challenge.php", proxies=proxies, headers=headers)
- return handleDDOSCaptcha(resp.text)
- else:
- print("[+] Passed CAPTCHA! (at " + resp.url + ")")
- return resp
- def getDDOSCaptchaPath(htmlsource):
- soup = BeautifulSoup(htmlsource, 'lxml')
- for tag in soup.find_all("img", alt="Captcha"):
- return tag.get("src")
- def coolSleep(min, max):
- sleepTime = randrange(min, max)
- i = 0
- while i <= sleepTime:
- print("Sleeping: " + str(i) + " / " + str(sleepTime) + "\r")#, end="", flush=True)
- sleep(1)
- i += 1
- return
- def handleLogin():
- #user=notillegaltolook
- #pass=lollollol
- #captcha_code=aAYUw2
- imageContent = sesh.get(abmURL + "ifl/lb/securimage86/securimage_ren.php", proxies=proxies, headers=headers)
- saveCaptcha(imageContent.content)
- captchaText = captchaPrompt()
- print("[~] Login Captcha Text: " + captchaText)
- payload = {"user" : abmUsername, "pass" : abmPassword, "captcha_code" : captchaText}
- resp = sesh.post(abmURL + "login.php", data = payload, proxies=proxies, headers=headers)
- if resp.url == abmURL + "index.php":
- print("[+] Logged in!")
- return True
- print("[-] Wrong user/pass or CAPTCHA. ( " + resp.url + ")")
- return False
- def send_msg(user):
- resp = sesh.get(abmURL + "messagenew.php", proxies=proxies, headers=headers)
- imageContent = sesh.get(abmURL + "ifl/lb/securimage86/securimage_ren.php", proxies=proxies, headers=headers)
- saveCaptcha(imageContent.content)
- captchaText = captchaPrompt()
- print("[~] Message Captcha Text: " + captchaText)
- payload = {"aid": "",
- "captcha_code": captchaText,
- "cid": "-1",
- "da_content": message_body,
- "da_delay": "0",
- "da_title": message_title,
- "da_tousername": user,
- "did": "-1"}
- cookiedict = sesh.cookies.get_dict()
- cookiestring = "".join(['%s=%s; ' % (key, value) for (key, value) in cookiedict.items()])
- headers["Cookie"] = cookiestring
- resp = sesh.post(abmURL + "messagenew.php", data = payload, proxies=proxies, headers=headers)
- if resp.url == abmURL + "messages.php?folderid=1":
- print("[+] Sent message successfully!")
- return True
- else:
- print("[-] Failed to send message")
- return False
- def scrape():
- resp = sesh.get(abmURL + "forum/index.php?members/", proxies=proxies, headers=headers)
- if resp.url != abmURL + "forum/index.php?members/":
- print("[-] Redirected " + resp.url)
- soup = BeautifulSoup(resp.content, "lxml")
- print("[~] Scraping...")
- for atag in soup.find_all("a"):
- if atag.get("data-tipclass") == "flipped":
- #print(atag.get("href"))
- #searchObj = re.search(r'members/(.*)\./', str(atag.get("href")))
- searchObj = re.search(r'(.*), ', str(atag.get("title")))
- if searchObj:
- user = searchObj.group(1)
- if user not in usersList:
- print("[+] Scraped username: " + user)
- usersList.append(user)
- storeFile.write(user + "\n")
- #if matchObj:
- # print(matchObj.group())
- # usersList.append(matchObj.group())
- #else:
- # print("no match")
- return resp
- resp = sesh.get(abmURL + "forum/index.php", proxies=proxies, headers=headers)
- loggedIn = False
- with open("users.txt") as f:
- content = f.readlines()
- while len(content) > 0:
- try:
- if resp.url == abmURL + "challenge.php":
- print("[+] DDoS Captcha...")
- resp = handleDDOSCaptcha(resp.text)
- else:
- print("[+] No DDoS CAPTCHA...")
- if not loggedIn:
- coolSleep(10, 20)
- resp = sesh.get(abmURL + "login.php", proxies=proxies, headers=headers)
- if not loggedIn:
- login = handleLogin()
- if login:
- print("[+] Login success!")
- loggedIn = True
- else:
- print("[-] Login failure!")
- exit()
- if loggedIn:
- print("Sending message to ", content[0])
- send_msg(content[0])
- content.pop(0)
- coolSleep(10, 20)
- except Exception as e:
- print("[!] Got some exception... ")
- print(e)
- resp = sesh.get(abmURL + "forum/index.php", proxies=proxies, headers=headers)
- pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement