Robo de Token y subdominios en Microsoft Teams a través de imágenes y enlaces

A medida que se realizan más negocios desde ubicaciones remotas, los atacantes centran sus esfuerzos en explotar las tecnologías clave, como Zoom y Microsoft Teams, de las que dependen las empresas y sus empleados para mantenerse conectados.

CyberArk descubrió que, al aprovechar una vulnerabilidad de adquisición de subdominio en Microsoft Teams, los atacantes podrían haber usado un GIF malicioso (u otro enlace) para obtener los datos del usuario y, en última instancia, hacerse cargo de toda la lista de cuentas de Teams de una organización. Enviar el enlace o la imagen maliciosa es simple, pero preparar el ataque implicaba múltiples pasos que serían difíciles de lograr para atacantes poco sofisticados.

Un atacante podía explotar esta debilidad para crear un enlace o un archivo GIF que, cuando es procesado por Teams, enviaba un token de autenticación a un servidor controlado por el atacante. En el caso de los enlaces, la víctima necesita hacer clic en el enlace, pero en los ataques que involucran imágenes GIF, la víctima simplemente necesita ver el GIF en el chat de los equipos y su token se envía al atacante.

Una vez que han obtenido el token, el atacante puede usarlo para secuestrar la cuenta de la víctima a través de las interfaces API de Teams. El atacante puede usar este método para leer los mensajes de los equipos del usuario, enviar mensajes en su nombre, crear grupos, agregar o eliminar usuarios de un grupo y cambiar los permisos del grupo.

Todo el ataque puede automatizarse, permitiendo que los actores maliciosos se propaguen a través de una organización como un gusano mediante el uso de cuentas comprometidas para enviar el GIF malicioso a otros usuarios de Teams. Esto les permite obtener información potencialmente confidencial de las cuentas de Teams, incluidos datos confidenciales, contraseñas, datos de reuniones y calendarios, y planes comerciales.

Los investigadores de CyberArk describieron varios escenarios de ataque que involucran esta vulnerabilidad, incluido uno en el que el atacante usa una cuenta secuestrada para solicitar un restablecimiento de contraseña de un miembro del equipo de TI de la organización. El atacante también puede contactar al CEO utilizando la cuenta secuestrada de otro ejecutivo y solicitar información financiera confidencial.

CyberArk trabajó con el Centro de Investigación de Seguridad de Microsoft bajo Divulgación de Vulnerabilidad Coordinada y se emitió una solución rápidamente.

Requisitos

Sin embargo, hay ciertos requisitos previos para que el ataque funcione. En primer lugar, cuando la víctima ve el GIF malicioso en Teams, su token de acceso solo se puede enviar a un subdominio de *.teams.microsoft.com, por lo que el atacante de alguna manera necesita secuestrar dicho subdominio.

Durante sus pruebas, los investigadores de CyberArk descubrieron dos subdominios más que les permitieron realizar un ataque: aadsync-test.teams.microsoft.com y data-dev.teams.microsoft.com.

La investigación realizada recientemente muestra que hay cientos de subdominios legítimos de Microsoft que pueden ser secuestrados y abusados ​​para suplantación de identidad, entrega de malware y estafas. Sin embargo, un atacante necesitaría encontrar subdominios teams.microsoft.com para realizar un ataque.

CyberArk ha admitido que encontrar un dominio adecuado no es una tarea fácil, pero cree que un atacante con el método correcto y los recursos correctos probablemente encontrará más subdominios.

Microsoft se ha asegurado de que los dominios identificados por CyberArk no puedan ser abusados ​​por más tiempo y dice que ha tomado otras medidas para evitar la explotación. Además, los tokens obtenidos por el atacante solo son válidos por una hora, pero se crea un nuevo token que es válido por otra hora cada vez que la víctima ve el GIF malicioso.

Uso de Cookies y Tokens

Sin entrar en demasiados detalles técnicos, cada vez que abre Teams, el cliente crea un nuevo token temporal o token de acceso. Este token de acceso, en forma de JWT, es creado por la autorización de Microsoft y el servidor de autenticación: "login.microsoftonline.com". Además del token de acceso inicial, hay muchos otros creados para Teams, algunos de los cuales se utilizan para acceder a diferentes servicios como SharePoint, Outlook y muchos más.

El cliente de Teams usa uno de estos tokens creados para permitir que un usuario vea imágenes compartidas con ellos o por ellos, ya que esas imágenes se almacenan en los servidores de Microsoft, lo que aplica el control de autorización. Este token, llamado "token de Skype", también se puede ver como una cookie llamada "skypetoken_asm". Si bien este token tiene más usos que solo dar acceso a las imágenes, en eso nos centraremos aquí.

Rest API es el enfoque común de hoy en día para exponer un conjunto de operaciones y comandos para aplicaciones, especialmente aplicaciones web como Teams. Las aplicaciones complejas como Teams utilizan principalmente más de un punto final de API, ya que necesitan comunicarse con más de un servicio. Finalmente, el cliente de Teams debe enviar la acción del usuario (como enviar un mensaje) al punto final de la API relevante, pero ¿cómo sabe el punto final de la API para asociar la acción entrante al usuario correcto? La autenticación es clave para responder esta pregunta.

Hay muchas formas de autenticar a los usuarios frente a las API: una de las técnicas más comunes es enviar un token de acceso a través de un encabezado de autorización. Teams utiliza este método para autenticar al usuario frente a su interfaz API, pero esto causa un problema importante cuando se trata de imágenes.

Cargar imágenes es un poco más complicado de autenticación si no basa su método de autenticación de usuario en cookies. Los equipos administran la mayoría, si no todos, los tokens de autenticación (tokens JWT) en el almacenamiento local del navegador, y las cookies son solo una pequeña parte de su proceso de autenticación.

En algunos casos, como al cargar imágenes, puede encontrar un problema para acceder a esas imágenes, porque de alguna manera necesita pasar el token de autenticación al servidor que contiene las imágenes. Para resolver este problema, hay una manera de recuperar el contenido de la imagen con el código JavaScript como un blob y luego establecer el atributo src de la etiqueta IMG en el blob creado.

Otra forma de resolver esto es mediante la creación de un token de acceso al recurso en forma de hash o similar. Podemos ver este enfoque utilizado por Facebook en su plataforma para acceder a imágenes.

La vulnerabilidad

Según lo publicado, alguien podía secuestrar toda una compañía a través de un GIF enviado a Teams y que a partir de ahí podrían robar la información y provocar un verdadero desastre ahora que esta plataforma es tan usada. En realidad, la razón última no es un GIF sino otro problema más grave: fallos en la configuración de los subdominios oficiales "abandonados" o poco vigilados.



Tal y como se descubrió el fallo, el problema no es el GIF ni el Teams exactamente, sino un robo de cookies o tokens gracias a que Microsoft perdió el control de dos subdominios de Teams. Lo que consiguieron en CyberArk es hacerse con los dominios  aadsync-test.teams.microsoft.com y data-dev.teams.microsoft.com. ¿Cómo? Pues ya venían avisando desde hace tiempo muchos investigadores: la cantidad de subodminios bajo dominios legítimos de Microsoft que no están siempre controlados. Puede que su CNAME apunte a dominios expirados, que contengan typos, etc… El caso es que a veces pueden conseguir que apunten a una máquina del atacante.

A partir de ahí, conseguían que Teams enviase tokens de autenticación a esos dominios y por tanto, hacerse con ellos. Los modificaban por tokens de "Skype" y a partir de ahí podían comunicarse de forma autenticada con el Teams de la víctima y robarle información hasta tirar del hilo y moverse por la organización.

Y el GIF aquí solo es un artefacto. Podían haber hecho que el usuario haga clic en un enlace, pero utilizaron un GIF para hacerlo más vistoso. El GIF estaba colgado en uno de esos dominios y al intentar la previsualización, enviaba a ellos el token autenticador.

Parece que a no solo han arreglado el envío de tokens (que lo hacía a todos los subdominios *.teams.microsoft.com) sino que han intentado que no se secuestren más subdominios.

Fuente: SeguInfo

Comentarios

Entradas populares de este blog

Presuntos narcotraficantes liberados por un ransomware

Metasploit y Windows 10: Creando un payload indetectable (Evadiendo software antivirus)

Diferencias entre mapa de calor, mapa de riesgos y matriz de riesgos