¿Es posible detectar la función hash de un hash si no tengo acceso al código PHP? Sé que si un hash es algún tipo de MD5, pero no sé si hay sal, etc.
Algunas herramientas hacen una conjetura educada con respecto al tipo de cifrado y sal, pero existen numerosos tipos de esquemas de cifrado, algunos relacionados tan estrechamente que los hashes casi parecen iguales.
Tomemos, por ejemplo, el siguiente hash (modificado para proteger a Google Dork): 0000000B84FF762C88DG6E16F324269EFCA186FA
Si le pido a un clásico como John the Ripper que lo rompa sin especificar qué tipo, obtengo la siguiente respuesta: Advertencia: se detectó el tipo de hash "raw-sha1", pero la cadena también se reconoce como "raw-sha1-linkedin" Advertencia: se detectó el tipo de hash "raw-sha1", pero la cadena también se reconoce como "raw-sha" Advertencia: se detectó el tipo de hash "raw-sha1", pero la cadena también se reconoce como "raw-sha1-ng"
Por lo tanto, John ejecutará e intentará descifrar la contraseña como "raw-sha1", pero podría estar equivocado.
Si ingreso el mismo hash en hashcat-plus, se queja sobre la longitud del hash y me pide que especifique un tipo de hash. Todo muy bien, sugiero SHA1, pero también hay numerosas permutaciones disponibles que podrían significar una cantidad infinita de tiempo desperdiciado si eliges mal. P.ej. Hashcat ofrece las siguientes opciones para SHA1
100 = SHA1 110 = sha1 ($ pass. $ Sal) 120 = sha1 ($ sal. $ Pase) 130 = sha1 (unicode ($ pass). $ Salt) 140 = sha1 ($ salt.unicode ($ pass))
Busqué y encontré algunas herramientas interesantes para encontrar el tipo de cifrado y se pueden dividir en dos categorías, a saber, con el código fuente / binario disponible y sin ningún código fuente.
La búsqueda del tipo de cifrado mediante ingeniería inversa se puede lograr a través de herramientas como:
http://www.autistici.org/ratsoul/iss.html - A plugin for immunity debugger that identifies common encryption or encoding functions / structures etc.
http://aluigi.altervista.org/mytoolz.htm#signsrch - is the binary version of the immunity plugin version
http://www.hexblog.com/?p=27 - a plugin for OllyDbg to determine the type of encryption
https://www.hex-rays.com/products/ida/tech/flirt/index.shtml - a plugin for IDA Pro to determine standard called libraries, could be used to identify encryption libraries
Luego está el script de conjetura "educado":
http://code.google.com/p/hash-identifier/ is a script that compares various attributes such as length, contained char types etc to produce a possible hash type used. Seems to be included in Backtrack5 standard.
Y los sitios web que permiten la verificación manual, tales como:
http://www.insidepro.com/hashes.php - Allows you to enter a password and compare the hash to your example hash
http://forum.insidepro.com/viewtopic.php?t=8225 - Lists various encrypted hashes to allow for a manual comparison
Entonces, básicamente, parece que sin el conocimiento previo del hash utilizado, sin fuente / binario disponible para ingeniería inversa, básicamente te quedas con un trabajo de conjetura serio. Y para agregar un poco de presión, elija cuidadosamente, ya que elegir el hash incorrecto puede llevar MUCHO tiempo perdido.
Lea otras preguntas en las etiquetas hash salt cryptography md5