Pablo San Emeterio López & Jaime Sánchez – WhatsApp, mentiras y cintas de video [Rooted CON 2014]
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 538 views

 

Statistics

Views

Total Views
538
Views on SlideShare
538
Embed Views
0

Actions

Likes
1
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 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 multiplataforma que permite enviar y recibir mensajes a través Internet de manera gratuita. ! - Ha sustituido a los servicios 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=”01234567890@s.whatsapp.net”         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=”01234567890@s.whatsapp.net”          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ÓN
 EN 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