Whatsapp, ese magnífico programa que permite que nos comuniquemos al instante sin tener que volver a usar SMS’s… podemos enviar fotos, vídeo, audio, contactos, ubicaciones… ¡Qué bonito!.

Pero no todo iba a ser bueno, aunque según cómo se mire, ¿no?. El caso es que este maravilloso programa tiene múltiples y graves vulnerabilidades de seguridad que han ido corrigiendo a medida que los hackers advertían sobre ello o miles de cuentas eran hackeadas.

Ahora mismo recuerdo dos de ellas:

  • En el inicio, el envío de mensajes se hacía sin cifrar… Sí, ¡¡¡sin cifrar!!!
  • Los historiales de conversación se guardaban en el teléfono sen texto plano… ¡¡¡sin cifrar!!!

Pues bien, a día de hoy, ya se guardan cifrados los historiales de conversación pero se almacenan en base64 sin clave maestra por lo que su desencriptación es bastante sencilla de hacer.

Como otras entradas NO me responsabilizo del mal uso de esta herramienta, yo lo he hecho con fines lúdicos y formativos.

copiar la base de datos

Introducimos la tarjeta SD en nuestro ordenador y copiamos la carpeta entera WhatsApp/Databases en una carpeta de nuestro equipo local, para no dañar las de la tarjeta.

instalar dependencias

En este caso python y sqlite3

sudo apt-get install python sqlite3

descargar Whatsapp Xtract

Vamos a descargar el script en Python que permite desencriptar el base64 de la base de datos de Whatsapp:
Descargar Whatsapp Xtract V2.2

Lo extraemos, navegamos a la carpeta de extracción y con la consola, ejecutamos el fichero whatsapp_xtract.py con el intérprete de python:

python whatsapp_xtract.py ruta/a/msgstore.db.crypt

whatsapp-xtract

Esperamos un rato, y nos generará un fichero HTML de un tamaño bastante considerable, donde aparecerá un listado de los números de teléfono además de las conversaciones que estén almacenadas en el fichero msgstore.db.crypt. Lo abrimos con el navegador preferido y ya lo podremos visualizar.

Los número de teléfono se guardan con el prefijo del país más el número de teléfono, en mi caso si mi número es 666666666 y el prefijo de España es +34, pues mi número sería: 034666666666 . De esta manera podemos saber de quién es cada conversación.

Podemos repetir la ejecución del script anterior para el resto de ficheros .crypt que whatsapp ha ido almacenando a lo largo del tiempo, por ejemplo: msgstore-2012-08-14.1.db
.

mis recomendaciones de seguridad

Visto lo fácil que es leer mensajes de Whatsapp, me veo obligado a daros unos consejos básicos de seguridad:

  • 1-No perder el móvil.
  • 2-Tener cuidado a quién se lo dejamos.
  • 3-Eliminar de vez en cuando las conversaciones para en el caso de pérdida, no tengan acceso a todos los historiales de conversación.

Fuente y más información: Whatsapp Decrypt.

Sólo funciona para móviles Android

Actualización para CRYP5