la cuestion es que programe un script en python que lo que hace es hacer fuerza bruta a un foro SMF protegido por cloudflare.
el script funciona bien, lo he testeado con una pass facil y la consiguio en algunos minutos.
ahora el problema, es que para conseguir una contrase;a real podria tomarme mucho tiempo.
el algoritmo de generacion de password funciona de la siguiente manera:
Código:
charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_"
cadena = ['','','','','']
def generar(cadena, indice, largo):
for x in xrange(0, len(charset)):
cadena[indice] = charset[x]
if indice < (largo-1):
generar(cadena, indice+1, largo)
else:
cad = ''.join(cadena)
probar_cuenta(cad)
def fuerzabruta():
for i in xrange(6, 15):
cadena.extend('x')
generar(cadena, 0, i)
como veran, si la contrase;a tiene mas de 6 caracteres, deberiamos esperar a que finalize el algoritmo completo con 6 caracteres para probar con 7, y asi hasta llegar al largo correcto de la pass.
esto tomaria demasiado tiempo, suficiente para darse por vencido.
tengo 2 ideas:
crear multiples hilos y enlazarlos a una lista de cadenas.
en un hilo principal generar las contrase;as, y ir asignandolas de a una a cada hilo.
cada hilo haria la consulta mediante curl con su propio proxy, acelerando asi el proceso, pudiendo probar mas cantidad de contrase;as a la vez.
la otra idea es, igual que la anterior, pero en vez de cada hilo tener una lista, cada hilo iria generando contrase;as por su cuenta, de diferentes largos, y asi tener mas posibilidades de encontrar la pass.
que opinan de esto?
como podria optimizar mi script para acelerar el proceso al maximo posible?