¡Tu mensaje de bienvenida, twitter o publicidad aquí!

| Suscríbete vía RSS

30 mar 2010

SHAbr, fuerza bruta para SHA-1

| |

Introducción


Cuando hacemos password guessing, el siguiente paso viene a ser obtener en texto plano el valor de algún elemento cifrado (password cracking). Herramientas para eso hay a patadas, pero el otro día buscando alguna que me permitiera realizar un ataque de fuerza bruta con éxito sobre hashes cifrados con SHA-1 me encontré con SHAbr.

Su creador, Daniel Niggerbrugge ha conseguido optimizar el código hasta el punto de alcanzar un total de 60Mhashes/s. Obteniendo buenos resultados para longitudes inferiores a 16 caracteres (eso dice él... la práctica es otra cosa :P). También permite el uso de varios procesadores y utiliza SSE2 para hashear los valores en texto plano.

El código fuente lo podéis encontrar en su blog, por si queréis echarle un vistazo, así como el binario para plataformas Windows.

Uso


El uso de la aplicación es bastante sencillo: shabr SHA1_hash -c charset
Dónde:

  • SHA1_hash: Es el hash de 40 caracteres.

  • -c charset: Es el juego de caracteres a usar (all, loweralpha, upperalpha, mixalpha, numeric, loweralpha-numeric, upperalpha-numeric, mixalpha-numeric).



Como parámetros opcionales tenemos:

  • -B: Establecemos la prioridad por debajo de lo normal

  • -Q: Indicamos que no nos muestre el proceso mientras se ejecuta

  • -t threads: Cantidad de hilos a usar

  • -l max length: Por defecto 15

  • -m min length: Por defecto 1



Práctica


Pero vamos a la parte práctica y hagamos algunas pruebas:


En este caso hemos pasado al programa el hash correspondiente a la palabra "hola y no ha tardado nada en obtenerla. También han sido 4 caracteres loweralpha, así que no le hemos hecho trabajar demasiado.

Pasando un hash loweralpha-numeric obtenemos el siguiente caso de prueba:



Ha tardado 110.79 segundos en sacar abc123, ocupando un 60% de las posibles combinaciones. No esta nada mal.

Sin embargo en este otro caso:



Las pruebas resultan ser demasiado costosas utilizando un juego de caracteres al completo (minúsculas, mayúsculas, símbolos y números). Va por 6 caracteres y ha tardado 10 minutos en completar un 1% (la contraseña era SHA-1br, puesta a maldad). Quizás deberíamos plantearnos hablar de procesamiento paralelo para agilizar el tiempo de cómputo.

No obstante, puede darse el caso de que realmente resulte inviable el hecho de intentar romper el hash de una contraseña. Recordad que a mayor entropía mayor tiempo de cálculo, y viceversa. Pero aun así en esos casos que necesitéis realizar una auditoría de passwords y os encontréis con SHA-1, recordad a SHAbr.

1 comentarios:

Han dijo...

TU APLICACIÓN ES MUY INTERESANTE, ME HA SERVIDO DE MUCHO PARA MI TESIS, ADEMÁS LO HE MEJORADO Y AUMENTADO, MUY PRONTO LO COLOCARÉ EN SOURCEFORGE PARA QUE MUCHOS LO UTILIZEN.

MUCHAS GRACIAS POR TU APORTE.

MUCHOS EXITOS...ERES UN CAPO.

SALUDOS DESDE LA TIERRA DE MACCHU PICCHU.