martes, octubre 17, 2023

Advanced Persistent ... Toys! : Cómo crear un Chucky "Alonso" [3 de 4] - Exploiting

Llegados a esta parte, toca ver cuál es la arquitectura de software que hemos utilizado, y ver a nuestro querido "Chucky Alonso", como lo bautizaron Iker Jiménez y Carmen Porter para su primera aparición televisiva, en algunos ejemplos de captura de voz, clonación, y explotación de acciones en un entorno concreto con Alexa o Google Home.

Figura 26: Advanced Persistent ... Toys! 
Cómo crear un Chucky "Alonso" [3 de 4] - Exploiting

Lo primero, vistos los requisitos iniciales del proyecto, donde tenemos un "Caballo de Troya Físico" en forma de muñeco diabólico que tiene que conectarse a un C&C, grabar voces, y emitir sonidos, necesitábamos un sistema de comunicación basado en mensajes, así que utilizamos MQTT como Broker de mensajes de comunicación entre el C&C y nuestro Chucky.

Figura 27: Arquitectura de Chucky_as_a_Service

En el dispositivo corríamos el software de Chucky_as_a_Service como un framework en Python, que ya sabéis que es un lenguaje perfecto tanto para el pentesting como para el hacking, así que con él hicimos el framework de nuestro Chucky.

Figura 28: Libros de Python para Pentesters y Hacking con Python
de Daniel Echeverri publicados en 0xWord.

Si te conectas a la Raspberry Pi Zero W, puedes monitorizar el funcionamiento del sistema y revisar el log de acciones que se están llevando a cabo en el muñeco, taly  como podéis ver en la siguiente captura.

Figura 29: Framework de Chucky en Ptyhon corriendo en Raspberry Pi Zero W

El backend, donde ejecutamos los algoritmos de Machine Learning de HuggingFace y los servicios de Speech to text con Whisper, se está ejecutando en Plesk. En él ejecutamos los algoritmos de los que hemos hablado previamente:
Así, toda la carga de ejecución de algoritmos de Machine Learning recae en el backend, y no en nuestra Raspberry Pi, además de dejar las posibilidades de jugar con los datos obtenidos en el servidor controlado por el atacante.

Figura 30: C&C en Plesk donde se ejecutan los modelos ML

Por último, toda el trabajo de clonación de voces se hace con las APIs de ElevenLabs, que permiten clonar y generar cualquier texto con la voz clonada mediante el uso de los servicios SaaS de la compañía, así que todo se ha generado con sus modelos.

Explotación: Grabación, Diarization, Speaker Recognition y Text to Speech

Ahora, ya vista la arquitectura, podemos ver las demos para ver cómo funciona este proyecto tan curioso. En primer lugar, vamos a ver cómo graba las voces, las sube al servidor y ejecuta los algoritmos de Machine Learning de Speaker Diarization, Speaker Recognition y Voice to Text para poder tener en el panel de control en Plesk lo que se está diciendo cerca de nuestro muñeco diabólico.


Con los audios reconocidos se puede hacer la clonación de las voces, que vamos a ver en la siguiente demostración.

Explotación: Clonación de voz y utilización de voz clonada

En esta demostración, Alvaro Núñez-Romero del equipo de Ideas Locas realiza el proceso de clonación de su voz con el API de ElevenLabs en un minuto, y la utilización de la voz clonada para saltarse la protección de Google Home de Speaker ID utilizando la voz del dueño de la casa que se ha clonado.


En este caso la arquitectura de componentes que son necesarios para realizar este proceso se pueden ver en el siguiente flujo de acciones que describe qué esta pasando en cada momento.

Figura 33: Flujo del proceso de clonación de voces con ElevenLabs

Y a partir de aquí, se pueden lanzar todos los comandos de exfiltración y ejecución de acciones en los SmartSpeakers del hogar con la voz que se desee, que es la que quedará grabada en los logs de Alexa o Google Home.

Explotación: Ejecución de comandos y grabación de respuesta

Para poder sacar toda la información de un dispositivo, lo primero que necesitamos es tener un control de las respuestas que de el SmartSpeaker, ya que no vamos a estar presentes allí, así que Chucky ejecuta el comando, escucha la respuesta, graba lo respondido por el SmartSpeaker y te lo transcribe.


En este vídeo tienes un ejemplo de cómo funciona con un comando simple como "Hola", realizado a un Alexa.

Figura 35: Flujo del proceso de emitir un comando y grabar la respuesta

Y en el gráfico anterior tienes el flujo de componentes que son necesarios para realizar la ejecución de un comando y la grabación de la respuesta, así como su transcripción con Whisper.

Explotación: Exfiltración de datos con Alexa

Este ejemplo es uno muy sencillo, donde utilizando los comandos analizados en la parte anterior podemos sacar información de datos asociados a la cuenta de Amazon del dueño de un dispostivo Alexa. En este caso, unas preguntas sencillas de listas para ver qué sale.


Visto este ejemplo, cualquier pieza de información que Alexa comparta de cualquier cuenta de Amazon asociado al dispositivo, se podría extraer.

Explotación: Exfiltración de datos con Google Home

En este otro ejemplo, el objetivo es realizar lo mismo que en el caso anterior, que es probar la exfiltración de datos de una cuenta de Google asociada a Google Home. La cantidad de información que se puede extraer depende las configuraciones de privacidad y seguridad de Google Home.

El funcionamiento es muy similar a lo visto con Alexa, así que os podéis imaginar que a partir de este punto cualquier dato al que se tenga acceso, se puede exfiltrar, y utilizando la voz que se quiera.

Aún hay más

Por supuesto, no solo la parte de escuchar es peligroso. No solo que te puedan clonar la voz remotamente es un problema. Tampoco que te puedan sacar información de tus cuentas de Amazon o Google es lo peor. Y es que también pueden hacer acciones a través de tus SmartSpeakers, como Alexa o Google Home, como veremos en la última parte donde terminaremos este artículo.

¡Saludos Malignos!

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

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario