SlideShare ist ein Scribd-Unternehmen logo
1 von 95
Downloaden Sie, um offline zu lesen
Do-it-Yourself Spy Program:
Abusing Apple's Call Relay
Protocol
Martin Vigo
Ekoparty 2016
Martin Vigo
Product Security Engineer
salesforce.com
Fundador
Triskel Security
Gallego
@martin_vigo
martinvigo.com
triskelsecurity.com
Gallegos VS Españoles
Curso para argentinos
Mapa
Playas
Playa de Islas Cíes Playa de Barcelona
Gastronomia
Mariscos y pescados Tapas, tortilla, paella
Alcohol
Licor café Sangría
WWDC 2014
Todos en la misma Wi-Fi
Preguntas
• Ya esta hackeado?
• Como funciona?
• Como se comunica el iPhone
con los demás dispositivos?
• Es seguro y esta cifrado el
protocolo?
• Puedo Escuchar/Inyectar/
Modificar/DoS las llamadas?
Motivación
Seguridad basada en
secretismo
Nivel de motivación
100%
Entendiendo como
funciona Call Relay
Llamada entrante
Llamada saliente
APNS
GSM Internet
Local Network
TCP:5223TCP
UDP
Posible objectivo
• Protocolo estándar
• Interceptar trafico GSM
• Antena GSM falsa
• Muy ilegal
GSM
Posible objetivo
• Interceptar tráfico APNS
• Conexión persistente
• Canal cifrado
• Cert pinning
• Romper TLS
Posible objetivo
• UDP no esta cifrado
• UDP es “connectionless”
• Multiples vectores de ataque
• DNS spoofing
• ARP Spoofing
• etc.
• Protocolo propietario?
Objectivo de ataque
Reverseando un
protocolo de red
Objetivos
• Como se comunican dos
maquinas?
• Descubre la estructura del
lenguaje
• Aprende a hablar el lenguaje
• Rómpelo!
Como se comunican
dos máquinas
Metodología
• Genera tráfico valido
• Captura el trafico generado por una llamada
• Filtra el ruido
• Observa solo el tráfico entre ambas máquinas
• Aprende…
Como se comunican dos máquinas
Como se comunica el iPhone
con los demás dispositivos
• A través de LAN
• Usando UDP
• Puertos aleatorios con rango 48000 -
64000
• Protocolo propietario
• Facetime y Facetime audio usan
SIP/RTP
• SMS se manda a través de Push
Notifications
Descubre la estructura
del lenguaje
Metodología
• Observa como dos maquinas interactúan
• Mira que datos intercambian
• Identifica campos básicos
• Headers, checksums, counters
• Identifica estructuras básicas
• Header + counter + data
• Busca patrones
• Recoge varias muestras de tráfico generado por la misma acción para
comparar
• Haz varias llamadas telefónicas
• Repite los pasos anteriores y compara
Recolecta y compara
• Identifica que ha cambiado entre llamadas bajo las mismas
condiciones
• Compara con llamadas hechas con un AppleID diferente
• Haz pruebas en versiones antiguas para encontrar cambios
realizados
Primer paquete mandado en 4
diferentes llamadas
• Inicio del payload, estático
• Posiblemente un header
• Dinámico, longitud poco común (12 bytes)
• Algún tipo de identificador? Dispositivo, usuario, llamada…
• Estático, separa dos campos dinámicos, longitud típica (4 bytes)
• Separador?
• Dinamico, 16 bits, cerca del final del payload
• Checksum?
• Estático, todo ceros, al final del payload
• Marcador de final de paquete
Produce casos inesperados
• Que sucede si…
• Añado delays?
• Dropeo paquetes específicos?
• Bloqueo cierto tráfico?
Bloqueo del primer paquete mandado
• Reintenta 10 veces cada
medio segundo
• Solo cambian dos bytes
• Parece incremental pero no
por una diferencia constante
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1b:bb:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1e:07:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:20:3b:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:22:3b:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:24:84:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:26:c6:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:29:08:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:2b:1b:00:00
• Huele a timestamp!
• 1.125111000 - 0.574930000 = 0.550181 milisegundos
• 0x203b - 0x1e07 = 0x0234 = 564 …milisegundos???
• 564 ~ 550 si tenemos en cuenta cierto margen de error
• Necesitamos confirmar nuestra teoría
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1b:bb:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1e:07:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:20:3b:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:22:3b:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:24:84:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:26:c6:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:29:08:00:00
0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:2b:1b:00:00
3 llamadas consecutivas bloqueadas
• 106.715 - 93.003 = 13712ms | 0x4e10 - 0x1736 = 14042ms
• Mismo margen de error las otras dos llamadas
• Hemos confirmado a timestamp de 2 bytes
Primer paquete mandado en 4
diferentes llamadas
• Dinamico, 16 bits, cerca del final del payload
• Checksum? TIMESTAMP representando cuando
se ha mandado el paquete.
• Solo 2 bytes -> 65535 milisegundos
• Se resetea cada ~65 segundos
Encontrando patrones manualmente
Tiene que haber un modo mejor de hacerlo
Netzob
• Ayuda a reversear protocolos
• Aplica modelos matemáticos para
encontrar:
• Patrones
• Relaciones entre bytes
• Formatos
• Y mucho mas!
Parte de una llamada
3 headers diferentes
Los dos primeros paquetes
de 5 llamadas diferentes
Netzob encuentra más patrones cuando opera sobre datos similares
• Mac -> Iphone / iPhone -> Mac
• Identificamos que solo cambia un byte
• Mac -> iPhone manda 0
• iPhone -> Mac manda 1
• Campo 5 es estático en la misma llamada pero cambia
entre llamadas
Hemos encontrado el “Discovery phase”
4. You there?
5. Yep
Local Network
Siguientes 2 paquetes de 5 llamadas distintas
• Campo 1: Cambio de 0 ->1
• Campo 5: Cambio de 38 -> 10
• Campo 7: Mismos bytes que en el primer paquete
• Campo 9: Solo se manda de Mac a iPhone. Los bytes
tienen una propiedad…
Campo 9: Los bytes son “printables”
• Probablemente un identificador de llamada seguido de un ACK
• Tenemos la primera prueba de texto no cifrado!
4. You there?
5. Yep
Local Network
Identification
ACK
Encontramos la “Identification phase”
Todos los paquetes con header 20040004
Demasiados datos. Centrémonos en lo interesante
• Lo típico: Header, campos estáticos, separadores, etc.
• Primer y segundo paquete (Mac -> iPhone | iPhone -> Mac)
• Campo 1: 4 bytes aleatorios | Campo 2: 4 null-bytes
• Simula el sequence number del protocolo TCP?
• Tercer paquete (Mac -> iPhone)
• Campo 1: Mismos 4 bytes mandados en el primer paquete | Campo 2: Los 4 bytes mandados en el campo 1 por el iPhone +1
• Campo 3: Cambia el segundo byte de 0 -> 1
4. You there?
5. Yep
Local Network
Identification
ACK
Negotiate call
Encontramos el “Call negotiation phase”
Todos los paquetes con header e000
• 2 valores diferentes que incrementan en 1 (decimal) de manera constante
• Cada dispositivo tiene su propio contador para sincronización
• Contador de 2 bytes. Se resetea cada ~20 minutos en una llamada. Importante si se usa para cifrado!
• Valor estático. Diferente en cada dispositivo. Cambia cada llamada
• Audio Encodeado / Comprimido / Cifrado
• Confirmado mediante “bit flipping”
4. You there?
5. Yep
Local Network
Identification
ACK
Negotiate call
Sound transmission
Ya tenemos todas las fases del protocolo
Ven a hablar conmigo si estas interesado y quieres mas detalles!
Muchos mas detalles que no hay tiempo para explicar :(
APNS
1. Incoming call
2. Mr. X is calling!
3. Mr. X call
iPhone’s internal IP:Port
4. You there?
5. Yep
6. Negotiate call
7. Sound transmission
GSM
Local Network
Internet
4. Identification
5. ACK
Aprende a hablar el
lenguaje
Metodología
• Implementa el lenguaje en base a lo que has
aprendido
• Reemplaza una de las máquinas
• Comunícate con la otra en su propio lenguaje.
Prueba, falla, corrige y repite
Visita mi repositorio github
https://www.github.com/martinvigo
• Usé scapy para implementar el protocolo
• Reemplace correctamente el iPhone y el Mac
• Aun no funciona 100%
• Me faltan algunos detalles del protocolo
• El timing es importante para testear y lo
complica mucho
Rómpelo!
Metodología
• Define tus objetivos
• Puedo escuchar llamadas de otros?
• Puedo hacer llamadas como si fuera la víctima?
• Puedo espiar a gente?
• etc.
• Smart fuzzing
• Fuzzea campos dinámicos
• Respeta las reglas y estructuras del protocolo
• Headers, counters, campos estáticos, etc.
• Genera casos inesperados
#Fails
• Escuchar llamadas ajenas
• Decodear/Descomprimir/Descifrar audio
• Replay attacks
• Redirigir/Duplicar audio en dispositivo atacante
• Hacer llamadas como si fuera la víctima
• Inyectar audio
#Wins
• DoS a llamadas
• Espiar víctimas dejándoles el micrófono abierto
• Hacerme pasar por un interlocutor en llamadas
multiparty
DoS a llamadas
• Que sucede si mando un paquete del “Call negotiation phase” durante una llamada?
• Necesito poder crear un paquete válido
• Queremos un paquete “joker” que funcione siempre sin tener que adivinar/bruteforcear
ningún byte
• Sin necesidad de MiTM
• Use scapy para fuzear el protocolo poniendo a null todos los bytes posibles
Magic DoS call packet payload
20040004000000000000000000b002000000000000000000000000000000000000000000000000000000000000
Scapy script: https://github.com/martinvigo
Espiando a víctimas
• No puedo escuchar llamadas ajenas
• No puedo inyectar audio
• No puedo hacer replay attacks de audio
• No puedo redirigir/duplicar audio en otro
dispositivo
• Uso de cifrado
State of Surveillance
Vice News documentary
Nosey Smurf
NSA tool to enable microphones on mobile devices
Adi Shamir at RSA Conference
“In the future, cryptography won’t be broken,
it will be bypassed”
Que sucede cuando se cuelga
el teléfono?
• Absolutamente nada…
• Los paquetes de audio simplemente paran
• No hay diferencias en el audio payload
• Hay algo que se me esta escapando…
El problema…
A veces hay que alzar la vista
Incluyendo tráfico APNS
Tráfico hacia APNS justo cuando cuelgo…
Colgando en dispositivos
El mensaje “Cuelga” se manda a través de Push Notification
Malas prácticas de seguridad
• M8: Decisiones de seguridad en base a inputs no confiados
• Apple no sigue sus propias recomendaciones de seguridad
• “Push notifications are not guaranteed to be delivered”
• “Do not rely on Push Notifications for sensitive actions”
Como funciona el ataque
• No permitas que el mensaje “Cuelga” llegue al iPhone
1. ARP spoofing para MiTM
2. Llama a la víctima
3. Bloquea el tráfico saliente hacia 17.0.0.0/8 (APNS)
Demo
Espiando a víctimas
Reemplazando interlocutores
• Call Relay permite multiparty
• Que sucede cuando cambio
entre interlocutores?
• Lo mismo! El mensaje “Cambia
de llamada” se manda a través
de APNS
• Podemos evitar que se cambie
de llamada mientras la interfaz
muestra que sucedió
Combinando ambas
vulnerabilidades
• Podemos evitar que se cuelgue el teléfono
• Podemos evitar que se cambie de llamada
• Combinemos los dos!
1. El atacante llama a la víctima mientras esta hablando con otra persona
2. La víctima pone la llamada en espera y habla con el atacante
3. El atacante deja que la víctima cuelgue el teléfono
4. Bloquea ambos mensajes “Colgar” y “Cambiar de llamada”
• La interfaz muestra que solo hablas con la llamada legítima cuando
en realidad estas hablando con el atacante
Demo
Reemplazando a interlocutores
Do-it-Yourself Spy Program
Construyendo un Spy Program
a lo barato
1. Encuentra vulnerabilidades
2. Weaponizalas
3. Distribúyelas de manera masiva
4. Exploit
Encuentra vulnerabilidades
y weaponizalas
• Podemos interrumpir llamadas
• Podemos reemplazar a interlocutores
• Podemos obtener metadatos de las llamadas
• Podemos abrir micrófonos remotamente
Distribuye masivamente
• Objetivos
• Routers y dispositivos IoT
• Problemas
• Poco o nada de
almacenamiento
• Múltiples combinaciones de
hardware y software
• Pocas y limitadas herramientas
preinstaladas
Hackeando routers y IoT
• Easier than it seems
• Find them with Shodan
• Default credentials
• Off-the-shelf exploits
• Can be easily automated
Identificando dispositivos
Apple en redes comprometidas
• Los 3 primeros bytes de la
MAC indican el vendor
• IEEE Registration authority
tiene todas las asignaciones
registradas
• Mira la tabla ARP en el router
y busca en la Base de Datos
arp -a | awk '{print $4}' | while read mac; do echo $mac | grep -io [0-9A-F][0-9A-F]:[0-9A-F]
[0-9A-F]:[0-9A-F][0-9A-F] | head -n 1; done | while read splitmac ; do echo $splitmac | tr -d : ;
done
Exploit
• Requerimientos
• MiTM
• Dropea paquetes APNS
• Llamar a las víctimas
Bloquea tráfico APNS
• “APNs uses a persistent IP connection for implementing
remote notifications”
• Las reglas Firewall ignoran “ESTABLISHED connections”
• DNS poison APNS y rerouta el tráfico
• Simula el final de una conexión
• FIN-ACK-RST
• Resetea la conexión persistente al estado “NEW” para
que apliquen las reglas del Firewall
Reseteando una conexión persistente
• Objectivo: Resetear una conexión
externa hacia APNS manteniendo
activo el tráfico interno
• Routers tiene 2 interfaces de red
• Interna -> LAN
• Externa -> Internet
• Desactiva la interfaz de red externa
temporalmente
bridge
eth0
ifconfig eth0 down && sleep 2 && ifconfig eth0 up
Obteniendo números de teléfono
• War dialing
• Obtén el BSSID de los routers
• Usa wigle.net para obtener la
localización física del router
• War dialing en base al “area code”
• Detecta llamadas entrantes haciendo
“fingerprinting”
• Correlaciona números de teléfonos con
routers detectando llamadas entrantes
Conclusiones
Timeline
iOS 8
Yosemite
iOS 9
El Capitan
Found
vulnerabilities
iOS 9.3.2
El Capitan 10.11.5
iOS 9.3.3
El Capitan 10.11.6
Spy vulnerability
fixed
iOS 9.3.5
Sierra beta 8
Found Regression
iOS 10
Sierra 10.12
DoS vulnerability
fixed
CVE-2016-4722CVE-2016-4635
iOS 10.1
Sierra 10.12.1
All issues
fixed
Oportunidades de
investigación
• Reversear FaceTime y daemons
• Criptoanálisis del protocolo
• Dar soporte en otros sistemas al protocolo Call Relay
• Inferir información del tráfico cifrado
• http://www.cs.unc.edu/~fabian/papers/tissec2010.pdf
• https://www.cs.jhu.edu/~cwright/voip-vbr.pdf
Q & A
Muchas gracias!

Weitere ähnliche Inhalte

Ähnlich wie Abusando del protocolo Call Relay de Apple

Comunicación on line.1 ppt
Comunicación on line.1 pptComunicación on line.1 ppt
Comunicación on line.1 pptAylen Camargo
 
Comunicación on line.1 ppt
Comunicación on line.1 pptComunicación on line.1 ppt
Comunicación on line.1 pptAylen Camargo
 
Privacidad y la red, introducción a PGP/GPG
Privacidad y la red, introducción a PGP/GPGPrivacidad y la red, introducción a PGP/GPG
Privacidad y la red, introducción a PGP/GPGJuan José Martínez
 
Taller basico de Introduccion a Raspberry Pi.pptx
Taller basico de Introduccion a Raspberry Pi.pptxTaller basico de Introduccion a Raspberry Pi.pptx
Taller basico de Introduccion a Raspberry Pi.pptxdocmarcoantoniosotov
 
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdfNinabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdfJamilNina1
 
David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]
David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]
David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]RootedCON
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomNepcom
 
Como funciona el voip(1)
Como funciona el voip(1)Como funciona el voip(1)
Como funciona el voip(1)miguel
 
Presentación fundamento
Presentación fundamentoPresentación fundamento
Presentación fundamentoRobertoAlcolea
 
Tutorial dirección ip
Tutorial dirección ipTutorial dirección ip
Tutorial dirección ipmeysin
 
Clase18
Clase18Clase18
Clase181 2d
 
Clase18
Clase18Clase18
Clase181 2d
 
Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Daniel Oscar Fortin
 
Skype Como Herramienta Clave
Skype Como Herramienta ClaveSkype Como Herramienta Clave
Skype Como Herramienta ClaveNico Yepes
 

Ähnlich wie Abusando del protocolo Call Relay de Apple (20)

Comunicación on line.1 ppt
Comunicación on line.1 pptComunicación on line.1 ppt
Comunicación on line.1 ppt
 
Comunicación on line.1 ppt
Comunicación on line.1 pptComunicación on line.1 ppt
Comunicación on line.1 ppt
 
Privacidad y la red, introducción a PGP/GPG
Privacidad y la red, introducción a PGP/GPGPrivacidad y la red, introducción a PGP/GPG
Privacidad y la red, introducción a PGP/GPG
 
Taller basico de Introduccion a Raspberry Pi.pptx
Taller basico de Introduccion a Raspberry Pi.pptxTaller basico de Introduccion a Raspberry Pi.pptx
Taller basico de Introduccion a Raspberry Pi.pptx
 
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdfNinabanda_Jamil_Códecs_para_telefonía_IP.pdf
Ninabanda_Jamil_Códecs_para_telefonía_IP.pdf
 
Bitcoin y (in)seguridad: 5 paradojas
Bitcoin y (in)seguridad: 5 paradojasBitcoin y (in)seguridad: 5 paradojas
Bitcoin y (in)seguridad: 5 paradojas
 
David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]
David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]
David Barroso - iPhone + Botnets = FUN! [RootedCON 2010]
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en Nepcom
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
Como funciona el voip(1)
Como funciona el voip(1)Como funciona el voip(1)
Como funciona el voip(1)
 
Presentación fundamento
Presentación fundamentoPresentación fundamento
Presentación fundamento
 
Tutorial dirección ip
Tutorial dirección ipTutorial dirección ip
Tutorial dirección ip
 
Dirección IP
Dirección IPDirección IP
Dirección IP
 
Clase18
Clase18Clase18
Clase18
 
Clase18
Clase18Clase18
Clase18
 
Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4Cisco Cybersecurity Essential cap 4
Cisco Cybersecurity Essential cap 4
 
Hands-on con Smart Assistant
Hands-on con Smart AssistantHands-on con Smart Assistant
Hands-on con Smart Assistant
 
S7 hack-hacking con google bing y shodan p3
S7 hack-hacking con google bing y shodan p3S7 hack-hacking con google bing y shodan p3
S7 hack-hacking con google bing y shodan p3
 
Presentacion bitup alicante 2018
Presentacion bitup alicante 2018Presentacion bitup alicante 2018
Presentacion bitup alicante 2018
 
Skype Como Herramienta Clave
Skype Como Herramienta ClaveSkype Como Herramienta Clave
Skype Como Herramienta Clave
 

Mehr von Martin Vigo

Phonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needsPhonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needsMartin Vigo
 
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needsPhonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needsMartin Vigo
 
From email address to phone number, a new OSINT approach
From email address to phone number, a new OSINT approachFrom email address to phone number, a new OSINT approach
From email address to phone number, a new OSINT approachMartin Vigo
 
Ransombile: yet another reason to ditch sms
Ransombile: yet another reason to ditch smsRansombile: yet another reason to ditch sms
Ransombile: yet another reason to ditch smsMartin Vigo
 
Compromising online accounts by cracking voicemail systems
Compromising online accounts by cracking voicemail systemsCompromising online accounts by cracking voicemail systems
Compromising online accounts by cracking voicemail systemsMartin Vigo
 
Mobile apps security. Beyond XSS, CSRF and SQLi
Mobile apps security. Beyond XSS, CSRF and SQLiMobile apps security. Beyond XSS, CSRF and SQLi
Mobile apps security. Beyond XSS, CSRF and SQLiMartin Vigo
 
Building secure mobile apps
Building secure mobile appsBuilding secure mobile apps
Building secure mobile appsMartin Vigo
 
Secure Salesforce: Hardened Apps with the Mobile SDK
Secure Salesforce: Hardened Apps with the Mobile SDKSecure Salesforce: Hardened Apps with the Mobile SDK
Secure Salesforce: Hardened Apps with the Mobile SDKMartin Vigo
 
Breaking vaults: Stealing Lastpass protected secrets
Breaking vaults: Stealing Lastpass protected secretsBreaking vaults: Stealing Lastpass protected secrets
Breaking vaults: Stealing Lastpass protected secretsMartin Vigo
 
Even the LastPass Will be Stolen Deal with It!
Even the LastPass Will be Stolen Deal with It!Even the LastPass Will be Stolen Deal with It!
Even the LastPass Will be Stolen Deal with It!Martin Vigo
 
Creating secure apps using the salesforce mobile sdk
Creating secure apps using the salesforce mobile sdkCreating secure apps using the salesforce mobile sdk
Creating secure apps using the salesforce mobile sdkMartin Vigo
 
Security Vulnerabilities: How to Defend Against Them
Security Vulnerabilities: How to Defend Against ThemSecurity Vulnerabilities: How to Defend Against Them
Security Vulnerabilities: How to Defend Against ThemMartin Vigo
 
Do-it-Yourself Spy Program: Abusing Apple’s Call Relay Protocol
Do-it-Yourself Spy Program: Abusing Apple’s Call Relay ProtocolDo-it-Yourself Spy Program: Abusing Apple’s Call Relay Protocol
Do-it-Yourself Spy Program: Abusing Apple’s Call Relay ProtocolMartin Vigo
 

Mehr von Martin Vigo (13)

Phonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needsPhonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needs
 
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needsPhonerator, an advanced *valid* phone number generator for your OSINT/SE needs
Phonerator, an advanced *valid* phone number generator for your OSINT/SE needs
 
From email address to phone number, a new OSINT approach
From email address to phone number, a new OSINT approachFrom email address to phone number, a new OSINT approach
From email address to phone number, a new OSINT approach
 
Ransombile: yet another reason to ditch sms
Ransombile: yet another reason to ditch smsRansombile: yet another reason to ditch sms
Ransombile: yet another reason to ditch sms
 
Compromising online accounts by cracking voicemail systems
Compromising online accounts by cracking voicemail systemsCompromising online accounts by cracking voicemail systems
Compromising online accounts by cracking voicemail systems
 
Mobile apps security. Beyond XSS, CSRF and SQLi
Mobile apps security. Beyond XSS, CSRF and SQLiMobile apps security. Beyond XSS, CSRF and SQLi
Mobile apps security. Beyond XSS, CSRF and SQLi
 
Building secure mobile apps
Building secure mobile appsBuilding secure mobile apps
Building secure mobile apps
 
Secure Salesforce: Hardened Apps with the Mobile SDK
Secure Salesforce: Hardened Apps with the Mobile SDKSecure Salesforce: Hardened Apps with the Mobile SDK
Secure Salesforce: Hardened Apps with the Mobile SDK
 
Breaking vaults: Stealing Lastpass protected secrets
Breaking vaults: Stealing Lastpass protected secretsBreaking vaults: Stealing Lastpass protected secrets
Breaking vaults: Stealing Lastpass protected secrets
 
Even the LastPass Will be Stolen Deal with It!
Even the LastPass Will be Stolen Deal with It!Even the LastPass Will be Stolen Deal with It!
Even the LastPass Will be Stolen Deal with It!
 
Creating secure apps using the salesforce mobile sdk
Creating secure apps using the salesforce mobile sdkCreating secure apps using the salesforce mobile sdk
Creating secure apps using the salesforce mobile sdk
 
Security Vulnerabilities: How to Defend Against Them
Security Vulnerabilities: How to Defend Against ThemSecurity Vulnerabilities: How to Defend Against Them
Security Vulnerabilities: How to Defend Against Them
 
Do-it-Yourself Spy Program: Abusing Apple’s Call Relay Protocol
Do-it-Yourself Spy Program: Abusing Apple’s Call Relay ProtocolDo-it-Yourself Spy Program: Abusing Apple’s Call Relay Protocol
Do-it-Yourself Spy Program: Abusing Apple’s Call Relay Protocol
 

Kürzlich hochgeladen

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Kürzlich hochgeladen (20)

Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Abusando del protocolo Call Relay de Apple

  • 1. Do-it-Yourself Spy Program: Abusing Apple's Call Relay Protocol Martin Vigo Ekoparty 2016
  • 2. Martin Vigo Product Security Engineer salesforce.com Fundador Triskel Security Gallego @martin_vigo martinvigo.com triskelsecurity.com
  • 5. Playas Playa de Islas Cíes Playa de Barcelona
  • 6. Gastronomia Mariscos y pescados Tapas, tortilla, paella
  • 8.
  • 9.
  • 11. Todos en la misma Wi-Fi
  • 12. Preguntas • Ya esta hackeado? • Como funciona? • Como se comunica el iPhone con los demás dispositivos? • Es seguro y esta cifrado el protocolo? • Puedo Escuchar/Inyectar/ Modificar/DoS las llamadas?
  • 20. Posible objectivo • Protocolo estándar • Interceptar trafico GSM • Antena GSM falsa • Muy ilegal GSM
  • 21. Posible objetivo • Interceptar tráfico APNS • Conexión persistente • Canal cifrado • Cert pinning • Romper TLS
  • 22. Posible objetivo • UDP no esta cifrado • UDP es “connectionless” • Multiples vectores de ataque • DNS spoofing • ARP Spoofing • etc. • Protocolo propietario?
  • 25. Objetivos • Como se comunican dos maquinas? • Descubre la estructura del lenguaje • Aprende a hablar el lenguaje • Rómpelo!
  • 27. Metodología • Genera tráfico valido • Captura el trafico generado por una llamada • Filtra el ruido • Observa solo el tráfico entre ambas máquinas • Aprende…
  • 28. Como se comunican dos máquinas
  • 29. Como se comunica el iPhone con los demás dispositivos • A través de LAN • Usando UDP • Puertos aleatorios con rango 48000 - 64000 • Protocolo propietario • Facetime y Facetime audio usan SIP/RTP • SMS se manda a través de Push Notifications
  • 31. Metodología • Observa como dos maquinas interactúan • Mira que datos intercambian • Identifica campos básicos • Headers, checksums, counters • Identifica estructuras básicas • Header + counter + data • Busca patrones • Recoge varias muestras de tráfico generado por la misma acción para comparar • Haz varias llamadas telefónicas • Repite los pasos anteriores y compara
  • 32.
  • 33. Recolecta y compara • Identifica que ha cambiado entre llamadas bajo las mismas condiciones • Compara con llamadas hechas con un AppleID diferente • Haz pruebas en versiones antiguas para encontrar cambios realizados
  • 34. Primer paquete mandado en 4 diferentes llamadas • Inicio del payload, estático • Posiblemente un header • Dinámico, longitud poco común (12 bytes) • Algún tipo de identificador? Dispositivo, usuario, llamada… • Estático, separa dos campos dinámicos, longitud típica (4 bytes) • Separador? • Dinamico, 16 bits, cerca del final del payload • Checksum? • Estático, todo ceros, al final del payload • Marcador de final de paquete
  • 35. Produce casos inesperados • Que sucede si… • Añado delays? • Dropeo paquetes específicos? • Bloqueo cierto tráfico?
  • 36. Bloqueo del primer paquete mandado • Reintenta 10 veces cada medio segundo • Solo cambian dos bytes • Parece incremental pero no por una diferencia constante 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1b:bb:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1e:07:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:20:3b:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:22:3b:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:24:84:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:26:c6:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:29:08:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:2b:1b:00:00
  • 37. • Huele a timestamp! • 1.125111000 - 0.574930000 = 0.550181 milisegundos • 0x203b - 0x1e07 = 0x0234 = 564 …milisegundos??? • 564 ~ 550 si tenemos en cuenta cierto margen de error • Necesitamos confirmar nuestra teoría 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1b:bb:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:1e:07:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:20:3b:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:22:3b:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:24:84:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:26:c6:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:29:08:00:00 0f:00:01:00:08:21:12:a4:42:ce:33:d7:51:28:f2:fe:08:5a:0d:9b:50:80:05:00:04:2b:1b:00:00
  • 38. 3 llamadas consecutivas bloqueadas • 106.715 - 93.003 = 13712ms | 0x4e10 - 0x1736 = 14042ms • Mismo margen de error las otras dos llamadas • Hemos confirmado a timestamp de 2 bytes
  • 39. Primer paquete mandado en 4 diferentes llamadas • Dinamico, 16 bits, cerca del final del payload • Checksum? TIMESTAMP representando cuando se ha mandado el paquete. • Solo 2 bytes -> 65535 milisegundos • Se resetea cada ~65 segundos
  • 41. Tiene que haber un modo mejor de hacerlo
  • 42. Netzob • Ayuda a reversear protocolos • Aplica modelos matemáticos para encontrar: • Patrones • Relaciones entre bytes • Formatos • Y mucho mas!
  • 43. Parte de una llamada 3 headers diferentes
  • 44. Los dos primeros paquetes de 5 llamadas diferentes Netzob encuentra más patrones cuando opera sobre datos similares
  • 45. • Mac -> Iphone / iPhone -> Mac • Identificamos que solo cambia un byte • Mac -> iPhone manda 0 • iPhone -> Mac manda 1 • Campo 5 es estático en la misma llamada pero cambia entre llamadas
  • 46. Hemos encontrado el “Discovery phase” 4. You there? 5. Yep Local Network
  • 47. Siguientes 2 paquetes de 5 llamadas distintas • Campo 1: Cambio de 0 ->1 • Campo 5: Cambio de 38 -> 10 • Campo 7: Mismos bytes que en el primer paquete • Campo 9: Solo se manda de Mac a iPhone. Los bytes tienen una propiedad…
  • 48. Campo 9: Los bytes son “printables” • Probablemente un identificador de llamada seguido de un ACK • Tenemos la primera prueba de texto no cifrado!
  • 49. 4. You there? 5. Yep Local Network Identification ACK Encontramos la “Identification phase”
  • 50. Todos los paquetes con header 20040004 Demasiados datos. Centrémonos en lo interesante
  • 51. • Lo típico: Header, campos estáticos, separadores, etc. • Primer y segundo paquete (Mac -> iPhone | iPhone -> Mac) • Campo 1: 4 bytes aleatorios | Campo 2: 4 null-bytes • Simula el sequence number del protocolo TCP? • Tercer paquete (Mac -> iPhone) • Campo 1: Mismos 4 bytes mandados en el primer paquete | Campo 2: Los 4 bytes mandados en el campo 1 por el iPhone +1 • Campo 3: Cambia el segundo byte de 0 -> 1
  • 52. 4. You there? 5. Yep Local Network Identification ACK Negotiate call Encontramos el “Call negotiation phase”
  • 53. Todos los paquetes con header e000 • 2 valores diferentes que incrementan en 1 (decimal) de manera constante • Cada dispositivo tiene su propio contador para sincronización • Contador de 2 bytes. Se resetea cada ~20 minutos en una llamada. Importante si se usa para cifrado! • Valor estático. Diferente en cada dispositivo. Cambia cada llamada • Audio Encodeado / Comprimido / Cifrado • Confirmado mediante “bit flipping”
  • 54. 4. You there? 5. Yep Local Network Identification ACK Negotiate call Sound transmission Ya tenemos todas las fases del protocolo
  • 55. Ven a hablar conmigo si estas interesado y quieres mas detalles! Muchos mas detalles que no hay tiempo para explicar :(
  • 56. APNS 1. Incoming call 2. Mr. X is calling! 3. Mr. X call iPhone’s internal IP:Port 4. You there? 5. Yep 6. Negotiate call 7. Sound transmission GSM Local Network Internet 4. Identification 5. ACK
  • 57. Aprende a hablar el lenguaje
  • 58. Metodología • Implementa el lenguaje en base a lo que has aprendido • Reemplaza una de las máquinas • Comunícate con la otra en su propio lenguaje. Prueba, falla, corrige y repite
  • 59. Visita mi repositorio github https://www.github.com/martinvigo • Usé scapy para implementar el protocolo • Reemplace correctamente el iPhone y el Mac • Aun no funciona 100% • Me faltan algunos detalles del protocolo • El timing es importante para testear y lo complica mucho
  • 61. Metodología • Define tus objetivos • Puedo escuchar llamadas de otros? • Puedo hacer llamadas como si fuera la víctima? • Puedo espiar a gente? • etc. • Smart fuzzing • Fuzzea campos dinámicos • Respeta las reglas y estructuras del protocolo • Headers, counters, campos estáticos, etc. • Genera casos inesperados
  • 62. #Fails • Escuchar llamadas ajenas • Decodear/Descomprimir/Descifrar audio • Replay attacks • Redirigir/Duplicar audio en dispositivo atacante • Hacer llamadas como si fuera la víctima • Inyectar audio
  • 63. #Wins • DoS a llamadas • Espiar víctimas dejándoles el micrófono abierto • Hacerme pasar por un interlocutor en llamadas multiparty
  • 64. DoS a llamadas • Que sucede si mando un paquete del “Call negotiation phase” durante una llamada? • Necesito poder crear un paquete válido • Queremos un paquete “joker” que funcione siempre sin tener que adivinar/bruteforcear ningún byte • Sin necesidad de MiTM • Use scapy para fuzear el protocolo poniendo a null todos los bytes posibles Magic DoS call packet payload 20040004000000000000000000b002000000000000000000000000000000000000000000000000000000000000 Scapy script: https://github.com/martinvigo
  • 65. Espiando a víctimas • No puedo escuchar llamadas ajenas • No puedo inyectar audio • No puedo hacer replay attacks de audio • No puedo redirigir/duplicar audio en otro dispositivo • Uso de cifrado
  • 66. State of Surveillance Vice News documentary
  • 67. Nosey Smurf NSA tool to enable microphones on mobile devices
  • 68. Adi Shamir at RSA Conference “In the future, cryptography won’t be broken, it will be bypassed”
  • 69. Que sucede cuando se cuelga el teléfono? • Absolutamente nada… • Los paquetes de audio simplemente paran • No hay diferencias en el audio payload • Hay algo que se me esta escapando…
  • 71. A veces hay que alzar la vista
  • 72. Incluyendo tráfico APNS Tráfico hacia APNS justo cuando cuelgo…
  • 73. Colgando en dispositivos El mensaje “Cuelga” se manda a través de Push Notification
  • 74. Malas prácticas de seguridad • M8: Decisiones de seguridad en base a inputs no confiados • Apple no sigue sus propias recomendaciones de seguridad • “Push notifications are not guaranteed to be delivered” • “Do not rely on Push Notifications for sensitive actions”
  • 75. Como funciona el ataque • No permitas que el mensaje “Cuelga” llegue al iPhone 1. ARP spoofing para MiTM 2. Llama a la víctima 3. Bloquea el tráfico saliente hacia 17.0.0.0/8 (APNS)
  • 77.
  • 78. Reemplazando interlocutores • Call Relay permite multiparty • Que sucede cuando cambio entre interlocutores? • Lo mismo! El mensaje “Cambia de llamada” se manda a través de APNS • Podemos evitar que se cambie de llamada mientras la interfaz muestra que sucedió
  • 79. Combinando ambas vulnerabilidades • Podemos evitar que se cuelgue el teléfono • Podemos evitar que se cambie de llamada • Combinemos los dos! 1. El atacante llama a la víctima mientras esta hablando con otra persona 2. La víctima pone la llamada en espera y habla con el atacante 3. El atacante deja que la víctima cuelgue el teléfono 4. Bloquea ambos mensajes “Colgar” y “Cambiar de llamada” • La interfaz muestra que solo hablas con la llamada legítima cuando en realidad estas hablando con el atacante
  • 81.
  • 83. Construyendo un Spy Program a lo barato 1. Encuentra vulnerabilidades 2. Weaponizalas 3. Distribúyelas de manera masiva 4. Exploit
  • 84. Encuentra vulnerabilidades y weaponizalas • Podemos interrumpir llamadas • Podemos reemplazar a interlocutores • Podemos obtener metadatos de las llamadas • Podemos abrir micrófonos remotamente
  • 85. Distribuye masivamente • Objetivos • Routers y dispositivos IoT • Problemas • Poco o nada de almacenamiento • Múltiples combinaciones de hardware y software • Pocas y limitadas herramientas preinstaladas
  • 86. Hackeando routers y IoT • Easier than it seems • Find them with Shodan • Default credentials • Off-the-shelf exploits • Can be easily automated
  • 87. Identificando dispositivos Apple en redes comprometidas • Los 3 primeros bytes de la MAC indican el vendor • IEEE Registration authority tiene todas las asignaciones registradas • Mira la tabla ARP en el router y busca en la Base de Datos arp -a | awk '{print $4}' | while read mac; do echo $mac | grep -io [0-9A-F][0-9A-F]:[0-9A-F] [0-9A-F]:[0-9A-F][0-9A-F] | head -n 1; done | while read splitmac ; do echo $splitmac | tr -d : ; done
  • 88. Exploit • Requerimientos • MiTM • Dropea paquetes APNS • Llamar a las víctimas
  • 89. Bloquea tráfico APNS • “APNs uses a persistent IP connection for implementing remote notifications” • Las reglas Firewall ignoran “ESTABLISHED connections” • DNS poison APNS y rerouta el tráfico • Simula el final de una conexión • FIN-ACK-RST • Resetea la conexión persistente al estado “NEW” para que apliquen las reglas del Firewall
  • 90. Reseteando una conexión persistente • Objectivo: Resetear una conexión externa hacia APNS manteniendo activo el tráfico interno • Routers tiene 2 interfaces de red • Interna -> LAN • Externa -> Internet • Desactiva la interfaz de red externa temporalmente bridge eth0 ifconfig eth0 down && sleep 2 && ifconfig eth0 up
  • 91. Obteniendo números de teléfono • War dialing • Obtén el BSSID de los routers • Usa wigle.net para obtener la localización física del router • War dialing en base al “area code” • Detecta llamadas entrantes haciendo “fingerprinting” • Correlaciona números de teléfonos con routers detectando llamadas entrantes
  • 93. Timeline iOS 8 Yosemite iOS 9 El Capitan Found vulnerabilities iOS 9.3.2 El Capitan 10.11.5 iOS 9.3.3 El Capitan 10.11.6 Spy vulnerability fixed iOS 9.3.5 Sierra beta 8 Found Regression iOS 10 Sierra 10.12 DoS vulnerability fixed CVE-2016-4722CVE-2016-4635 iOS 10.1 Sierra 10.12.1 All issues fixed
  • 94. Oportunidades de investigación • Reversear FaceTime y daemons • Criptoanálisis del protocolo • Dar soporte en otros sistemas al protocolo Call Relay • Inferir información del tráfico cifrado • http://www.cs.unc.edu/~fabian/papers/tissec2010.pdf • https://www.cs.jhu.edu/~cwright/voip-vbr.pdf
  • 95. Q & A Muchas gracias!