11.24.2020

Password Cracking 101: Que es un Hash, para que sirve?

Iniciamos esta nueva serie con el fin de aprender sobre el crackeo de contraseñas, en cada una de las entradas veremos el uso de diferentes herramientas e iremos avanzando principalmente le daremos una atención a Hashcat, sin olvidarnos de otras como ser John, Cain & Abel por mencionar algunos, incluyendo el uso de servicios ONLINE que previamente ya estuvimos viendo en entradas previas del blog.



Esta primera entrada veremos lo que es un HASH, el uso que tiene en muchas ramas de informática como también algunas herramientas y sitios web que nos permiten identificar el tipo de hash que corresponde.

 Que es un Hash


Es una representación de un fichero por medio de una función matemática, el cual tiene una longitud fija, la cual es independiente al valor de entrada el principal uso que puede darse es identificar la integridad y no modificación de los ficheros exceptuando las colisiones que es cuando mas de un fichero tienen el mismo hash, en el blog contamos con la entrada de identificar documentos duplicados por medio del hash. 

A continuación abordaremos algunos ejemplos y usos de las funciones hash. 

Veremos un ejemplo práctico de dos imágenes, la primera original que es la siguiente. 


El hash de la imagen es:  EAAF4C190627A40E59A6153F16993118FA33CCD4
En el caso de que un tercero modifique o realice algún cambio como es este caso, el hash llega a cambiar  siendo este diferente. 


El hash de la imagen es: 6878662DC5F3FFD516D3CB853581DADCE029DC85

Esto es usado para temas forenses por ejemplo para verificar la autenticidad de  algún dato y seguir la cadena de custodia. 

Llega a suceder lo mismo con las contraseñas o textos por ejemplo sacaremos el hash en SHA1 de la palabra Snifer es 5B430A9D87BA3B22B658B60C88F170A6F70E14CF, ahora si generamos la suma de la palabra snifer 1142AAE63905871A52F0BC1DAE5CF917A2BEF19C llega a cambiar la suma. 

La longitud de un hash en sha-1 corresponde a 40 caracteres, por ejemplo y no importa lo que ingrese a la función obtendremos el mismo resultado. 

Muchas aplicaciones de escritorio y web utilizan las contraseñas hasheadas para almacenar los credenciales del login, esto jamas puede ser conocido por el sistema al menos que se utilicen credenciales débiles, considerando  que a veces no lo hacen siendo esto una mala practica, como podríamos darnos cuenta de este mal uso, es cuando se realiza el reseteo de la contraseña envían la password en claro. 

Otro uso de los hashes es para la identificación de malware en el caso de VirusTotal, podemos consultar la detección del mismo, o si alguien ya lo mando para un análisis y en vez de mandar todo el fichero solo debemos de contar con el hash en sha256. 


Después de enviar el hash obtenemos los resultados de detección. 


Este proceso también es realizado por los antivirus que usamos en los equipos ya que muchos o pocos comparten las bases de datos o utilizan alguna pública.


Considerando todo esto, un hash debe de cumplir:
  • Un fichero, contraseña no puede generar el mismo hash. (Si sucede esto se denomina colisión de hashes.)
  • Siempre se genera el mismo hash del mismo contenido o dato. 
  • Sin importar la longitud o tipo de fichero, el hash siempre mantendrá la misma longitud. 
  • Un hash puede ser crackeado? si, todo depende de la robustez  además de que el mismo debe de contener un SALT. 
El SALT es una semilla que se agrega al algoritmo para modificar el resultado, podría ser como un vector de inicialización. 




A continuación mencionamos la longitud de los hashes más usados. 
  • MD5: 32 Caracteres. 
  • SHA-1: 40 Caracteres. 
  • SHA-256: 64 Caracteres. 
Si desean verificar e identificar una función hash puedes utilizar algunas herramientas online como también locales en el propio equipo.  

  • CyberChef - Con la receta respectiva para identificar el Hash. 
Para la terminal tenemos Hashid o Hashidentifier las cuales se encuentran ya pre instaladas en algunas distribuciones o también podemos configurarlo de manera local en nuestros equipos, en la entrada del blog  Hacking 101 - Identificando Hashes y buscando en la red en texto claro se da un mayor detalle. 


A veces, caer también nos enseña cosas. En los sueños, muchas veces caes antes de despertar. - Patrick Rothfuss

Deseas algún tema en particular tratar en el blog? Escribe en los comentarios y con gusto realizamos. 

Regards,
Snifer

Compartir:

5 comentarios:

  1. Muy buena si !! esperando la siguiente!! :)

    ResponderEliminar
  2. Excelente entrada. Por suerte me topé con su blog, y tiene un contenido tan rico y variado. Se agredece su aporte a la comunidad :)

    ResponderEliminar

Hola visitante! deja tu comentario sobre la entrada no spam!