Bienvenido a Security.SE.
Primero, una breve explicación del hash versus el cifrado, porque eso es importante aquí.
Hashing y cifrado
Cuando se habla de hashes, es imposible descifrar. Los hash son unidireccionales y no se pueden revertir para recuperar el texto sin formato. Esto es importante porque la forma en que se obtiene el texto sin formato es muy diferente del cifrado y el hash.
Buscando el texto plano de un hash
John the Ripper y hashcat son herramientas que pueden usarse para encontrar el texto plano de un hash. Sin embargo, lanzarles una lista de palabras no siempre es la forma más efectiva de usar esas herramientas. Necesita saber algunas cosas sobre el objetivo, además del algoritmo utilizado. Sabes que tienes un hash MySQL 5, pero aquí hay algunas otras cosas que te ayudarán:
- ¿Existe una política de contraseña? (mínimo x caracteres, superior, inferior, símbolos, etc.)
- Si el administrador eligió una contraseña común, puede estar en las listas de contraseñas. Si el administrador no lo hizo, es posible que tenga que hacer un reconocimiento adicional para crear una lista de palabras que esté más dirigida al usuario.
¿Hay alguna otra forma además del forzoso brutal?
A falta de una debilidad en el algoritmo en sí, no. Los hash en general están diseñados para resistir los ataques contra el algoritmo. Mientras que las herramientas como John y Hashcat intentan realizar mejoras de rendimiento contra un algoritmo en particular dadas sus propiedades, el forzamiento brutal, teniendo en cuenta lo que mencioné anteriormente, es la forma en que se atacan los hashes, los hashes MySQL o no.
Sin embargo, si sacó un hash de una base de datos en el desafío, es diferente de tirar el hash de usuario de MySQL. Es decir, almacenar los usuarios del sitio web en una base de datos no necesariamente usa el algoritmo de hash de MySQL. Puede ser otra cosa como MD5 o SHA1.