domingo, diciembre 27, 2020

Cómo "Klingonizar" un iPhone y tenerlo troyanizado con Control de Voz (1 de 6)

Durante el mes de septiembre impartí una conferencia en la Ekoparty 2020 - que ahora distribuye los libros de 0xWord en Argentina - sobre "Cómo Klingorizar el iPhone de Mi Hacker" de la que, por unas cosas u otras, no acabé escribiendo el artículo completo, con información de todo el proceso de la charla, así que aprovecho ahora y comienzo a contaros cómo surgió, lo que hicimos, y cómo preparamos este trabajo.

Figura 1: Cómo "Klingonizar" un iPhone y tenerlo troyanizado con Control de Voz (1 de 6)

Todo comenzó cuando, durante el verano de 2020, Mi Hacker me vino con una demo muy peculiar. Consistía en decir una palabra "mágica" y entonces el terminal iPhone escribía el Passcode automáticamente para desbloquear el terminal. Cuando lo vi, como os podéis imaginar, vinieron a mi cabeza mil cosas, como que se estaba abriendo un agujero de seguridad, como qué otras cosas se podían hacer, cómo si funcionaría igual si decía yo la palabra o la decía ella. Os podéis imaginar. Cosas de "papaetes" hackers.

Figura 2: Cómo desbloquear el iPhone con la voz

Mi Hacker siempre intenta sorprenderme con trucos, y muchas veces lo consigue, sacando de TikTok ideas, hacks, PoCs, Tricks configuraciones avanzadas, etcétera. Tanto que al final me convenció para acabar yo en TikTok. Incluso uno de ellas se la he publicado con el tema de quitar el modo avión de la pantalla de bloqueo para evitar que te roben el iPhone y desbloqueen la ubicación del mismo. 

Figura 3: Libro de Hacking iOS:iPhone & iPad (2ª Edición) en 0xWord de
Chema Alonso, Ioseba Palop, Pablo González y Alejandro Ramos entre otros.

En este caso el truco se basaba en utilizar las opciones de accesibilidad y control por voz para teclear el passcode de desbloqueo de iPhone, y esto abrió una línea de investigación con muchas ideas que compartí con mi equipo de Ideas Locas, ya que quería ver si abría nuevas formas de Hackear un iPhone & iPad solo por el hecho de activar esta característica, y nos pusimos manos a la obra.

¿Abre el Control por Voz un nuevo vector de ataque?

Lo primero que pensamos es si, por el hecho de tener activado el Control de Voz se abre un nuevo vector de ataque en los terminales iPhone o iPad con iOS para ser hackeado total o parcialmente. Así que vimos qué cosas nuevas se podrían hacer si tenías activado el Control por Voz que no se pudieran hacer si NO tienes activada dicha característica. Al final, el problema de seguridad en un terminal iPhone no es cuando los datos están guardados en el terminal, sino en todas las conexiones que se abren con el dispositivo. Es una herramienta que está conectada con el exterior por muchos diferentes canales.

Figura 4: El terminal iPhone tiene muchas conexiones con el exterior

Los trucos que se pueden hacer cuando activas Siri en la pantalla bloqueada, lo que se puede hacer con un Rogue AP en las conexiones WiFi, los ataques de JavaScript Botnets, los ataques de Rogue BTS para simular redes de operadores y hackear iPhone & iPad, los ataques desde Gremlin Apps y Gremlin Botnets que han conseguido un exceso de permisos, los robos de passwords de Apple ID y datos desde iCloud, los ataques BlueTooth como nuestro querido DirtyTooth, los de JuiceJacking, los bugs de desbloquedo de iPhone saltándose el passcode, o los ataques desde computadores pareados que pueden, incluso, ejecutar exploits de jailbreak


Figura 5: Tu iPhone es tan (in)seguro como tu Windows

De esas ideas es de lo que habla nuestro libro de Hacking iOS (iPad & iPhone) 2ª Edición, donde explicamos más las debilidades de la arquitectura del sistema iOS que de bugs y exploits concretos, y de eso hablé en la charla de Tu iPhone es tan (in)seguro como tu Windows de finales del año 2014.

Tras analizar las posibilidades de ataque que abría el uso de Control de Voz se nos ocurrieron tres escenarios iguales de peligrosos, que son los que hemos intentando representar en la charla de "Cómo Klingorizar el iPhone de Mi Hacker".

Escenario 1: Acceso a tu terminal por usar Control de Voz para desbloqueo

El primero de ellos y más evidente es que, el uso de un comando de voz para escribir el passcode es el peor de los errores. Al final es como si estuvieras leyendo tu passcode a todo el mundo, así que el vídeo de TikTok es una PoC curiosa pero muy peligrosa. Algo que no debes usar nunca y que, por supuesto abre un agujero de seguridad en tu vida que no debes tener. Evidentemente, nuestro trabajo en este escenario acaba con un simple: "Mala idea, no lo hagas".

Escenario 2: Control de otros de tu sistema por voz.

Suponiendo que se ha activado el Control de Voz para realizar ciertos comandos, pero no para la introducción del passcode, el uso de esta característica sigue permitiendo que alguien utilice los comandos estándar de iOS - que como veremos permiten muchas cosas - para controlar tu iPhone sin tocar tu terminal. De nuevo, aparecen muchos trucos que, al estilo del os hacks con Siri, se pueden utilizar remotamente.

Hay que tener en cuenta que, a diferencia de Siri, para activar remotamente un comando de voz no es necesario que ser reconozca la voz de su dueño con una firma de "voiceprint". Es decir, para poder activar remotamente un comando de voz con Siri es necesario decir "Hey Siri" u "Oye Siri" primero, y esa palabra de activación o "Wake-up Word" que se dice en inglés, está almacenada en el terminal iPhone en local con la firma de voz de dueño del terminal.


Cuando se configura "Hey Siri" u "Oye Siri" es necesario decir esa frase varias veces para que iOS haga una firma de voz del dueño del terminal que se guarda en local, en una zona protegida pro el "Secure Enclave". A partir de ese momento, cuando alguien dice "Hey Siri" u "Oye Siri" se verifica la firma de voz en el terminal y si no corresponde, no se activa. Solo si se ha verificado que es el dueño del terminal con este proceso, se permite después enviar un comando de voz a Siri

Figura 7: Configuración de "Hey Siri" en iOS

Por el contrario, con el Control de Voz no sucede eso. Una vez que se ha activado se permite que cualquiera - con cualquier voz - mande comandos al dispositivo. Como es un riesgo de seguridad, el sistema iOS muestra un circulito azul arriba a la izquierda para que el usuario sepa en todo momento que tiene activada esa característica de uso. Algo que debería hacer de modo consciente y sabiendo cómo funciona este sistema.

Escenario 3: Troyanizar un iPhone engañando a la víctima.

Ahora vamos al último escenario. Una persona tiene activado el Control de Voz porque alguien de confianza le ha contado lo bueno que es y le ha convencido de activarlo. O la persona no entiende cómo funciona el terminal y no sabe qué significa ese circulito azul arriba. O la persona, realmente, necesita utilizar el Control de Voz para manejar alguna función. Es decir, en cualquier caso, la persona ha decidido que tener el Control de Voz y el círculo azul arriba no es preocupante. 

Figura 8: Cuando se activa Control de Voz sale el icono del micrófono azul

Ahora, supongamos que el atacante no tiene el passcode del terminal, por lo tanto no puede tener un nuevo usuario de FaceID, tampoco tiene acceso a la SIM, ni al PIN ni al PUK de la misma, y tampoco sabe la contraseña del AppleID. Y tampoco lo tiene con jailbreak porque dejarían de funcionar las actualizaciones y eso le delataría. ¿Podría utilizar esta característica para sacar algún partido? Pues sí, podría.

Un atacante podría dar el terminal como regalo a esta persona, que confía en ella con un conjunto de comandos preparados para poder utilizarlos remotamente en el terminal sin que nadie más los conozca, y aprovechando cualquier momento en el que el terminal esté desbloqueado por su dueño. Es decir, podría tener el terminal troyanizado sin meter un troyano que levantara todas las alertas de iOS, y controlarlo para exfiltrar fotos, mensajes, SMS, ficheros, para hacer llamadas, robar conversaciones de WhatsApp, etcétera solo con uno o varios comandos.

Figura 9: Tiempos de Auto-Bloqueo en iOS

En ese escenario, la persona podría tener el teléfono troyanizado y controlado por una persona cercana que lo estaría manejando aprovechando situaciones en las que el terminal no está bloqueado - por ejemplo por que se tiene un minuto de espera de bloqueo automático -, o porque la víctima ha sido descuidada un segundo. De hecho, como veremos, podría crear un comando de voz que impidiera el bloqueo del terminal de forma automática al minuto de no usarse.

Figura 10: iOS soporta el Klingon como idioma para usarlo.

Por supuesto, tener todos esos comandos podrían levantar muchas sospechas si alguien accidentalmente dice el comando que está pre-configurado. Al final, como hemos visto, no importa quién diga el comando, el sistema iOS lo va a ejecutar. Pues bien, para eso podemos hacer una cosa bastante curiosa, como codificar todos esos comandos en Klingon, un idioma con unas palabras bastante peculiares que no están al alcance de todos.

Visto este primer apartado, empezamos a pensar en qué herramientas podríamos utilizar para construir "scripts" que pudieran ser ejecutados por medio de Comandos de Voz Klingon para controlar un iPhone remotamente, y la verdad es que las posibilidades son muchas, como veremos en la segunda parte.

Saludos Malignos!

*********************************************************************
*********************************************************************

Autor:

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares