Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON...

46
WhatsApp: mentiras y cintas de vídeo Jaime Sánchez (@segofensiva) Pablo San Emeterio (@psaneme)

description

 

Transcript of Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON...

Page 1: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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)

Page 2: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 3: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!3

¿  POR  QUE  TANTA  MENSAJERÍA  

INSTANTÁNEA  ?

Page 4: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!4

Page 5: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!5

Page 6: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 7: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 8: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!8

Page 9: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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  ?

Page 10: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!10

ESTADÍSTICAS

ALGUNAS  ESTADÍSTICAS

Page 11: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 12: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 13: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!13

Page 14: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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?

Page 15: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 16: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!16

Page 17: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!17

Page 18: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!18

Page 19: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!19

Page 20: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!20

Page 21: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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  ?

Page 22: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!22

FACEBOOK  COMPRA  WHATSAPP  …

Page 23: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!23

…  Y  ALGUNAS  COSAS  NO  CAMBIAN

Page 24: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 25: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!25

CRECIMIENTO  METEÓRICO

Page 26: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 27: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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.

Page 28: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 29: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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  ?

Page 30: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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.

Page 31: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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>

Page 32: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 33: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 34: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 35: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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) …

Page 36: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 37: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!37

¿  POR  QUÉ  ?

Page 38: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!38

ATACANDO  EL  CLIENTE

Page 39: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!39

FALSEANDO  REMITENTES

Page 40: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 41: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!41

Page 42: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!42

Page 43: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

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

Page 44: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!44

Page 45: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!45

Page 46: Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]

Rooted CON 2014 6-7-8 Marzo // 6-7-8 March!46