Métodos utilizados para revertir un hash

2

Sé que un hash es una función unidireccional y que, por lo tanto, no hay una función de inversión. Al invertir un hash, solo quiero encontrar un texto simple que proporcione el hash.

Creo que entiendo que para revertir un hash uno puede

  • usar diccionarios, es decir, uno genera una lista de pares de plaintexts y hashes. Dado un hash, uno busca en el diccionario el texto plano relacionado. En cierto sentido, diría que esto se parece mucho al método de forzar la fuerza bruta donde se calculan muchos hashes hasta que hay una coincidencia.
  • usa tablas de arcoiris. No estoy seguro de que entiendo cómo funciona esto, pero veo esta pregunta / respuesta .

Mis preguntas:

  1. ¿Se utilizan otros métodos en la práctica?

  2. ¿Hay algún método que apunte al algoritmo subyacente?

pregunta Thomas 29.06.2013 - 03:07
fuente

5 respuestas

5

Con un hash serio, la única forma de encontrar una preimagen es hacer una conjetura y verificarla. "Serio" significa que no es el método de cosecha propia de alguien, pero incluso el MD5 que está roto para algunos usos todavía es serio aquí, al igual que el hashing tradicional de contraseñas basado en DES de Unix que todavía tiene la resistencia que se suponía que tenía (es solo que esta cantidad es muy poco para el poder informático de hoy). En otras palabras, si tengo H y quiero encontrar P tal que Hash (P) = H, entonces la única manera es encontrar P es hacer una conjetura, calcular el hash de esta conjetura y ver si es igual a H.

Por lo tanto, todos los métodos de descifrado de contraseñas pueden clasificarse como fuerza bruta. La fuerza bruta todavía puede utilizar trucos inteligentes. Puede calcular hashes de muchas contraseñas potenciales y luego buscar muchos hashes en las tablas resultantes, es un diccionario. Aún tenías que calcular todos los hashes que vas a romper (y más). Las tablas del arco iris consisten en calcular una cantidad enorme de hashes y almacenarlas de una manera inteligente. Una tabla de arco iris es un método para comprimir un diccionario. Estos métodos basados en el diccionario se basan en la precomputación que se puede compartir entre muchos intentos de craqueo y se vuelve inútil por medio del uso apropiado de sal.

Los crackers de contraseñas siempre funcionan al enumerar todas las contraseñas posibles. La inteligencia proviene de enumerar las contraseñas más probables primero: p@ssw0rd y 1loveYou antes de navpbtbf y homechasebogbigamy .

    
respondido por el Gilles 29.06.2013 - 11:27
fuente
3

La búsqueda exhaustiva es la (única) respuesta. Las tablas de arco iris son una búsqueda exhaustiva realizada de antemano, y el uso de la sal es un método útil para vincular un intento de hash dado SOLAMENTE a una sola entrada de contraseña (para frustrar las tablas de arco iris y técnicas similares).

Puedes acelerar las búsquedas exhaustivas buscando primero las contraseñas comunes. Esa es la idea detrás de un ataque de diccionario.

    
respondido por el tylerl 29.06.2013 - 03:38
fuente
0
  1. Sí, otro método es la búsqueda exhaustiva de claves según mi conocimiento.
  2. No estoy seguro. pero puede ser una búsqueda de llaves exhaustiva que lo apunte.

Otra vez no estoy seguro.

    
respondido por el WiKi 29.06.2013 - 03:14
fuente
0

Con los hashes tienes que adivinar la contraseña correcta o alguna cadena que genere el mismo hash que la contraseña. Esto se conoce como una colisión hash. Hay algunos ataques basados en colisiones que ayudan a explotar las colisiones en el algoritmo de hashing. Sin embargo, los algoritmos de hashing modernos tienen menos posibilidades de colisión. No se conocen ataques para revertir los algoritmos de hash (por favor, corríjame si me equivoco).

El único algoritmo de hash que sospecho que puede ser reversible es SHA, pero solo porque soy paranoico y creo que la NSA habría construido una puerta trasera cuando la creó. ¡Es su trabajo descifrar mensajes cifrados! Si yo fuera ellos, habría construido una puerta trasera :)

Pruebe algunas de las listas de contraseñas en SkullSecurity son bastante buenas. También puedes ver Ophcrack y JohnTheRipper .

    
respondido por el Four_0h_Three 29.06.2013 - 04:28
fuente
0

Si está intentando revertir MD4, MD5, SHA1, DCC, NTLM, MySQL, puede usar Hashcat ( enlace )

    
respondido por el Tsubasa Kato 29.06.2013 - 07:26
fuente

Lea otras preguntas en las etiquetas