Sáb Jul 28, 2012 2:10 pm
Siguiendo la línea de algunos posts sobre la aplicación WhatsApp (que de seguro todos conocemos), en este post me gustaría presentaros una herramienta para facilitar la extracción e interpretación de los datos generados por esta aplicación.
Si bien es cierto que la aplicación cifra los logs de los mensajes cuando realiza el backup en la sdcard, todos estos registros así como las conversaciones actuales, agenda de contactos y demás ficheros propios de la aplicación, se encuentran sin cifrar en la memoria interna del dispositivo, de tal forma, que accediendo a la memoria del dispositivo podremos extraer dichos ficheros para analizarlos en otro entorno.
La aplicación que me gustaría presentaros está escrita en Python (DJango) y aunque es una versión Beta y espero poder seguir agregándole más funcionalidades, nos facilitará bastante la tarea a la hora de interpretar la información basándose en los registros de los siguientes ficheros:
- wa.db (agenda de contactos)
- msgstore.db (conversaciones actuales)
- whatsapp-YYYY-MM-DD.log.gz (registro de conversaciones)
- msgstore-YYYY-MM-DD.X.db.crypt (registro de conversaciones cifrado)
Listado de archivos de interés
Nota: Como registro de mensajes solo se usará msgstore.db, pero podemos reemplazar este archivo por cualquiera de los registros de mensajes guardados. Para descargar la aplicación, podemos hacerlo desde la URL del proyecto descargando el fichero zip/tgz o clonando el repositorio:
- Código:
~$ git clone git://github.com/sch3m4/wforensic.git Cloning into 'wforensic'... remote: Counting objects: 136, done. remote: Compressing objects: 100% (117/117), done. remote: Total 136 (delta 11), reused 135 (delta 10) Receiving objects: 100% (136/136), 364.66 KiB | 163 KiB/s, done. Resolving deltas: 100% (11/11), done. ~$
Una vez hecho esto, entramos en el directorio creado y copiamos en él los ficheros wa.db y msgstore.db:
- Código:
~$ cd wforensic/ ~/wforensic$ cp -v /tmp/*.db . `/tmp/msgstore.db' -> `./msgstore.db' `/tmp/wa.db' -> `./wa.db' ~/wforensic$ ls -1 CHANGELOG LICENSE README msgstore.db tools wa.db wforensic ~/wforensic$
En caso de necesitar utilizar un registro de log, procederemos de la misma manera, descomprimiendo el fichero:
- Código:
~$ gzip -d whatsapp-2012-05-03.1.log.gz ~$ mv whatsapp-2012-05-03.1.log wforensic/msgstore.db ~$
Hecho esto, podemos iniciar la aplicación y acceder al navegador accediendo al puerto correspondiente, que por defecto es el 8000:
Ejecutando el servidor DJango
Hecho esto, si accedemos a la URL especificada podremos ver como página principal un breve resumen de la actividad:
Si por el contrario, solo tenemos acceso a los ficheros cifrados, podemos usar el script "tools/decrypt.py" (gracias al post de Alejandro Ramos):
Volcando y descifrando un registro de mensajes desde la sdcard.
Ahora volvemos a acceder a la aplicación y navegar por todos sus apartados para revisar el registro descifrado:
En la parte de "Contacts" (como en el resto de la aplicación) se muestran tanto los contactos con WhatsApp como los que no. Cuando un contacto tiene WhatsApp instalado en su dispositivo, aparecerá con el icono (como se muestra) al lado del nombre, el número de mensajes intercambiados y un enlace en su número de teléfono para mostrar la conversación.
En el menú superior de la aplicación, aparecen secciones para ver la lista de contactos, los chats mantenidos, mostrar los mensajes con coordenadas GPS, mensajes con contenido multimedia, etc. Cuando un mensaje posee algún tipo de adjunto (imagen, contacto, coordenadas, etc.) a demás de mostrar el thumbnail del contenido, nos aparecerá un icono al lado del nombre del contacto, con la URL al contenido original, (en el caso de las coordenadas GPS, será un enlace a Google Maps). Y para sorpresa (o no) de muchos, esto es lo que pasa cuando accedemos a la URL original:
Y finalizando, dos capturas para ver cómo se muestra el listado de chat y las conversaciones:
Como dije al principio del post, se trata de una beta y se le pueden agregar muchas más opciones que espero poder agregar. No obstante, toda contribución de ideas (se incorporarán al TODO) , manual o mejora (serán agregadas lo antes posible) es bienvenida.
Fuente: http://www.securitybydefault.com/2012/05/whatsapp-forensics.html