Hoy os traemos desde el equipo de Ideas Locas una nueva herramienta orientada a los dispositivos Apple. Este proyecto se basa en la investigación que lanzó el pasado mes de Julio el equipo de seguridad Hexway y que podéis consultar en este estupendo artículo. Para resumir, su investigación se centraba en dos tecnologías principales, el BLE o Bluetooth Low Energy y Airdrop, el servicio propio de Apple para la transferencia de archivos ad-hoc.
Todos estos temas afectando a la privacidad y seguridad de los dispositivos iOS (iPhone & iPad), así que como ya hemos hecho con otras investigaciones como DirtyTooth o JavaScript Botnets que entraron en el compendio de técnicas de Hacking iOS (iPhone & iPad) que se han recopilado en este libro, decidimos investigar más.
Como podréis ver, con este estudio habían conseguido desarrollar cuatro scripts en Python con las siguientes funcionalidades, y que podéis ver resumidos en la ejecución de este Apple Devices Scanner que tenéis en la imagen de la Figura 3.
Escaneo de dispositivos adyacentes
Probamos este código en un entorno controlado y fuimos encontrando partes donde podía haber una mejora incremental. Y así nació Airdrop Crazy.
Airdrop Crazy
Con todo lo anterior empezamos a trabajar en una nueva versión que incorporase las siguientes mejoras, que fueron incorporadas en al app Airdrop Crazy que puedes ver en esta imagen que tienes a continuación.
Figura 8: AirDrop Crazy PoC
Así que esta herramienta que presentamos echa por tierra el eslogan de Apple de lo que pasa en tu iPhone se queda en tu iPhone. La próxima vez que uses un dispositivo de la manzana, piensa que cualquier persona es capaz de saber si estás recibiendo una llamada u obtener cierta información sensible acerca de ti sin necesidad de estar en la misma red o tener tu dispositivo comprometido.
Toda la investigación referente a este tema está publicada en nuestra CodeTalk for Developers que hemos publicado y que ya puedes ver online, donde no solo tienes información a la explicación de todo el proceso, sino a cómo se han construido todos los módulos.
Tenéis todo el código que hemos generado en la construcción de este servicio publicado en nuestro Github de AirDrop-Cray en el repositorio de ElevenPaths.
Saludos
Autor: Lucas Fernández Aragón (@lucferbux) Security Researcher del equipo de Ideas Locas de CDO en Telefónica.
Figura 1: Airdrop Crazy: "Lo que pasa en tu iPhone NO se queda en tu iPhone" |
Todos estos temas afectando a la privacidad y seguridad de los dispositivos iOS (iPhone & iPad), así que como ya hemos hecho con otras investigaciones como DirtyTooth o JavaScript Botnets que entraron en el compendio de técnicas de Hacking iOS (iPhone & iPad) que se han recopilado en este libro, decidimos investigar más.
Figura 2: Libro de Hacking iOS (iPhone & iPad) 2ª Edición |
Como podréis ver, con este estudio habían conseguido desarrollar cuatro scripts en Python con las siguientes funcionalidades, y que podéis ver resumidos en la ejecución de este Apple Devices Scanner que tenéis en la imagen de la Figura 3.
Figura 3: Script CLI actualizado |
Escaneo de dispositivos adyacentes
Haciendo uso de librerías de escaneo y anuncio de BLE para Python como son Bluez y PyBluez los investigadores de Hexway se dieron cuenta que los dispositivos de Apple emitían diferentes paquetes Bluetooth dependiendo del terminal y el estado, así, al escanear diferentes comportamientos del sistema crearon un diccionario para traducir esos paquetes enviados por los dispositivos adyacentes para así ir exponiendo su estado a tiempo real en pantalla.Recopilación del número de teléfono mediante Airdrop
Airdrop tiene tres estados de uso, compartir a todos, compartir solo a contactos y apagado. Por ello y gracias al whitepaper de la Universidad de Darmstadtvieron que en el proceso de comunicación se enviaba el hash del número de teléfono del dispositivo en formato sha-265.
Figura 4: Número de Telefóno enviado por AirDrop y MITM en AirDrop |
Por ello, valiéndose de la librería opendrop se podía obtener ese hash si la víctima compartía una foto.Spoof the Airpods
Siguiendo con el protocolo BLE, es posible anunciar un dispositivo Airpod al enviar los paquetes BLE correspondientes al proceso de enlace de este dispositivo.Spoof de la característica “compartir contraseña”
Desde iOS 11 es posible compartir una contraseña cuando un dispositivo adyacente que tienes en tu lista de contactos intenta conectarse a una red que conoces. Esta funcionalidad se puede replicar completamente con Bluetooth.Hay varios detalles más en la investigación, por lo que es recomendable leer en profundidad el artículo donde describen todo este proceso. Junto a la investigación publicaron también el código de sus scripts en Github, por lo que decidimos probarlo e indagar un poco en el núcleo de su investigación.
Figura 5: Scripts de Apple_Bleee en GitHub |
Probamos este código en un entorno controlado y fuimos encontrando partes donde podía haber una mejora incremental. Y así nació Airdrop Crazy.
Airdrop Crazy
Con todo lo anterior empezamos a trabajar en una nueva versión que incorporase las siguientes mejoras, que fueron incorporadas en al app Airdrop Crazy que puedes ver en esta imagen que tienes a continuación.
Figura 6: Airdrop Crazy en iOS |
• Diferenciación entre iPhone e iPad, ya que los paquetes BLE son diferentes en ambos dispositivos.
• Inclusión de Homepod como dispositivo de Apple reconocible.
• Cambio de la columna “Wifi” por “Airdrop” ya que vimos que es lo que realmente están anunciando los dispositivos que lo poseen (iPhone, iPad y Mac)
• Actualización de algunos estados junto con la versión de iOS 13 y los nuevos iPhone 11 y iPhone 11 Pro.
• Capacidad de agrupar dispositivos por dueño, ya que había una parte donde usaban la característica de compartición de contraseñas para extraer información, aunque no era de ayuda porque los bytes variaban de posición entre dispositivos, pero aquellos que tenían el mismo Apple ID compartían parte de estos bytes.
• Servicio web para generar almacenar hashes en una base de datos y obtener los números de teléfono anunciados por Airdrop.
Figura 7: Arquitectura de Airdrop Crazy
• Creación de una infraestructura con servidor local y aplicación móvil para visualizar mejor los datos y poder realizarlo remotamente.
• Extraer más información del número de teléfono con nuestra extensión del Dirty Business Card como el nombre, el operador…
• Resolución general de bugs y refactorización del código para optimizar el servicio.Así hemos conseguido transformar los scripts de la investigación inicial en un servicio completo y robusto para detectar los dispositivos Apple adyacentes, pudiendo conocer si varios de ellos pertenecen a una misma persona y recopilando los números de teléfono e información general del usuario que tiene el Airdrop activo. En el siguiente ejemplo se ve una PoC del servicio.
Figura 8: AirDrop Crazy PoC
Así que esta herramienta que presentamos echa por tierra el eslogan de Apple de lo que pasa en tu iPhone se queda en tu iPhone. La próxima vez que uses un dispositivo de la manzana, piensa que cualquier persona es capaz de saber si estás recibiendo una llamada u obtener cierta información sensible acerca de ti sin necesidad de estar en la misma red o tener tu dispositivo comprometido.
Figura 9: CodeTalk for Developers: AirDrop Crazy
Toda la investigación referente a este tema está publicada en nuestra CodeTalk for Developers que hemos publicado y que ya puedes ver online, donde no solo tienes información a la explicación de todo el proceso, sino a cómo se han construido todos los módulos.
Figura 10: AirDrop Crazy en GitHub |
Tenéis todo el código que hemos generado en la construcción de este servicio publicado en nuestro Github de AirDrop-Cray en el repositorio de ElevenPaths.
Saludos
Autor: Lucas Fernández Aragón (@lucferbux) Security Researcher del equipo de Ideas Locas de CDO en Telefónica.
No hay comentarios:
Publicar un comentario