8 ago 2018

Enviando instrucciones ocultas a través de Gmail


Una de las características menos conocidas de Gmail hace referencia a la interpretación del carácter  "." (punto) en los nombres de las cuentas de los usuarios de Gmail. Gmail no interpreta este caracter, por lo que enviar un correo electrónico a my.email@gmail.com y a myem.ail@gmail.com produce el mismo resultado; el usuario recibirá el correo electrónico correctamente, pero mostrará en el encabezado que el referer tiene el punto ubicado en un lugar diferente. Esta característica permite que la posición del punto se use para enviar mensajes secretos usando técnicas esteganográficas.

La técnica presentada puede tener muchos usos, y entre ellos, algunos maliciosos. En el caso de la creación de malware, la posición del punto se puede utilizar por ejemplo para camuflar los comandos enviados por correo electrónico desde un panel de control a los bots de una botnet, determinando la instrucción que deben realizar.

Para ampliar el número de instrucciones que podrían ocultarse sin la necesidad de crear cuentas de Gmail con nombres largos, una posibilidad que se nos ocurrió en el año 2015, y que presentamos como paper al congreso RootedCON 2016 mis compañeros Jesús Alcalde, Gonzalo Junquera y yo (aunque no fue seleccionada para conferencia), fue el uso de codificación binaria, tomando la existencia de un punto como un 1 lógico y la inexistencia del punto como un 0. Por ejemplo, una instrucción enviada al bot podría ser "myem.ai.l@gmail.com", y el código binario traducido sería el número 000101, que podría corresponder internamente con una instrucción del malware para capturar la cámara web del dispositivo troyanizado.

La siguiente figura presenta una tabla con el número de instrucciones que se pueden codificar utilizando esta técnica, dependiendo del tamaño de la cuenta de correo electrónico registrada en Gmail. Estas cuentas, según la política de Google, deben tener un tamaño de entre 6 y 30 caracteres, lo que determina un valor máximo de 2^(n-1), donde n es el valor máximo del carácter de una cuenta de Gmail, es decir, 536,870,912 comandos posibles; un valor suficiente para codificar todas las instrucciones de un malware u ocultar mensajes más complejos.


Recientemente, James Fisher publicó una interesante aproximación de esta técnica, que podría ser utilizada para Scam. Podéis leer el artículo completo aquí.

Esta técnica es habitualmente utilizada para crear múltiples cuentas en servicios de Internet, utilizando una única dirección de correo de Gmail, y aprovechando que en el registro en todos estos servicios no se comprueba si el email es "parecido" a uno ya registrado, simplemente suelen verificar si existe uno idéntico. De esta manera, pueden registrarse múltiples usuarios y todos los emails enviados por los proveedores de los servicios llegarán sin problemas a la cuenta de correo registrada de Gmail.

¡Saludos!



No hay comentarios:

Publicar un comentario