Gremlin Botnets: El club de los poetas muertos [Parte 4 de 6]
Con lo visto hasta el momento, ya tenemos todo lo necesario para hacer una demostración de cómo puede funcionar un Gremlin Botnet. Nos vamos a centrar en un caso concreto, creando una app para Android que utilice los diferentes permisos posibles para sacar información de quién está utilizando este dispositivo, usando el número de teléfono, la cuenta Twitter o la cuenta de correo electrónico del dispositivo como identificador principal.
Como vamos a ver, es un ejemplo de cómo usar un "Crecimiento Orgánico", es decir, mediante la creación de una app propia que va a ser lo más silenciosa posible en todo el proceso, por lo que usaremos esteganografía y cifrado para enviar los comandos y recibir los datos entre la Gremlin App y la el C&C de la Botnet.
Quiz App
El gancho que hemos elegido es un pequeño juego. Los juegos son unas de las apps más descargadas por padres despreocupados que buscan entretenimiento gratis para sus pequeños, permitiendo que estas apps soliciten muchos permisos y se lleven sus datos - muchos datos - para pagar el uso de dichos servicios de entretenimiento. Nosotros vamos a hacer una Gremlin App de las que para descubrir habrá que hacer un buen reversing, como se explica en el libro de Malware en Android: Discovering, Reversing & Forensic.
En nuestro caso hemos elegido un sencillo juego de preguntas para solicitar al usuario que nos diga qué le gusta más. En cada petición cargamos dos imágenes de cosas similares para hacerle al usuario decidir quién gana. Bastante sencillo de entender.
Por el camino, tenemos una imagen - el banner de Quiz App - que también es una imagen y vamos a ir recargando cada cierto tiempo. Pero es en esta imagen donde vamos a elegir qué app es la que queremos que se vuelva maliciosa. Es decir, vamos a seleccionar qué app se va a volver una Gremlin App.
Como podéis ver, en esta PoC, hemos puesto tres tipos de datos que buscamos poder sacar del dispositivo, como son el número de teléfono, la dirección de correo electrónico o al cuenta Twitter. No necesitamos saber todo, se trata de que activemos la app por medio de un identificador que sí que hayamos sido capaces de extraer. Esta info la vamos a ver en el panel de control de la lista de dispositivos en nuestra Gremlin Botnet.
Por supuesto, dentro de nuestra Gremlin Botnet el resto de las apps continuará teniendo un comportamiento normal y el juego seguirá siendo un juego que no hace nada mal. Como se puede ver en la imagen siguiente, para indicar qué app se debe volver maliciosa usamos esteganografía que metemos dentro de la imagen del banner. En este servicio se puede ver el código que está inyectado en cada petición.
Como se puede apreciar en la imagen anterior hay tres comandos que son "Contacts", "Location" y "Photos" para decidir qué queremos que nos envíe del dispositivo en que se encuentra instalada la Gremlin App. Para ello, tenemos en el panel de control la lista de dispositivos con sus identificadores - a partir de los cuales podremos hacer todo el proceso de OSINT explicado anteriormente. Por ejemplo, ene esta demo tenemos estos dos terminales infectados por nuestra Gremlin App durmiente en modo Zombie.
Elegido uno de ellos, podemos enviarle un comando concreto, como en este caso que hemos solicitado de este dispositivo la lista de contactos dados de alta. Estos se irán enviando en cada iteración con la Gremlin App que se ha vuelto maliciosa usando el intercambio de imágenes y la petición de las misma con parámetros GET que realmente llevan la información robada del dispositivo.
Este comando inyectará en la imagen de cabecera de nuestro juego el número de teléfono (o la dirección de e-mail que también lo tenemos) en la Gremlin Botnet, y todas las apps mirarán en esa imagen, para extraer los datos con esteganografía y así saber si le toca a cada una volverse maliciosa o no. En este ejemplo hemos activado uno de los dos dispositivos para que nos de la lista de contactos, y como se puede ver, el terminal afectado muestra un menaje que hemos puesto para que se entienda mejor la demo. Es decir, hemos activado ese dispositivo. Tan sencillo como esto.
Lo que iremos recibiendo en el servidor, poco a poco, será la lista de contactos que se encuentran en ese dispositivo. Para ello se aprovechará cada petición de una nueva imagen para ir enviando al servidor los datos en parámetros GET cifrados como si fueran parte de la petición de la imagen. Un sencillo truco para no levantar muchas sospechas en un posible análisis de tráfico de la red.
Y lo mismo podremos hacer, activando otro dispositivo, en este caso para solicitar la lista de fotografías en el carrete. El usuario confió en esta app para acceder al carrete pensando que era fundamental para el funcionamiento de la app - como así decimos nosotros - y por lo tanto, podremos activar este comando remotamente en otra Gremlin App.
En este caos vemos que se vuelve una Gremlin App la otra instalación de nuestra app, ya que hemos cambiado el target a un nuevo identificador, que ha sido incluido en el banner de cabecera junto con un nuevo comando. Así, se vuelve maliciosa la otra app de nuestra Gremlin Botnet.
Y lo que iremos recibiendo ahora en nuestro panel de control será ahora la lista de fotografías que tenemos en el carrete de ese dispositivo controlado por nuestra Gremlin App. Así de sencillo, y así de peligroso.
Para que podáis ver la demo completa, os dejamos este vídeo que hemos preparado que realiza esta mismo demostración en poco más de dos minutos para que podáis ver lo fácil y rápido que es activar y desactivar una Gremlin App en una Gremlin Botnet.
Como podéis ver, cualquier app que instales en tu dispositivo puede hacer un uso malicioso de los permisos en modo APT, seleccionando el objetivo en base a la información que tiene de él. Así que ten mucho cuidado con lo que instalas.
No se vayan todavía, aún hay más
En las dos próximas partes vamos a ver como, apps que fueron pensadas para nunca ser maliciosas pueden también ser maliciosas si caen en malas manos con malas artes. Nos vemos en la siguiente parte.
Saludos Malignos!
*********************************************************************************
- Gremlin Botnets: El club de los poetas muertos [Parte 1 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 2 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 3 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 4 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 5 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 6 de 6]
*********************************************************************************
Figura 37: Gremlin Botnets: El club de los poetas muertos (4 de 6) |
Como vamos a ver, es un ejemplo de cómo usar un "Crecimiento Orgánico", es decir, mediante la creación de una app propia que va a ser lo más silenciosa posible en todo el proceso, por lo que usaremos esteganografía y cifrado para enviar los comandos y recibir los datos entre la Gremlin App y la el C&C de la Botnet.
Quiz App
El gancho que hemos elegido es un pequeño juego. Los juegos son unas de las apps más descargadas por padres despreocupados que buscan entretenimiento gratis para sus pequeños, permitiendo que estas apps soliciten muchos permisos y se lleven sus datos - muchos datos - para pagar el uso de dichos servicios de entretenimiento. Nosotros vamos a hacer una Gremlin App de las que para descubrir habrá que hacer un buen reversing, como se explica en el libro de Malware en Android: Discovering, Reversing & Forensic.
Figura 38: Malware en Android: Discovering, Reversing & Forensics |
En nuestro caso hemos elegido un sencillo juego de preguntas para solicitar al usuario que nos diga qué le gusta más. En cada petición cargamos dos imágenes de cosas similares para hacerle al usuario decidir quién gana. Bastante sencillo de entender.
Figura 39: Se muestran dos imágenes y se debe escoger una. !Siempre Cálico Electrónico! |
Por el camino, tenemos una imagen - el banner de Quiz App - que también es una imagen y vamos a ir recargando cada cierto tiempo. Pero es en esta imagen donde vamos a elegir qué app es la que queremos que se vuelva maliciosa. Es decir, vamos a seleccionar qué app se va a volver una Gremlin App.
Como podéis ver, en esta PoC, hemos puesto tres tipos de datos que buscamos poder sacar del dispositivo, como son el número de teléfono, la dirección de correo electrónico o al cuenta Twitter. No necesitamos saber todo, se trata de que activemos la app por medio de un identificador que sí que hayamos sido capaces de extraer. Esta info la vamos a ver en el panel de control de la lista de dispositivos en nuestra Gremlin Botnet.
Figura 40: Desde el C&C marcamos una Gremlin App a activar |
Por supuesto, dentro de nuestra Gremlin Botnet el resto de las apps continuará teniendo un comportamiento normal y el juego seguirá siendo un juego que no hace nada mal. Como se puede ver en la imagen siguiente, para indicar qué app se debe volver maliciosa usamos esteganografía que metemos dentro de la imagen del banner. En este servicio se puede ver el código que está inyectado en cada petición.
Figura 41: Comandos ocultos por esteganografía en la imagen |
Como se puede apreciar en la imagen anterior hay tres comandos que son "Contacts", "Location" y "Photos" para decidir qué queremos que nos envíe del dispositivo en que se encuentra instalada la Gremlin App. Para ello, tenemos en el panel de control la lista de dispositivos con sus identificadores - a partir de los cuales podremos hacer todo el proceso de OSINT explicado anteriormente. Por ejemplo, ene esta demo tenemos estos dos terminales infectados por nuestra Gremlin App durmiente en modo Zombie.
Figura 42: C&C de nuestra Gremlin Botnet con la lista de dispositivos con nuestra Gremlin App |
Elegido uno de ellos, podemos enviarle un comando concreto, como en este caso que hemos solicitado de este dispositivo la lista de contactos dados de alta. Estos se irán enviando en cada iteración con la Gremlin App que se ha vuelto maliciosa usando el intercambio de imágenes y la petición de las misma con parámetros GET que realmente llevan la información robada del dispositivo.
Figura 43: Solicitando la lista de contactos de este dispositivo |
Este comando inyectará en la imagen de cabecera de nuestro juego el número de teléfono (o la dirección de e-mail que también lo tenemos) en la Gremlin Botnet, y todas las apps mirarán en esa imagen, para extraer los datos con esteganografía y así saber si le toca a cada una volverse maliciosa o no. En este ejemplo hemos activado uno de los dos dispositivos para que nos de la lista de contactos, y como se puede ver, el terminal afectado muestra un menaje que hemos puesto para que se entienda mejor la demo. Es decir, hemos activado ese dispositivo. Tan sencillo como esto.
Figura 44: Gremlin App activada para que envíe los contactos |
Lo que iremos recibiendo en el servidor, poco a poco, será la lista de contactos que se encuentran en ese dispositivo. Para ello se aprovechará cada petición de una nueva imagen para ir enviando al servidor los datos en parámetros GET cifrados como si fueran parte de la petición de la imagen. Un sencillo truco para no levantar muchas sospechas en un posible análisis de tráfico de la red.
Figura 45: Lista de contactos en el C&C recibidos por la Gremlin App |
Y lo mismo podremos hacer, activando otro dispositivo, en este caso para solicitar la lista de fotografías en el carrete. El usuario confió en esta app para acceder al carrete pensando que era fundamental para el funcionamiento de la app - como así decimos nosotros - y por lo tanto, podremos activar este comando remotamente en otra Gremlin App.
Figura 46: Activando el robo de fotos del carrete del disositivo |
En este caos vemos que se vuelve una Gremlin App la otra instalación de nuestra app, ya que hemos cambiado el target a un nuevo identificador, que ha sido incluido en el banner de cabecera junto con un nuevo comando. Así, se vuelve maliciosa la otra app de nuestra Gremlin Botnet.
Figura 47: Ahora activamos otra Gremlin App |
Figura 48: Todas las fotos de ese dispositivo en nuestro C&C |
Para que podáis ver la demo completa, os dejamos este vídeo que hemos preparado que realiza esta mismo demostración en poco más de dos minutos para que podáis ver lo fácil y rápido que es activar y desactivar una Gremlin App en una Gremlin Botnet.
Figura 49: Gremlin Botnet: Activando Gremlin Apps
No se vayan todavía, aún hay más
En las dos próximas partes vamos a ver como, apps que fueron pensadas para nunca ser maliciosas pueden también ser maliciosas si caen en malas manos con malas artes. Nos vemos en la siguiente parte.
Saludos Malignos!
*********************************************************************************
- Gremlin Botnets: El club de los poetas muertos [Parte 1 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 2 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 3 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 4 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 5 de 6]
- Gremlin Botnets: El club de los poetas muertos [Parte 6 de 6]
*********************************************************************************