Replicando el funcionamiento de "Antorcha" con herramientas públicamente disponibles

Ayer en la noche Canal 13 publicó un video en el que Alex Smith muestra el funcionamiento de la aplicación "Antorcha", supuestamente utilizada para acceder a las conversaciones de WhatsApp y Telegram de terceras personas. Luego de ver esa demostración, y tomando en cuenta la escasa información que se pudo obtener respecto del funcionamiento de la aplicación, me di a la tarea de intentar replicar su funcionamiento con herramientas públicamente disponibles a través de Internet.

Lo primero que debe estar claro es que todo este procedimiento se basa en el supuesto de que la víctima tiene habilitada la opción de configuración de WhatsApp (en Android) para realizar un respaldo diario de sus datos. Todos los pasos mencionados a continuación apuntan a acceder a este respaldo y poder leer las conversaciones guardadas allí.

Pantalla de configuración de respaldos diarios de WhatsApp en Android.
Como es claramente visible en la entrevista a Alex Smith, se utilizó la herramienta web xploitz.net para "hackear" la cuenta de GMail de la víctima (a pesar de que por algún motivo Smith intentó ocultar este hecho, cubriendo la parte superior de su pantalla). Es importante mencionar que esta herramienta no fue creada por Alex Smith, sino que está disponible de manera gratuita y pública desde hace bastante tiempo.

Aparición de la herramienta xploitz.net en el video de Canal 13.
Esta herramienta realiza una operación de phishing para que la víctima entregue incautamente su nombre de usuario y contraseña, generando un enlace a una página web que simula ser el formulario de inicio de sesión de Google. Smith entonces le enviaba ese enlace a la víctima mediante un correo electrónico, camuflándolo de manera que pareciera ser un mensaje legítimo.

Ejemplo de un formulario falso de entrada a GMail, enviado a la víctima para obtener sus datos.
Si la víctima era engañada e ingresaba sus datos en el formulario, entonces su nombre de usuario y contraseña serían visibles a través de xploitz.net.

El nombre de usuario y la contraseña de la víctima de phishing. tal como puede verse en xploitz.net.
Ya teniendo el nombre de usuario y la contraseña de la cuenta de Google de la víctima, entonces es posible acceder a los datos alojados en Google Drive, incluyendo el respaldo de los datos que la aplicación WhatsApp realiza diariamente.

Pero aún queda un problema: el respaldo de WhatsApp que se almacena en Google Drive sólo es accesible para la aplicación que lo generó inicialmente; es decir, para el propio WhatsApp. ¿Cómo se podría acceder a esos datos sin utilizar dicha aplicación? Hay varias opciones posibles, pero la más lógica sería utilizar una aplicación que se hiciera pasar por WhatsApp (es decir, que utilizara el mismo ID de aplicación) y que pudiera descargar los archivos.

NOTA: hasta aquí me he limitado a comentar el procedimiento que se observa en el video realizado por Canal 13. Lo que viene a continuación es el resultado de una investigación que yo realicé individualmente a modo de prueba de concepto. En ningún caso estoy afirmando que Alex Smith utilizó este método para acceder a las conversaciones de WhatsApp.

Una rápida búsqueda en Google nos muestra que efectivamente existe al menos una aplicación de este tipo, llamada WhatsApp-GD-Extractor (existen otros productos similares pero son comerciales y yo no contaba con presupuesto como para pagar sus licencias). La última actualización de esta herramienta es de hace un año y por lo tanto no funciona con la versión actual de WhatsApp y Google Drive; pero luego de bucear en algunos foros pude encontrar una versión modificada que funciona adecuadamente.

Pero aún existe un problema: esta aplicación requiere no sólo el nombre de usuario y contraseña de la cuenta de Google (que ya obtuvimos en el paso anterior), sino que además se necesita el ID de Google del dispositivo. Esta información es fácilmente visible teniendo acceso físico al teléfono (incluso hay aplicaciones en la Google Play Store que permiten verla), pero no tengo idea de cómo obtenerla remotamente. ¿Alguien tiene alguna sugerencia? (ACTUALIZACIÓN: al parecer la aplicación puede funcionar sin este ID, pero aumenta el riesgo de que Google detecte la operación como un ataque y la bloquee.)

Asumiendo que de algún modo el atacante pudo obtener el ID de dispositivo, la herramienta WhastApp-GD-Extractor permitirá descargar sin mayor problema el respaldo de WhatsApp almacenados en Google Drive. Esto incluye imágenes, datos de los contactos y conversaciones (chats). Tanto las imágenes como los datos de los contactos serán visibles directamente, ya que no están cifrados. Pero las conversaciones (chats) están almacenados en una base de datos SQLite cifrada, tal como mostramos en el (largo y aburrido) video que realizamos ayer con Paulo Colomés.


Para descifrar la base de datos de los mensajes, es posible utilizar la misma técnica del video anterior, pero con la dificultad de que esto requiere acceso físico al teléfono para poder extraer la key de cifrado utilizada por WhatsApp.

Asumiendo (nuevamente) que de algún modo el atacante pudo obtener la key de cifrado de WhatsApp, lo que queda es simplemente descifrar la base de datos SQLite y ya tendremos acceso a todas las conversaciones de WhatsApp en texto simple y claro. Existen varias herramientas que permiten realizar el descifrado; por ejemplo, Crypt12-Decryptor. El resultado será un archivo llamado msgstore.db (o algo similar) que puede ser abierto con cualquier cliente de SQLite, como por ejemplo SQLiteman.
El programa SQLiteman mostrando las conversaciones de WhatsApp obtenidas desde el respaldo en Google Drive.
En conclusión: ¿Es posible acceder a los datos de respaldo de WhatsApp (conversaciones, imágenes, datos de contactos) alojados en Google Drive de una potencial víctima de espionaje? La respuesta es , siempre y cuando se cumplan las siguientes condiciones:
  • Se requiere el nombre de usuario y contraseña de la cuenta de Google de la víctima (en el caso de "Antorcha", al parecer esta información se obtenía mediante phishing).
  • Se requiere el ID de Google del dispositivo. (ACTUALIZACIÓN: al parecer la aplicación puede funcionar sin este ID, pero aumenta el riesgo de que Google detecte la operación como un ataque y la bloquee.)
  • Para acceder a las conversaciones almacenadas en la base de datos SQLite se requiere la key de cifrado de WhatsApp. Hasta el momento sólo he sido capaz de obtenerla teniendo acceso físico al dispositivo; no conozco una forma de hacer esto de manera remota.
Como se puede observar, aún queda bastante para poder replicar el funcionamiento de "Antorcha" tal como Alex Smith lo ha descrito (aunque es notorio que cada información que ha ido apareciendo contradice las afirmaciones anteriores y hoy en día es difícil tener una idea real de cómo funciona su aplicación, si es que realmente lo hace). Pero el hecho es que, como queda establecido, sí es posible acceder al respaldo diario que WhatsApp almacena en Google Drive y poder leer las conversaciones guardadas allí.

NOTA FINAL: Este análisis ha sido realizado con fines puramente académicos y no pretende inculpar ni defender a ninguna de las partes involucradas en la creación y utilización del programa "Antorcha".



Comentarios

Entradas más populares de este blog

Actualizar información de zona horaria en Java

Cambiar la resolución de pantalla en Fedora 11 con tarjeta de video Intel