Descubre como calcular el hash de un disco o unidad completa

No hace mucho os hablaba de las formas de calcular el hash de un archivo o ejecutable en diferentes sistemas operativos, o lo que es lo mismo, una forma fácil de comprobar que un archivo es lo que dice ser y no ha sido modificado maliciosamente. Hoy veremos como obtener el hash de un disco o unidad del mismo al completo.
Algún usuario ya me había preguntado -esto va por Luís González, disculpa la demora- si es posible obtener un hash de un disco entero, en lugar del clásico hash de archivo o directorio. Lo cierto es que sí se puede. Es relativamente sencillo y hay varias formas , que paso a enumerar.
Como calcular el hash de un disco completo
Md5deep
La herramienta de cálculo de hash md5deep nos permite calcular hashes tanto de elementos individuales como de unidades de cualquier tipo.
Por un lado, tenemos el comando a usar para calcular sumas de verificación de forma individual:
md5deep -rel Letra_unidad/ruta:Entrada > Salida-codificada.md5
Donde Entrada se refiere al directorio que tomaremos como base para el cálculo, mientras la parte «salida» se refiere al archivo de cálculo que obtendremos al final y que determinará si el archivo es confiable. Ejemplo realizado y archivo abierto con bloc de notas:
Además, si queremos visualizar este tipo de archivos de una forma más conveniente podemos ayudarnos de otra herramienta llamada HashCkeck para Windows, que nos proporciona un menú contextual para calcular rápidamente cualquier suma y además visualizar así su resultado:
Ahora, si lo que queremos es calcular el hash de una unidad completa, lo modificaremos de la siguiente forma:
md5deep -rel F: > F_Resultado.md5
Es decir, en este caso basta con utilizar simplemente la letra de unidad y escoger el nombre del archivo de salida para md5deep. Tened en cuenta de que este proceso tardará mucho o poco dependiendo de la capacidad de nuestro sistema, de lo que tengamos dentro del disco, etc.
Sintaxis de md5deep
Las opciones a utilizar comúnmente con este programa son:
- r = la operación será recursiva (se repetirá en todos los subdirectorios y archivos contenidos)
- e = se realizará cálculo de tiempo restante estimado para cada archivo
- l = se imprimirán las rutas relativas para cada nombre de archivo
- F: = la letra que hemos utilizado para calcular el hash
- > F_Resultado.md5 = archivo de salida
Como se ve en la siguiente imagen, la herramienta hashckeck también está realizando su propio cálculo porque hemos abierto un archivo .md5 que está por defecto asociado a ella.
Comparar hashes obtenidos con md5deep
He escogido como ejemplo un directorio comprimido, compuesto por tres archivos correspondientes a la utilidad procdump. He realizado un hash del .rar tal como estaba por defecto, para luego introducir un archivo más en una copia del mismo, calculando también la suma MD5.
Los nombres de los archivos a comparar son Procdump.zip y Procdump_.zip, siendo este último el que he alterado y que será visto como erróneo. Esto debería preocuparnos si vamos a abrir algo descargado de internet.
md5deep -X Procdump.txt -r Procdump_.zip
Con esto, le estamos diciendo al programa que tome la suma de hash previamente calculada para Procdump.txt y la compare con el archivo comprimido Procdump_zip.
Sintaxis empleada
- -X Devuelve los hashes erróneos
- -r Ejecuta operación recursiva
Enviamos el comando y md5deep nos devuelve el nombre, hash y ubicación de cada archivo fallido que se encuentre en la lista:
Si queremos que esta información se guarde en otro archivo, podemos añadir al final del comando > hashes_fallidos.txt.
He hablado de Windows, pero con esta herramienta y opciones similares vamos a poder calcular hashes en Linux, Mac OS, etc. Descarga md5deep a continuación.
GizmoHasher
Otra utilidad que recomiendo, por su simplicidad y efectividad, es GizmoHasher. Compatible con sistemas operativos Windows desde 2000 hasta Windows 7, puedo decir que con posteriores sistemas operativos funciona perfectamente.
GizmoHasher nos permite hacer lo mismo que la aplicación antes mencionada: procesar una o múltiples ubicaciones de disco (o bien un disco completo) y calcular valores hash de cualquier tipo (MD5, CRC32, SHA-1, SHA-2, etc) para posteriormente guardar estos valores en una lista o compararlos directamente con otro archivo deseado.
Siguiendo el ejemplo antes empleado, vamos a proceder a calcular el hash de una carpeta comprimida, de nombre Procdump.zip. Usaremos el menú contextual para hacerlo.
Ahora, mediante la función «Comparar con» vamos a cotejar el valor con la suma del archivo que hemos modificado a propósito:
Como podéis ver, Gizmohasher nos calcula por defecto hasta 4 valores de hash para el fichero, no sólo MD5. Esto es de agradecer y para tratarse de una herramienta gratuita es altamente recomendable, además de incluir algunos extras que quizá queráis aprovechar.
Checksum
La última utilidad que os recomiendo para el cálculo de MD5 y otros hashes se llama Checksum y de ella puedo destacar que: es gratuita, opensource y además portable. Podemos hacer cálculos al vuelo mediante el menú contextual del ratón.
Como en los programas anteriores, podemos escoger entre 32 y 64 bits, así que la compatibilidad no es problema. Para empezar, usaremos la opción correspondiente pulsando el botón derecho del ratón:
Escogemos las opciones deseadas o dejamos todo tal y como viene por defecto. «Do it now» para continuar.
Si realizamos el cálculo sobre un archivo que ha sufrido modificaciones, recibiremos un mensaje similar a este:
Checksum es un programa fácil de usar y gratuito, nos servirá como alternativa a los anteriores (aunque no es mi preferido porque no es tan intuitivo como Gizmohasher ni tan potente en opciones como MD5Deep.
Palabras finales
Como has podido comprobar, realizar cálculo de hashes es sumamente fácil con las herramientas correctas. Hoy hemos hablado de herramientas diseñadas tanto para Windows como para Linux y Mac OS X (todas excepto Checksum lo son). Te recomiendo utilizarlas siempre que descargues archivos o tengas sospechas de que pueden haber sido modificados.
Categories
deweloper View All
Trabajo como consultor de ciberseguridad y me gusta lo que hago. Aficionado a la informática / tecnología en general, me gusta compartir con la gente lo poco que sé. También soy aficionado al deporte y los videojuegos.
Te agradezco tu espíritu, que también comparto; tendré que volver a leer todos los consejos que ofreces para retener algo. Gracias
😉