Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
WhatsApp: mentiras y cintas de vídeo
Jaime Sánchez (@segofensiva)
Pablo San Emeterio (@psaneme)
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March
!2
JAIME SÁNCHEZ - Ingenierio Informático & Security Researcher - Executive MBA, CISSP, CISA y CISM - Ponente en Rootedcon, Nuit du Hack, BH Arsenal, Defcon, Derbycon, NoConName, DeepSec, BH Sao Paulo, Shmoocon etc. - Twitter : @segofensiva - http://www.seguridadofensiva.com
!PABLO SAN EMETERIO
- Ingeniero Informático - Trabaja en el departamento I+D de Optenet - Master de Seguridad y Auditoría por la UPM, CISA y CISM - Ponente en Rootedcon, NoConName, Shmoocon, CiberSeg - Experiencia anterior investigando en WhatsApp - Twitter : @psaneme
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!3
¿ POR QUE TANTA MENSAJERÍA
INSTANTÁNEA ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!4
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!5
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!6
- Hoy en día existen muchas aplicaciones conocidas:
- Pero, ¿son sus comunicaciones seguras?. Algunos de los problemas de seguridad más comunes de estos sistemas son: - Robo de Indentidad - Acoso - Falta de cifrado - SPAM - Almacenamiento remoto de malware - Ataques de Denegación de Servicio
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!7
Tenemos:
WAUTH 2 : Cifrado, XMPP y Anonimato
WAUTH 1.2 : Cifrado, XMPP y Anonimato
WhatsApp : Ficheros (audio, fotos, vídeo etc).
NPI si acabará funcionando
Snapchat (Shmoocon : EPIC Fails de IM)
WhatsApp Crash y Modificar Remitente
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!8
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!9
- Snapchat es una aplicación para móviles, que puedes descargar en tu iPhone o Android, para ¿chatear? con amigos a través de fotos y vídeos (con la posibilidad de usar etiquetas). !- Vamos, como un WhatsApp (que ya sabéis que nos gusta) en el que no se puede enviar texto, sólo ficheros multimedia. !- Una de las cosas más importantes de Snapchat es que la características de auto-destrucción de las fotos, una vez el destinatario las ha visto.
¿ QUÉ ES SNAPCHAT ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!10
ESTADÍSTICAS
ALGUNAS ESTADÍSTICAS
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!11
- Crees que es seguro enviar esas fotos embarazosas a través de Snapchat? PIÉNSALO DE NUEVO. !- SnapHack: una aplicación que permite reabrir y guardar mensajes de Snapchat, sin que el remitente sepa que se han almacenado
- Dump de 4.16 millones de usuarios y números de telefóno de usuarios de Snapchat publicados en el sitio web snapchatdb.info, después del public disclosure del funcionamiento de la API.
ALGUNAS LECCIONES DE SEGURIDAD
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!12
- Utilizaremos /ph/retry en favor de /ph/upload + /ph/send:Qué cuenta??teamsnapchat
ENVIANDO SNAPS
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!13
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!14
- Parece que los parámetros req_token & username no fueron importantes para Snapchat hasta la noche de reyes de 2014.. !- Nosotros nos dimos cuenta 3 días después y preguntamos :( !!!!!- Actualmente, no es posible realizar la suplantación de esta forma.
¿ALGUNA OTRA GRAN IDEA?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!15
- "We want to apologize for any unwanted Snaps and let you know our team is working on resolving the issue”, dijo Snapchat en un post en su blog. !- Pero es aún posible enviar mensajes de spam a los 4.6 millones de usuarios de la base de datos publicada. !- ¿ Cuanto tiempo es válido el parámetro req_token ?
Construímos nuestro script para enviar imágenesCapturar y repetir las peticiones http
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!16
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!17
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!18
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!19
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!20
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!21
- WhatsApp es una aplicación de mensajer ía mult iplataforma que permite enviar y recibir mensajes a través Internet de manera gratuita. !- Ha sustituido a los ser vicios tradicionales de mensajes cortos o sistema de mensajería multimedia. !- No existen versiones para Windows, Mac, Linux.
¿ QUÉ ES WHATSAPP ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!22
FACEBOOK COMPRA WHATSAPP …
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!23
… Y ALGUNAS COSAS NO CAMBIAN
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!24
ENTENDIENDO EL MOVIMIENTO
- Porque lo social en el móvil no es lo social en el PC - Si no puedes con el enemigo, compralo! - Facebook pierde usuarios en los grandes mercados a un ritmo alarmante
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!25
CRECIMIENTO METEÓRICO
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!26
- Mensajes en claro (WhatsApp Sniffer) !- Password MD5 basado en IMEI o MAC del teléfono utilizado (espía y suplantación de usuarios) !- Almacenamiento de cualquier contenido en sus servidores (virus, html etc.) :) !- Almacenamiento en claro de la base de datos !- WhatsApp Status: permitía cambiar el estado de cualquier usuario del que se conociera el número de teléfono
ALGUNOS PROBLEMAS DE SEGURIDAD
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!27
- El 13 de Enero de 2012 la aplicación fue retirada 4 días de la App Store !- Aparición de Priyanka para Android
- WhatsApp Voyeur: Obtener datos del perfil de un usuario, sin necesidad de usar tu teléfono móvil !- No se necesita autorización para enviar mensajes, por lo que cualquier usuario/bot puede enviarte spam. !- Problemas actuales con el cifrado RC4 !- etc.
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!28
E-Mail with fake WhatsApp notification
Android Game Steals WhatsApp Conversations
StealGenie: Spy and Dump Instant Messengers data
Fake Spy App on Smartphones
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!29
- WhatsApp utiliza una versión propia/modificada de XMPP (RFC 6120 y RFC 6121) llamada FunXMPP. !- Sin entrar en más detalles técnicos, es un protocolo de mensajería que utiliza como sintaxis el lenguaje XML:
!<message from=”[email protected]” id=”1339831077-7” type=”chat” timestamp=”1339848755”> <notify xmlns=”urn:xmpp:whatsapp” name=”NcN” /> <request xmlns=”urn:xmpp:receipts” /> <body>Hello</body> </message>
!- Al ser una aplicación para móviles, la gente de WhatsApp ha intentado reducir el tamaño de los mensajes y la carga del protocolo a lo mínimo.
¿ CÓMO FUNCIONA WHATSAPP ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!30
- Todas las palabras reservadas utilizadas, han sido sustituídas por un byte, logrando reducir considerablemente la carga. !- FunXMPP utilizada una tabla de conversión para prácticamente todas las palabras reservadas. !- Basándonos en esto, utilizando bytes con el formato \xnn (nn representa un número hexadecimal), el ejemplo anterior quedaría: !
<\x5d \x38=”01234567890@\x8a” \x43=”1339831077-7” \xa2=”\x1b” \x9d=”1339848755”> <\x65 \xbd=”\xae” \x61=”NcN” /> <\x83 \xbd=”\xad” /> <\x16>Hello</\x16> </\x5d> !
- Como podemos ver, las variables no pueden ser sustituídas por representaciones tipo byte al no ser palabras fijas/reservadas.
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!31
- Byte \xfc: sequencia de caracteres ASCII que será utilizada como valor. La longitud de la cadena se encuentra en el siguiente byte (longitud máxima de 255). - Byte \xfd: sequencia de caracteres ASCII, con la diferencia de que la longitud viene expresada en los siguientes tres bytes (longitud máxima de 16777215). - Byte \xf8 y \xf9: representación de tipo especial ‘lista’. El número de elementos se encuentra a continuación. !
Los objetos se cuentan de la siguiente forma: ! 1 2 3 <message from=”[email protected]” 4 5 id=”1339831077-7” 6 7 type=”chat” 8 9 timestamp=”1339848755”> <notify xmlns=”urn:xmpp:whatsapp” | name=”NcN” /> | 10 <request xmlns=”urn:xmpp:receipts” /> | <body>Hello</body> |
</message>
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!32
57:41 => WA 01:02 => PROTOCOL VERSION 1.2 !f8:05:01:c8:ab:a5:fc:12:69:50:68:6f:6e:65:2d:32:2e:31:30:2e:32:2d:35:32:32:32:00:00 0x01 => stream:stream 0xc8 => to 0xab: s.whatsapp.net 0xa5 => resource 0xfc => String 12caracteres => iPhone-2.10.2-5222
<stream:stream to=”s.whatsapp.net” resource=”iPhone-2.10.2-5222” /> !f8:02:bb => 0xbb => stream:features f8:04 f8:03:70:31:ca => 0x70 => message_acks 0x31 => enable 0xca => TRUE f8:01:9c => 0x9c => receipt_acks f8:03:e4:cb:0c => 0xe4 => w:profile:picture 0xcb => type 0x0c => all f8:03:b9:7c:ca => 0xb9 => status 0x7c => notification 0xca => TRUE
<stream:features> <message_acks enable=TRUE /> <receipt_acks /> <w:profile:picture type=ALL /> <status notification=TRUE /> </stream:features> !
f8:08:10:6d:ec:da:fc:0b:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:X:e8:cf 0x10 => auth 0x6d => mechanism 0xec => WAUTH-1 user => 34XXXXXXXXX 0x31 => enable 0xe8 => xmlns 0xcf => urn:ietf:params:xml:ns:xmpp-sasl
<auth mechanism=”WAUTH-1” user=”XXXXXXXXXXX” xmlns=”urn:ietf:params:xml:ns:xmpp-sasl” />
AUTENTICACIÓN WAUTH 1.2
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!33
- El acceso de un nuevo dipositivo se produce de la siguiente manera:
CANAL HTTPS
INTERCAMBIO CLAVE
RECEPCIÓN CLAVE
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!34
PROBLEMAS DE WAUTH 1.2
c1 = m1 ⊕ k c2 = m2 ⊕ k
c1 ⊕ c2 = m1 ⊕ m2
m1 = c1 ⊕ k m2 = c2 ⊕ k
REUSED KEY ATTACK
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!35
WAUTH-‐2 vs WAUTH-‐1- En cada sesión de WhatsApp hay 4 claves: - Cifrado RC4: cliente -> servidor - Cifrado RC4: servidor -> cliente - HMAC mensajes de cliente - HMAC mensajes de servidor
WAUTH 1 1. Las 4 claves son iguales (problemas de cifrado RC4) !2. Cálculo de HMAC utilizando todos los bytes de los mensajes !3. ¿Cómo genera las claves? password + challenge (PKBDF2 16 vueltas)
WAUTH 2 1. Las 4 claves son diferentes !2. Cálculo de HMAC se hace utilizando los bytes de los mensajes concatenandoles el numero de mensaje por el que vamos ( por ejemplo 00 00 00 03 si es el tercer mensaje que envío ) !3.¿Cómo genera las claves? password + challenge+0x01 (PKBDF2 2 vueltas) password + challenge+0x02 (PKBDF2 2 vueltas) …
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!36
- Los informes y documentos filtrados por Edward Snowden en junio de 2013 indican que PRISM se emplea como un medio para la vigilancia a fondo de las comunicaciones y otras informaciones almacenadas !- Los datos que supuestamente la NSA es capaz de obtener gracias a PRISM incluyen correos electrónicos, vídeos, chat de voz, fotos, direcciones IP, notificaciones de inicio de sesión, transferencia de archivos y detalles sobre perfiles en redes sociales !- Empresas de Internet como Microsoft, Google, Yahoo, Dropbox, Apple y Facebook se han visto implicadas. !- Los objetivos son aquellos ciudadanos que vivan fuera de Estados Unidos, aunque también se incluyen a los ciudadanos estadounidenses
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!37
¿ POR QUÉ ?
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!38
ATACANDO EL CLIENTE
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!39
FALSEANDO REMITENTES
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!40
- Hemos comprobado que el cifrado utilizado para salvaguardar la información y la privacidad de nuestras conversaciones es fácil de romper. !- ¿ Qué podemos hacer ? Interceptaremos el mensaje de WhatsApp antes de que salga. Descifraremos el mensaje original con nuestra clave y le aplicaremos un algoritmo de cifrado, y después volveremos a cifrarlo con el algoritmo y clave original para no romper la aplicación. !- Nuestro esquema de funcionamiento de ahora en adelante será:
MODIFICACIÓNEN TIEMPO REAL
CIFRADO ADICIONAL
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!41
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!42
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!43
- El anterior método nos permitirá cifrar nuestros mensajes para que otros atacantes capaces de interceptar nuestro tráfico no sean capaces de adivinar el contenido de los mensajes. !- Pero, ¿ y si queremos que el tráfico directamente no pase por los servidores de WhatsApp ?
SERVIDOR DE MENSAJERÍA XMPP
SERVIDOR PROPIO DE XMPP
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!44
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!45
Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!46
Top Related