Blackhash: audita passwords sin hashes!

Imagina que necesitas realizar una auditoría de las contraseñas de tu sistema y tienes que facilitar los hashes a un equipo auditor externo. Este equipo debe determinar que usuarios están usando contraseñas débiles y normalmente lo hace mediante ataques de diccionario con herramientas de cracking como John the Ripper o Hashcat. 

Pero, ¿te tienes que fiar completamente del equipo auditor? ¿y si pierden los hashes o los copian y distribuyen sin tu consentimiento?

Ya no es necesario que seas tan confiado, con la herramienta Blackhash es posible aplicar un filtro Bloom a los hashes de las contraseñas de tal manera que el auditor sólo recibirá una ristra de unos y ceros.

e14a04e980097ede599cac94358e1028 -> 00000100000001000100001

Y ahora seguro que te estarás preguntando qué demonios es un filtro Bloom... pues se trata de una estructura de datos probabilística creada en 1970 por Burton Howard Bloom que básicamente calcula el hash de la contraseña con varias funciones para obtener un vector de bits. Luego por cada palabra del diccionario se vuelven a calcular las mismas funciones hash y se compara el vector de bits: si no coincide definitivamente no es la contraseña, si coincide PUEDE que sea... XD



Está claro que
a mayor número de funciones de hash, menor número de falsos positivos, aunque el tiempo de proceso será mayor por lo que, como casi siempre, hay que intentar buscar un equilibrio.

Cuando el equipo auditor reciba las contraseñas filtradas, podrá buscar contraseñas débiles con Blackhash y nos remitirá el filtro para que identifiquemos a los usuarios y les notifiquemos para que cambien su contraseña. Funciona con cualquier función simple de hash como LM, NT, MD5, SHA1, etc. eso sí SIN SALT y, lo más importante, en ningún momento los hashes de nuestras contraseñas habrán salido de nuestro sistema. ¿Genial verdad?.

El proceso normal sería el siguiente:

1. El administrador del sistema crea un filtro de sus hashes de sistema y lo envía al auditor:

      bh system_nt_hashes.txt system_nt.filter create
     
2. El auditor prueba hashes débiles conocidos contra el filtro:

      bh top_100_nt_hashes.txt system_nt.filter test > weak_hashes.txt
     
3. El auditor crea un filtro débil y lo envía de vuelta al administrador del sistema:

      bh weak_hashes.txt weak.filter create
     
4. El administrador del sistema utiliza el filtro débil para identificar las cuentas con contraseñas débiles:

      bh system_nt_hashes.txt weak.filter test
 

Sitio: http://16s.us/software/Blackhash/blackhash.txt
Fuente: Blackhash_0.2.tar.gz
Windows: bh.exe

2 comentarios :

  1. Excelente artículo.
    Gramaticalmente "contra más funciones" debería decir "cuantas más funciones" o "a mayor número de funciones de hash, menor número de falsos positivos".
    Gracias.

    ResponderEliminar