Descifrar copia de seguridad msgstore.db.crypt de WhatsApp

10
19926

Hace justo un año aquí, en Zona Informática, se realizó un artículo sobre como desencriptar las conversaciones de WhatsApp,proceso que posiblemente para muchos de los usuarios es una tarea difícil y que gracias a la entrada que se va a presentar a continuación no lo será casi al 100% de probabilidad. La entrada en cuestión va a ser un tutorial para descifrar la copia de seguridad msgstore.db.crypt de WhatsApp de una forma muy sencilla y rápida.

msgstore.db.crypt de WhatsApp
Figura 1: Captura de los archivos msgstore.db.crypt de WhatsApp.

Antes que nada quería hacer una pequeña introducción acerca del backup msgstore.db.crypt de WhatsApp. Bien, esta copia de seguridad la realiza automáticamente WhatsApp y consta de un archivo en formato SQLite encriptado (de aquí viene el .crypt del final de la extensión) para darle más seguridad a las conversaciones por si en algún momento nos roban el teléfono móvil ponérselo un poco más difícil a los ladrones, ya que al principio este archivo en forma de base de datos no tenía protección alguna. Aunque a priori parezca que dicho archivo sea imposible de descifrar no lo es y dicho cifrado de tipo AES-192-ECB utiliza siempre la misma clave que es la siguiente:

346a23652a46392b4d73257c67317e352e3372482177652c

¿Dónde se encuentra el archivo msgstore.db.crypt?

Si utilizas Android, este se encuentra en: «…/WhatsApp/databases/msgstore.db.crypt».

Si por el contrario utilizas iOS, este se encuentra en:  «id-APP/Documents/ChatStorage.sqlite».

Una vez estemos dentro de dicho directorio apreciaremos más de un archivo SQLite y podemos diferenciarlo de la siguiente forma:

  • msgstore.db.crypt hace referencia a las conversaciones actuales.
  • msgstore-YYYY-MM-DD.X.db.crypt hace referencia a las conversaciones por fecha según día, mes y año.

Cómo descifrar copia de seguridad de WhatsApp

Paso número 1) Nos descargamos la distribución binaria de OpenSSL Win-32 para Windows de aquí. Gracias a esta utilidad podremos cifrar y descifrar cualquier tipo de archivo ejecutando una serie de comandos.

Paso número 2) Ahora abrimos una consola de Windows (Inicio-> cmd) y tecleamos el comando para dirigirnos al directorio de OpenSSL:

cd C:\OpenSSL-Win32\bin 

Paso número 3) Copiamos el archivo msgstore.db.crypt dentro de C:\OpenSSL-Win32\bin\copias  (creamos la respectiva carpeta cuyo nombre se llamará copias en la ruta C:\OpenSSL-Win32\bin\) y después escribimos en la consola este otro comando:

openssl enc -d  -aes-192-ecb -in copias\msgstore.db.crypt -out copias\msgstore.db.sqlite

-K 346a23652a46392b4d73257c67317e352e3372482177652c 

Si no puedes copiar y pegar la expresión en la consola de Windows haz clic en Propiedades y activa la opción de las opciones de edición llamada «Modalidad de edición rápida» y al pulsar el botón derecho del ratón se debería copiar la expresión sin ningún tipo de problema. El significado de la expresión se resume en lo siguiente:

  • -d. Significa «decrypt» y es el primer argumento para comenzar a desencriptar el archivo msgstore.db.crypt.
  • -aes-192-ecb. Su significado es el tipo de encriptación del archivo msgstore.db.crypt.
  • -in copias\msgstore.db.crypt. Significa que el fichero que tomará se encuentra localizado en el directorio copias estando situados en C:\OpenSSL-Win32\bin.
  • -out copias\msgstore.db.sqlite. Significa que el fichero resultante sin encriptación se encontrará localizado en el directorio copias situado en C:\OpenSSL-Win32\bin.
  • -k. Significa «key» y aquí es donde deberemos indicarle la clave para realizar exitosamente la desencriptación.
Extracción msgstore.db.crypt
Figura 2: Demostración del paso número 3.

Paso número 4) Nos descargamos el programa SQLite Administrator de aquí y abrimos el archivo msgstore.db.sqlite. Priviamente cambiamos el idioma a español en Ayuda-> Cambiar idioma.

  • El id es un identificador único de cada mensaje.
  • El key_remote_jid contendrá el número de teléfono con el que se han intercambiado mensajes empezando por el código de país (en España es +34).
  • El key_from_me contendrá un 1 o un 0 dependiendo de el emisor o el receptor. El 1  se corresponderá con el emisor del cual estamos visionando la base de datos mientras que el 2 se corresponderá con el receptor.
Ver BBDD msgstore.db.sqlite
Figura 3: Visionado de la bases de datos de WhatsApp en SQLite.

Desencriptar msgstore.db.crypt5,msgstore.db.crypt6,msgstore.db.crypt7, msgstore.db.crypt8

Desde la reciente compra de WhatsApp por parte de Facebook han cambiado la encriptación de los archivos a crypt5, crypt6, crypt7, crypt8 y probablemente cambiarán las respectivas encriptaciones cuyo proceso se realizará así:

Cabe destacar que estos tutoriales se encuentran en inglés y español y se entienden de forma muy clara por lo que no se debería existir ningún problema al realizarlos. Se requiere tener el dispositivo rooteado puesto que al ser encriptaciones más trabajadas por el momento no existe una forma tan fácil como la que se ha explicado en el tutorial de más arriba.

Esperamos que os sirva. Si existen dudas escribir un comentario para ayudaros lo antes posible. 😉