Microsoft Team y token sin cifrar

César Millavil Arenas
23.09.22 10:47 AM - Comment(s)

Microsoft Team y token sin cifrar

microsoft-teams


Por  Alberto Sánchez, Pentester & Analista de Ciberseguridad.

La aplicación de escritorio para Microsoft Teams almacena tokens de autenticación como texto sin formato en las plataformas Linux, macOS y Windows. Esto permite a los atacantes usar estos tokens para acceder a las cuentas incluso si la autenticación multifactor (MFA) está habilitada. Esta aplicación utiliza el marco Electron, anteriormente este marco ha sido criticado por sus fallas en la seguridad, todo esto debido que utiliza una versión más antigua del navegador Chrome.


Ahora en concreto, el problema señalado permite a un atacante robar los tokens y usarlos para iniciar sesión en la cuenta de la víctima, esto se logra teniendo acceso local a un sistema con Microsoft Teams instalado.

"Este ataque no requiere permisos especiales o malware avanzado para salirse con la suya con daños internos importantes", explica Connor Peoples, de la empresa de ciberseguridad Vectra, en un informe publicado por parte de esta organización.


Una Investigación Comenzó Todo.

Los investigadores de seguridad comenzaron a observar más de cerca a Microsoft Teams después de que los clientes de Vectra Protect se quejaran de cómo Microsoft Teams maneja las cuentas deshabilitadas. Los usuarios finales no pueden eliminar cuentas deshabilitadas a través de la interfaz de usuario porque la aplicación Teams requiere que inicie sesión en la cuenta para eliminarla del cliente. Esto es comprensible, porque después de todo ya no es posible iniciar sesión. Pero la gente de Vectra quería arreglar eso y miró los datos de configuración local en el cliente de Teams y descubrió cómo funcionaba.

Durante su investigación, descubrieron el marco Electron utilizado para crear aplicaciones de Microsoft Teams. Electron le permite crear una aplicación web que se ejecuta a través de un navegador personalizado. Esto es muy conveniente y hace que el desarrollo sea rápido y fácil. Microsoft confía en Electron para entregar aplicaciones a través de múltiples plataformas.

Esto es comprensible, pero los desarrolladores que no entienden completamente cómo funciona Electron pueden crear aplicaciones que son demasiado transparentes. En este caso, Vectra analizó los equipos de Microsoft mientras intentaba encontrar una manera de eliminar las cuentas desactivadas de las aplicaciones de los clientes y encontró un archivo ldb con tokens de acceso en texto claro.



"Luego de la revisión, se determinó que estos tokens de acceso estaban activos y no un volcado accidental de un error anterior. Estos tokens de acceso nos dieron acceso a las API de Outlook y Skype". -Vectra

Conjuntamente, los analistas descubrieron que la carpeta "Cookies" también contenía tokens de autenticación válidos, así como información de cuenta, datos de sesión y etiquetas de marketing

Investigación Por Nuestra Parte

Por nuestra parte, nuestro equipo realizo un pequeño POC (Prueba de Concepto), para poder replicar el ejercicio llevada a cabo por Vectra y observar por nuestra parte los riesgos que ellos mencionan en su investigación. 

Se pudo observar el archivo Cookies, el cual contiene "Cookies" en texto plano, las cuales pueden ser utilizadas para hacer diversas acciones dentro de la cuenta de Teams: 




Para este ejercicio, le solicitamos a uno de nuestros colaboradores que nos envíe este archivo en cuestión, luego de analizado, pudimos obtener la cookie "skypetoken_asm" , que según nuestros análisis es la que autoriza el envío de mensajes dentro de la aplicación Microsoft Teams: 



Ya teniendo en nuestro poder la Cookie, utilizando Burpsuite  e interceptando el request es posible intercambiar las cookies  y enviar mensajes como si fueras la otra persona: 




Si bien, nuestro equipo se encargó de probar las cookies que estaban guardadas en estos archivos, no fue posible tomar el control total de la cuenta "Víctima”, esto debido a que los tokens caducaban en poco tiempo y automáticamente estos eran actualizados. Este ataque tiene una alta complejidad, ya que, un atacante debe tener acceso completo al equipo, por otro lado, cualquier atacante preferiría acceder a otros archivos e incluso tomar otro tipo de acciones más invasivas dentro del sistema víctima. 

Esto da sentido a la decisión de Microsoft de tomar el problema de manera tranquila y descartar su pronta intervención. Por nuestra parte esta resolución tiene sentido, utilizar un navegador web como también menciona Vectra para mitigar el riesgo, no lo hará menos riesgoso que utilizar la aplicación ya que los tokens de intercambio y las cookies de sesión también se almacenan en archivos que son fáciles de obtener si tienes acceso al equipo físico. Esto es similar a cuando abres las herramientas de desarrollo del navegador WEB y puedes ver tus contraseñas en texto plano viajando en la pestaña de red, eso es normal porque eres tú mismo el que tiene acceso a tu propio equipo y a tu propio navegador, sería diferente si un atacante pudiera tener acceso a observar ese tráfico de manera remota a través de alguna vulnerabilidad del navegador WEB o del mismo sitio WEB, en este caso sería una vulnerabilidad si un atacante lograse obtener los tokens de intercambio de la aplicación de Teams de forma remota a través de alguna vulnerabilidad propia de Teams, pero no es así, primero se requiere escalar privilegios y vulnerar el propio Sistema Operativo y luego acceder a los datos de cualquier aplicación instalada, por lo cual, tanto el riesgo de la vulnerabilidad como el resguardo de los datos pertenecen a una capa inferior la cual le corresponde al propio Sistema Operativo y no a la aplicación. Por consiguiente, para este caso lo mejor es tener en cuenta dos aspectos 

  • Hardenizar el FileSystem, de hecho, una regla  FIM (Monitoreo de Integridad de Archivos) o un EDR (Endpoint Detection and Response) que monitoree que solo teams pueda leer esos archivos. Una herramienta muy recomendada para esto es Sophos EDR ya que esta puede llevar a cabo una inspección total de tu equipo local o en la nube. Manteniendo el control sobre el mismo 
  • Si se produce una infección y el atacante tiene acceso al equipo lo ideal es contar con una herramienta de detección, contención y erradicación como, por ejemplo: Sophos XDR la cual cuenta con todas estas características y además cuenta con una detección más precisa de amenazas.

César Millavil Arenas