sábado, enero 02, 2021

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

El objetivo, tras ver las posibilidades que ofrece de controlar un terminal iPhone de forma remota,  es ver, de qué manera, podemos utilizar todas las utilidades, características, herramientas del sistema operativo iOS para crear scripts dentro del sistema que permitan a un atacante controlar las acciones remotamente por medio de comandos de voz que, como vimos en la parte anterior, vamos a asociar a frases Klingon para evitar al máximo que se ejecuten por error.


Si pensamos en el tipo de acciones que pueden interesar a un posible atacante que quiera controlar el terminal de una persona, podríamos tener acciones que le ayudaran robar la información del terminal - a exfiltrar que se dice en el mundo de la seguridad informática, como que envíen el último SMS recibido por correo electrónico a un buzón controlado por el atacante, lo que ayudaría a tener una forma rápida de conseguir el 2FA (2nd Factor Authentication) en cualquier robo de cuentas en servicios de Internet protegidos por número de teléfono, que envíe conversaciones de WhatsApp en un fichero TXT al buzón del atacante usando las características de exportación de la propia app para espiar WhatsApp en cualquier descuido, lo mismo con fotografías, documentos, vídeos, etcétera.

Con este tipo de scripts, el atacante, en cualquier descuido de la víctima, podría sacar los datos privados del dispositivo y tener toda la información vigilada, lo que no sería nada bueno para la persona que tiene el iPhone Klingonizado. Otro script que también podría ser de utilidad es evitar que el terminal se bloquee de forma automática a los 30 segundos, por ejemplo, que, como vamos a ver, es posible utilizando las apps de mapas con un destino GPS marcado.

Figura 12: Si hay un destino marcado en Maps, no se
cierra la sesión de iOS aun teniendo el autolock.

Para realizar estos scripts se pueden utilizar todas las características de automatización del sistema operativo iOS como vamos a ver a continuación. Después, vamos a ver de qué manera se pueden codificar esas acciones en un conjunto de instrucciones que sean replicables en las diferentes versiones del dispositivo y del sistema operativo para que cualquiera pudiera "programar" esos scripts solo con leer las instrucciones.

Herramientas para codificar acciones en iOS

En la siguiente sección vamos a ver, primeramente, cuáles son las capacidades que podemos utilizar para automatizar acciones en el sistema operativo iOS que después podamos usar para controlar con voz un iPhone y conseguir la ejecución de un programa (script) dentro del dispositivo, que cumpla los objetivos del máster.

1) Atajos de teclado

Esta característica es muy básica, pero le vamos a sacar mucho partido. Se trata de poder sustituir una cadena de texto sencilla por una cadena de texto más compleja. Por ejemplo, se utilizan sustituciones como "pf"al teclear por la frase "por favor", o "gs" por "gracias", etcétera. El objetivo es que para la persona sea mucho más cómodo escribir frases en el teclado.

Figura 13: Atajos de teclado en iOS para codificar e-mails y  URLs

Para nosotros esta va ser una capacidad que nos va a permitir codificar URLs o direcciones de e-mail de forma rápida para luego poder incluir esas direcciones como puntos finales de la exfiltración de datos robados del terminal. Por supuesto, hay que evitar combinaciones comunes, así que usaremos cosas que no se usen habitualmente.

2) Accesos directos por voz

En el momento en el que se activa el Control por Voz en iPhone existen una buena cantidad de opciones de controlar el terminal con accesos directos. Se puede abrir una app existente, se puede ir a una pantalla en concreta del terminal o se puede activar una determinada zona de la pantalla como si se hiciera tap con el dedo. Es decir cuando se activa Control de Voz, automáticamente quedan activadas todas estas opciones.

Figura 14: Control de iPhone por nombre de app, posición o cuadrícula

Y se puede manejar como si se estuviera delante de la pantalla, usando el nombre de las apps, una cuadricula, o la posición de aplicación en la pantalla que se está visualizando. En todo momento, está pensado para que alguien que está viendo la pantalla pueda controlar iPhone con solo hablarle.

Figura 15: Accesos directos por voz existentes

En nuestro caso, no es seguro que podamos estar viendo lo que hay en pantalla, pero se pueden utilizar algunas opciones para hacer nuestros scripts, especialmente cuando queremos abrir una aplicación como "Maps" para evitar que se bloquee la pantalla o cuando queremos ir a WhatsApp y no sabemos dónde está en el sistema. Con un sencillo "Open WhatsApp" o un "Open Maps" nos aseguraremos que el foco está en la pantalla de WhatsApp o de Maps para continuar con nuestro script desde un punto que ya conocemos con seguridad. 

3) Gestos Personalizados

Esta herramienta es la que se utilizaba en el "truco" de TikTok que daba origen a todo este artículo. Se trata de utilizar los accesos directos por comandos de voz, pero eligiendo el comando de voz deseado, y hacer un número máximo de seis gestos sobre la pantalla. Estos gestos pueden ser un "tap" en una posición. Un movimiento de "scroll" hacia cualquier sitio. Un desplazamiento de pantalla. Un "force tap", etcétera lo que quieras.

Figura 16: Creación de Gestos Personalizados en Klingon

Este gesto personalizado tiene la gracia de que debe ser hecho a ciegas. Es decir, en ningún momento vas a ver nada más que una pantalla vacía sobre la que debes interactuar. Pero una vez que lo hayas hecho, puedes asociar cualquier Comando de Voz, incluido en lenguaje Klingon, como vamos hacer nosotros en estas demostraciones.

Figura 17: Haciendo el Gesto Personalizado a ciegas

Sin embargo, estos Gestos Personalizados tienen varios retos. El primero de ellos es que el número de gestos es muy corto, así que para hacer un script de exfiltración completo vamos a tener que hacer varios Gestos Personalizados asociados a varios Comandos de Voz. En segundo lugar es que hay que hacerlo a ciegas, por lo que vamos a crearnos un sistema de plantillas para automatizar la transmisión de los comandos que hay que hacer a gestos personalizados, como veremos en la siguiente parte de este artículo.

Figura 18: Script en Klingon para evitar el bloqueo de sesión

Pero una vez que se ha terminado, podemos tener un script sencillo para hacer una acción remotamente con la voz. En el ejemplo anterior, hemos enlazado dos scripts basados en Gestos Personalizados en un iOS 14 para evitar el bloqueo de la pantalla, abriendo Apple Maps en iOS y marcando un destino automáticamente. Con solo eso, el terminal no se bloqueará nunca.

4) Workflow 

La última de las herramientas que podemos utilizar para automatizar la generación de scripts que nos permitan controlar remotamente por Comandos de Voz un iPhone usando Klingon es la poderosa herramienta WorkFlow que Apple incorporó hace ya varias versiones de iOS. Con esta herramientas se pueden generar scripts muy complejos para acceder a información de las apps, del sistema operativo, etcétera. 

Un ejemplo de las cosas que se podían hacer lo publicó Andrea Lapique en un artículo en el que explicaba cómo se podía utilizar para alertar en situaciones de emergencia con un simple doble o triple tap en la parte posterior de iPhone.

Usando todo para hacer scripts

Todas estas opciones tienen ventajas e inconvenientes. Mientras Workflow permite la generación de scripts complejos, carece de la capacidad de hacer "tap" o "clic" en determinadas peticiones de confirmación que exigen, por seguridad las apps. Además, no todas las apps del sistema están integradas en Workflow. Esto, sin embargo, lo podemos subsanar utilizando Gestos Personalizados. Por otro lado, los Gestos Personalizados sufren de que solo pueden usar seis gestos por cada uno de ellos, y además, si cambia la ubicación de un icono o el interfaz de usuario de una app, fallará. 


Pero para eso podemos utilizar los Atajos de Tecleado cuando haya que escribir algo largo o los Comandos de Voz de Navegación Básica para encontrar las apps. E incluso, si se ha quedado la sesión abierta, podemos incluso pedirle a Siri que haga algunas de las cosas. Al final, utilizando todas las opciones que ofrece el sistema operativo iOS vamos a tener un buen conjunto de herramientas para hacer nuestros scripts de exfiltración y control, como veremos en el resto del artículo.

Saludos Malignos!

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

Autor:

1 comentario:

  1. Genial.. !!! Creo q algo de esto se habló en la Ekoparty del año pasado..

    ResponderEliminar