WhatsApp
es sin duda la aplicación de mensajería instantánea más utilizada en
todo el mundo. Cada vez las conversaciones que se envían a través de
este cliente de mensajería tienen un mayor valor, tanto personal para
los usuarios como para piratas informáticos e incluso como pruebas en
asuntos legales. Para proteger la seguridad e integridad de estas
conversaciones, el equipo de WhatsApp ha aplicado varias medidas de
seguridad tanto a las comunicaciones como a los historiales de chat que
se guardan en el teléfono, aunque según parece estas medidas no son del
todo eficaces.
Peritos
informáticos han conseguido identificar y explotar el fallo de
seguridad de WhatsApp, concretamente en la versión 2.12.250 ejecutada
sobre dos sistemas Android 5.x y 4.4.x, que permite modificar la base de
datos de WhatsApp para editar mensajes sin dejar rastro de la
modificación.
WhatsApp
utiliza para las conversaciones el software de bases de datos SQLite.
WhatsApp en total utiliza dos bases de datos diferentes, la original,
que se encuentra sin cifrar, y la copia de seguridad, la cual utiliza
sistemas de criptografía simétrica junto al algoritmo AES de clave única
para el cifrado y el descifrado de la misma. Mientras que la copia de
datos está “protegida” y no nos interesa de momento, vamos a centrarnos
en la base de datos original, la que utiliza el propio cliente de
mensajería en tiempo real.
La
base de datos que utiliza WhatsApp para mostrar las conversaciones en
tiempo real en el propio cliente de mensajería se guarda en plano, sin
cifrar como hemos dicho, aunque sí que se encuentra en un directorio de
acceso limitado.
Descargar la base de datos de conversaciones de WhatsApp al PC
Para poder modificar una
conversación de WhatsApp lo primero que debemos hacer es tener permisos
de root sobre el dispositivo. Una vez con estos permisos habilitados
conectamos el smartphone a nuestro ordenador y, a través de la
herramienta de desarrollo adb ejecutamos los siguientes comandos:
- adb devices (nos muestra los dispositivos conectados, útil para saber si todo funciona correctamente)
- adb shell (nos abre un terminal para controlar el smartphone)
A continuación ejecutamos el comando “su” para conseguir permisos de superusuario en el dispositivo.
- su
Con estos garantizados nos situamos sobre la ruta de las bases de datos de WhatsApp tecleando en el terminal o shell:
- cd /data/data/com.whatsapp/databases
A continuación ejecutamos el
comando ls -la para mostrar una lista con todos los archivos de dicho
directorio. Si nos fijamos en esta lista, uno de los archivos se llamará
msgstore.db. Este archivo contiene toda la base de datos de
conversaciones de WhatsApp que se guardan automáticamente (y sin cifrar)
cada vez que recibimos o enviamos un mensaje.
Una vez confirmado que tenemos el
archivo de la base de datos en nuestro smartphone debemos copiarlo al
ordenador. Para ello escribimos dos veces “exit” en el terminal para
salir del shell y volver a Windows y desde allí tecleamos:
- adb pull /data/data/com.whatsapp/databases/msgstore.db
El archivo se descarga a nuestro
PC, a la misma ruta donde tenemos el binario de adb copiado. Todo listo.
Ya podemos empezar a modificar los mensajes que queramos.
Modificar la base de datos de conversaciones
Una vez tenemos la base de datos en nuestro PC debemos descargarnos la aplicación SQLiteStudio con
la que la abriremos y modificaremos. Una vez tengamos el programa lo
ejecutamos y cargamos la base de datos desde el menú Database -> Add a
database y nos conectamos a ella mediante el menú Database ->
Connect to the database.
Una vez conectados a la base de datos veremos todas las tablas de la misma, aunque debemos centrarnos en dos:
- messages
- messages_fts_content
Lo
primero que debemos hacer es identificar la clave privada del mensaje.
Para ello lanzamos una consulta a la base de datos con el siguiente
comando:
- select * from messages where data LIKE “%mensaje%”; (sustituyendo mensaje por el contenido que queremos buscar)
Apuntamos
en un papel o documento la clave privada del mensaje, o valor de la
columna ID, para igualar los cambios en las dos tablas anteriores. A
continuación, en la columna “data” de la table “messages” cambiamos el
valor del mensaje que hemos enviado por el nuevo que queremos
establecer.
Una
vez realizados los cambios que queremos pulsamos sobre el botón
“commit” para que estos se apliquen y cambien en la base de datos.
La mitad del proceso ya está
hecho. Ahora abrimos la tabla messages_fts_content y en el buscador
introducimos la clave privada, o ID, que hemos anotado antes. Veremos
una nueva fila con el contenido del mensaje, que aún no ha sido cambiado
como el de la primera tabla.
Lo seleccionamos y modificamos de igual forma, pero manteniendo el estilo original de la tabla:
- Todo el texto en minúsculas.
- Las palabras separadas por tres espacios.
- Los signos de puntuación separados de la palabra anterior por un espacio.
Aunque este paso no es
obligatorio es recomendable para dificultar aún más el poder saber que
la tabla ha sido modificada. Ya tenemos todo listo. Ahora sólo nos queda
volver a copiar la tabla a nuestro móvil.
Copiar al teléfono la base de datos modificada de conversaciones de WhatsApp
Una vez que hemos realizado los
cambios anteriores en la base de datos es hora de subirla de nuevo al
smartphone. Para ello abrimos de nuevo una ventana de MS-DOS y
tecleamos:
- adb push msgstore.db /data/data/com.whatsapp/databases/msgstore.db
La base de datos se ha subido correctamente a nuestro dispositivo, aunque hay un pequeño problema: los permisos.
Al haber subido una base de datos
como usuario adb con permisos de superusuario, el propietario y el
grupo de este archivo ahora es “root”. Si queremos borrar todo rastro de
haber modificado dicha conversación tenemos que teclear en nuestro
terminal:
- adb shell
- su
- cd /data/data/com.whatsapp/databases
- ls –la
- chown u0_a88:u0_a88 msgstore.db
Todo
listo. Ya podemos abrir nuestro WhatsApp de nuevo y ver cómo los
mensajes que hemos enviado y recibido son diferentes. A simple vista es
totalmente imposible saber si un mensaje es original o ha sido
modificado y siguiendo un análisis forense tampoco es posible saberlo ya
que los cambios no han dejado rastro ni en la base de datos ni en
nuestro smartphone.
Según la finalidad que vayamos a
dar a esto debemos tener en cuenta que es posible que estemos cometiendo
un delito (por ejemplo para presentarlo como pruebas legales) y que
siempre hay formas de detectar el engaño (por ejemplo mediante el
análisis físico de los chips de memoria, quienes podrían demostrar que
hay otro archivo “mstorage.db” que ha sido eliminado previamente.
Fuente: redeszone.net
No hay comentarios:
Publicar un comentario