· 5 years ago · May 11, 2020, 10:46 AM
1# ohio.py
2from selenium import webdriver
3from selenium.webdriver.common.by import By
4from selenium.webdriver.support import expected_conditions as EC
5from selenium.webdriver.support.ui import WebDriverWait
6from selenium.webdriver.common.keys import Keys
7import random
8import re
9import requests
10import json
11import time
12
13counties = [ "Adams", "Allen", "Ashland", "Ashtabula", "Athens", "Auglaize", "Belmont", "Brown", "Butler", "Carroll", "Champaign", "Clark", "Clermont", "Clinton", "Columbiana", "Coshocton", "Crawford", "Cuyahoga", "Darke", "Defiance", "Delaware", "Erie", "Fairfield", "Fayette", "Franklin", "Fulton", "Gallia", "Geauga", "Greene", "Guernsey", "Hamilton", "Hancock", "Hardin", "Harrison", "Henry", "Highland", "Hocking", "Holmes", "Huron", "Jackson", "Jefferson", "Knox", "Lake", "Lawrence", "Licking", "Logan", "Lorain", "Lucas", "Madison", "Mahoning", "Marion", "Medina", "Meigs", "Mercer", "Miami", "Monroe", "Montgomery", "Morgan", "Morrow", "Muskingum", "Noble", "Ottawa", "Paulding", "Perry", "Pickaway", "Pike", "Portage", "Preble", "Putnam", "Richland", "Ross", "Sandusky", "Scioto", "Seneca", "Shelby", "Stark", "Summit", "Trumbull", "Tuscarawas", "Union", "Van Wert", "Vinton", "Warren", "Washington", "Wayne", "Williams", "Wood", "Wyandot" ]
14
15large_companies = [ "Kroger", "Macy’s", "Watson’s", "P&G", "National Machinery", "Goodyear Tire and Rubber Company", "L Brands", "First Student", "Parker Hannifin", "Cardinal Health", "Marathon Petroleum", "Sherwin-Williams", "Cintas", "Mason", "Speedway", "Flynn Restaurant Group LP", "Progressive", "The Midland Company", "Nationwide Mutual Insurance", "Dana", "Schottenstein Stores", "Gillette", "American Greetings", "Owens-Illinois", "KRLP", "The Ohio State University", "University Hospitals", "Jo-Ann Stores", "Diebold Nixdorf", "Big Lots", "Abercrombie & Fitch", "TravelCenters of America", "Bath & Body Works", "Vertiv", "KeyBank", "Fifth Third Bank", "American Electric Power", "Owens Corning", "Greif", "Ohio", "Huntington Bancshares", "FirstEnergy", "ProMedica", "First Transit", "Ohio Arts Council", "Timken Company", "Safelite AutoGlass", "Chemed", "RPM International", "Mettler-Toledo International", "DSW", "Wendy’s", "Worthington Industries", "Givaudan", "Cincinnati Children’s Hospital Medical Center", "Crown Equipment", "TriHealth", "HCR ManorCare", "Cooper Tire & Rubber Company", "Belcan", "Teradata", "Bravo Brio Restaurant Group", "R+L Carriers", "Lincoln Electric", "White Castle Management Co.", "University of Cincinnati", "Davey Tree Expert Company", "NACCO Industries", "AK Steel Holding", "Sunglass Hut", "Ohio University", "Faurecia Exhaust Systems", "Kent State University", "Covelli Enterprises", "Transportation Unlimited", "Tween Brands", "The MetroHealth System", "Case Western Reserve University", "STERIS", "Mentor", "American Financial Group", "Summa Health", "The J.M. Smucker Company", "Columbus Fire-Executive Ofcr", "Marc’s", "Commercial Vehicle Group", "Area Temps", "Frisch’s Big Boy", "Comfort Keepers", "OM Group", "Applied Industrial Technologies", "Battelle", "Hyster-Yale Materials Handling", "PolyOne", "Ohio.gov", "Libbey", "Pepperl+Fuchs", "Miami Valley Hospital", "Reynolds and Reynolds", "Nordson", "Park-Ohio Holdings"]
16
17email_prefixes = [ "jobs", "work", "info", "careers", "management", "hr" ]
18
19addresses = [["90 Blackburn Road","Jefferson","44047"],["7682 Lilypad Rd.","Cincinnati","45238"],["64 E. Marshall Drive","Dayton","45400"],["554 Fortune Drive Blue","Creek","45616"],["91 Petal St.","Gallipolis","45631"],["54 Foxrun Lane","Luckey","43443"],["39 North Azure Rd. West","Manchester","45382"],["44 SE. Pinnacle St.","Creston","44217"],["9377 SE. Creekside Drive","Groveport","43125"],["7798 Cemetery St.","Okolona","43550"],["7329 Church St.","Middlefield","44062"],["731 Grotto Road Green","Springs","44836"],["493 Griffin St.","Euclid","44132"],["184 Randall Mill Court","Shreve","44676"],["732 Gartner Rd.","Lockbourne","43137"],["7270 Riverview Ave.","Lima","45804"],["75 Shirley Ave.","Shade","45776"],["75 Cherry Hill Drive","Pedro","45659"],["821 South Goldfield Drive","Mantua","44255"],["2 E. Elizabeth Drive Port","Jefferson","45360"],["319 Church Rd.","Winona","44493"],["7839 North Palm Rd.","Waynesfield","45896"],["316 Brewer Ave.","Centerburg","43011"],["8960 Sugar Street","Dayton","45463"],["169 Edgemont Street Canal","Winchester","43110"],["576 Manor St.","Canton","44711"],["896 Cliff Court East","Liverpool","43920"],["7015 Lilypad St.","Lowell","45744"],["8439 Iroquois Circle","Stoutsville","43154"],["823 Polygon Street","Millersburg","44654"],["8102 S. Globe St.","Eastlake","44095"],["8486 John Ave.","Garrettsville","44231"],["9634 S. Wharf St.","Peninsula","44264"],["65 Broad Street","Wilberforce","45384"],["896 S. Old York Avenue","Toledo","43611"],["9661 High Ridge Street","Ottoville","45876"],["718 Schoolhouse St.","Utica","43080"],["13 El Dorado Avenue","Mantua","44255"],["54 Fair Ave.","Barnesville","43713"],["39 Prince Court","Lynchburg","45142"],["300 Gold St.","Toledo","43652"],["8 Duchess Ave.","Cleveland","44127"],["8994 Nicolls Court Newton","Falls","44444"],["352 Terrace Lane","Newport","45768"],["947 Winchester St.","Cleveland","44192"],["8076 Polygon Rd.","Cincinnati","45211"],["948 Silver Ave. New","Bavaria","43548"],["9932 Bloomfield St.","Sandusky","44870"],["615 Front St.","Cincinnati","45224"],["369 York St.","Rosewood","43070"],["141 Green Road","Tippecanoe","44699"],["33 Stone Lane","Elkton","44415"],["28 Beechwood St.","Cincinnati","45280"],["7291 Hilldale St.","Massillon","44648"],["895 Parker Rd. Mount","Cory","45868"],["9 Bay Road New","London","44851"],["291 Snake Hill Street","Lakeview","43331"],["28 Middle Ave.","Glencoe","43928"],["75 Atlantic Lane","Ontario","44862"],["8250 Linden Street","Cleveland","44111"],["398 Vernon St. West","Union","45693"],["8012 Mayfair Ave.","Sarahsville","43779"],["9763 N. William Lane","Columbus","43220"]]
20
21fakeNames = [ ["Myrna","Hirthe"],["Ruby","Johnston"],["Retha","Crona"],["Stefan","Torp"],["Zetta","DuBuque"],["Louisa","Schmidt"],["Wade","Brown"],["Tyrel","Hudson"],["Isabel","McCullough"],["Rey","Zemlak"],["Erica","Jenkins","V"],["Litzy","McCullough"],["Dedrick","Stamm"],["Kendra","Cartwright"],["Robbie","Fay"],["Micah","Dooley"],["Armand","Schiller"],["Presley","Torphy"],["Jordyn","Hermiston"],["Bianka","Lakin"],["Laurie","Pfeffer"],["Mattie","Goyette"],["Rylee","Stanton"],["Mrs.","Rhianna","Welch"],["Charlene","Beahan"],["Idell","Macejkovic","I"],["Ross","Guªann"],["Emmitt","Denesik"],["Bernadine","Wiegand"],["Mr.","Aryanna","Towne"],["Albin","Weber"],["Jaylen","Grimes"],["Hilda","Wolff"],["Angelina","White"],["Mrs.","Lew","Bradtke"],["Lorena","Batz"],["Pat","Lueilwitz"],["Minerva","Rippin"],["Amalia","Beatty"],["Reed","Ebert","V"],["Ramiro","Kreiger"],["Hertha","Fadel"],["Nona","Spinka"],["Charley","Pollich"],["Tracey","Pagac"],["Lazaro","Mraz"],["Mrs.","Jeanie","Willms"],["Cecilia","Harann","PhD"],["Davin","Batz"],["Geo","Christiansen"],["Rupert","Predovic"],["Quincy","Franecki"],["Alexys","Morar"],["Thad","Hahn"],["Bobby","Rath"],["Kaley","Cassin"],["Marcel","Greenfelder"],["Dustin","Lang"],["Willa","Zemlak"],["Shirley","Lowe"],["Zackary","Mosciski"],["Elisha","Stanton"],["Miss","Dawn","Flatley"],["Nia","Wolf"],["Nicholaus","Funk"],["Francesca","Murray"],["Luna","Auer"],["Dudley","Parker"],["Katharina","Spencer"],["Leonora","Roberts"],["Eldora","Metz"],["Sofia","Roob"],["Damian","Lakin"],["Mrs.","Trinity","Rath"],["Dameon","Kirlin"],["Alessandra","Ortiz"],["Mitchell","Bernhard"],["Montana","Auer"],["Ryan","Cormier"],["Viviane","Predovic"],["Dr.","Hayden","Kuvalis"],["Mabelle","Torp"],["Arlene","Gutkowski"],["Tess","Cummerata"],["Ellis","Gleichner"],["Noel","Larkin"],["Felipe","Okuneva"],["Leora","Fisher"],["Bernardo","Lowe"],["Maryjane","Windler"],["Keeley","Stark"],["Moises","Stokes"],["Layne","Harªann"],["Cleveland","Kris"],["Carlotta","Homenick"],["Nella","Klein"],["Columbus","Muller"],["Delbert","Yost"],["Evert","Guann"],["Ashleigh","Gulgowski"],["Sleve","McDichael"]]
22
23print("Hi! This thing fills out that shitty Ohio Covid 19 Employee Narc Form with garbage.\nFor it to work properly you\'re going to need to have Firefox installed.\n\nYou\'ll also need geckodriver. You can get that here:\n\nhttps://github.com/mozilla/geckodriver/releases\n\nOnce installed, point the script to (absolute path): geckodriver, your Firefox bin (or *a* Firefox bin), and a 2captcha API key from:\n\nhttps://2captcha.com/")
24
25ff_loc = input("Please input the location of your Firefox binary: ")
26gd_loc = input("Please input the location of the geckodriver binary: ")
27site_key = input("Please input your 2captcha API Key: ")
28
29# load webdriver, add an implicit wait so the DOM doesn't time out immediately, and load the page
30driver = webdriver.Firefox(executable_path=gd_loc, firefox_binary=ff_loc)
31driver.implicitly_wait(15)
32driver.get("https://secure.jfs.ohio.gov/covid-19-fraud/")
33
34# random number generator to get randints from list lengths
35def getRand(listname):
36 max = (len(listname) - 1)
37 return random.randint(1, max)
38
39# main function
40def spamCapitalistRunningDogs():
41 #make a buncha bullshit up here outta the lists above
42 fakeCompany = large_companies[getRand(large_companies)]
43 fakePrefix = email_prefixes[getRand(email_prefixes)]
44 fakeDomain = re.sub('[^A-Za-z0-9]+', '', fakeCompany).lower()
45 fakeEmail = fakePrefix+"@"+fakeDomain+".com"
46 fakeAddress = addresses[getRand(addresses)]
47 fakeEIN = random.randint(152642643,987438523)
48 fakeName = fakeNames[getRand(fakeNames)]
49 fakeCounty = counties[getRand(counties)]
50
51 # site key for 2captcha, the google key for the site, and page URL. construct the 2captcha req url
52 google_key = "6LeUjPMUAAAAAOS5-5-v6eYvvezY9vs-cW4uQNR2"
53 pageURL = "https://secure.jfs.ohio.gov/covid-19-fraud/"
54 captchaURL = "http://2captcha.com/in.php?key="+site_key+"&method=userrecaptcha&googlekey="+google_key+"&pageurl="+pageURL
55
56 # make sure the page loads (check the title) if it doesn't, refresh it
57 try:
58 element = WebDriverWait(driver, 10).until(
59 EC.title_contains(("Office of Unemployment"))
60 )
61 except:
62 driver.refresh()
63 finally:
64 check = driver.find_elements_by_xpath("//input[@type='radio']")
65 no1 = check[1].click()
66 no2 = check[3].click()
67 yes1 = check[4].click()
68 yes2 = check[6].click()
69 yes3 = check[8].click()
70 text = driver.find_elements_by_xpath("//input[@type='text']")
71 nameBox = text[2].send_keys(fakeCompany)
72 numBox = text[3].send_keys(fakeEIN)
73 emailBox = text[4].send_keys(fakeEmail)
74 addrBox = text[5].send_keys(fakeAddress[0])
75 cityBox = text[6].send_keys(fakeAddress[1])
76 zipBox = text[7].send_keys(fakeAddress[2])
77 emp1Box = text[13].send_keys(fakeName[0])
78 emp2Box = text[14].send_keys(fakeName[1])
79 print("Wow! "+fakeCompany+" sure is mad at "+fakeName[0]+" "+fakeName[1]+"(ʘ 言ʘ ╬)" )
80 stateSL = driver.find_element_by_xpath('//*[@id="EmployerState"]')
81 driver.execute_script("arguments[0].value = 'OH';", stateSL)
82 countySL = driver.find_element_by_xpath('//*[@id="EmployerCounty"]')
83 driver.execute_script("arguments[0].value ='"+fakeCounty+"';", countySL)
84 # the meat and potatoes. first we make the captcha response input visible.
85 captchaInput = driver.find_element_by_xpath('//*[@id="g-recaptcha-response"]')
86 driver.execute_script("arguments[0].style.display = 'block';", captchaInput)
87 # now we use requests to get the solve ID from 2captcha
88 resp = requests.get(captchaURL)
89 # if this doesn't work, fuck!
90 if resp.text[0:2] != 'OK':
91 print("ERROR:\n"+resp.text)
92 return
93 captcha_id = resp.text[3:]
94 solveURL = "http://2captcha.com/res.php?key="+site_key+"&action=get&id="+captcha_id
95 # the number you get back from 2captcha is the captcha ID, add it to the end of the solve url
96 while True:
97 time.sleep(5)
98 solve = requests.get(solveURL)
99 # submit the solve request -- if the answer is anything but "ok!," aka the solved response, it'll try again (bc sometimes it can take a while) once it hits "OK" it'll break. i should probably change this to an if loop with limits so i don't get banned or spend a million dollars
100 if solve.text[3:] == "CAPTCHA_NOT_READY":
101 print(".", end = '')
102 continue
103 # this is an error that's come up so uh. yeah guess i had to work this in
104 else:
105 break
106 try:
107 driver.find_element_by_xpath('//*[@id="g-recaptcha-response"]').send_keys(solve.text[3:])
108 submit = driver.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder1_FormBlock1_content"]/p[5]/input[1]').click()
109 time.sleep(1)
110 again = driver.find_element_by_xpath('//*[@id="ctl00_ContentPlaceHolder1_lnkSendAnother"]').click()
111 print("Success!")
112 except:
113 driver.refresh()
114 print("Well, let's try again.")
115
116while True:
117 spamCapitalistRunningDogs()