Forticlient es el cliente VPN de nivel de entrada de Fortinet que ofrece conectividad VPN SSL VPN e IPSecVPN. También contiene funciones de utilidad que le permiten importar y exportar configuraciones y perfiles de VPN.
Producto afectado
Proveedor: Fortinet
Aviso: https://www.fortiguard.com/psirt/FG-IR-22-044
Producto: VPN FortiClientWindows
Versiones vulnerables: 6.0.0 a 6.0.10
6.2.0 a 6.2.9
6.4.0 a 6.4.7
7.0.0 a 7.0.3
Versiones parcheadas: 7.0.4 o superior
6.4.8 o superior
Plataformas vulnerables confirmadas: Windows
Introducción a CVE-2022-26113
Esta publicación cubre una escritura de archivo arbitraria como SISTEMA en el cliente VPN de Fortinet FortiClient.
Este problema utiliza una función de copia de seguridad de la configuración de FortiClient con privilegios excesivos de escritura de archivos.
Descripción general de FortiClient VPN
FortiClient VPN permite a los usuarios regulares de VPN Client hacer una copia de seguridad de su configuración de VPN. El archivo de copia de seguridad lo escribe el servicio de programación de FortiClient que se ejecuta como SYSTEM, que llama a FCConfig.exe en el archivo de copia de seguridad especificado.
Dado que la ruta del archivo utilizada para realizar la copia de seguridad solo se valida en la interfaz de usuario de la aplicación, es posible omitir cualquier verificación de permisos y obligar al servicio a escribir en una ubicación arbitraria, incluso si el usuario no tiene permiso. para hacerlo. .
El usuario puede controlar el contenido parcial de la copia de seguridad de la configuración, lo que significa que, como mínimo, puede escribir un script .bat en el directorio de inicio de un administrador como método de escalada de privilegios.
Impacto de vulnerabilidad
Esta vulnerabilidad permite que se escriba un archivo arbitrario en cualquier parte del sistema mientras se controla parte del contenido. Esto puede conducir a una escalada de privilegios de varias maneras, la más común es escribir un script en la carpeta de inicio de un usuario privilegiado y luego esperar a que ese usuario inicie sesión en el sistema.
Detalles técnicos
FortiClient es una aplicación de Electron que interactúa con varios servicios que se ejecutan en segundo plano. Un usuario normal puede iniciar e interactuar con la interfaz de usuario de FortiClient Electron.
Es posible iniciar la aplicación FortiClient con la depuración de Electron habilitada y adjuntarla a un depurador con Chrome.
C:\Archivos de programa\Fortinet\FortiClient\FortiClient.exe --remote-debugging-port=9222
Ahora, abrir Chrome con chrome://inspect le permitirá conectarse al proceso de FortiClient.
Aquí puede ver la función de copia de seguridad dentro de la interfaz de usuario de FortiClient. La interfaz de usuario le permite elegir un archivo de copia de seguridad y verifica que el usuario actual tenga permiso para escribir en ese archivo antes de permitir que se seleccione. A continuación, la selección se desactiva para la edición.
Dado que se está depurando la interfaz de usuario, obviamente se puede modificar cualquier cosa en la interfaz de usuario. Para demostrar esto, se puede usar la consola de JavaScript para establecer la propiedad deshabilitada del elemento en falso.
Ahora la ruta del archivo para el archivo de copia de seguridad se puede modificar a cualquier cosa.
Hay varias formas de evitar esto usando el depurador. Después de investigar un poco, se encntró la función para llamar directamente al servicio de copia de seguridad de la configuración, que permite llamar a la función desde la consola de JavaScript, especificando una ruta arbitraria.
require('../app.asar.unpacked/assets/js/guimessenger64.node').BackupConfig("c:\\poc.txt","aaaaaaaaa",true)
Conclusión
Aunque FortiClient no está implementado de la misma manera que los otros dos clientes VPN como un envoltorio alrededor de OpenVPN, aún era posible encontrar una manera de abusar de los servicios privilegiados con los que interactúa la interfaz de usuario del cliente para escribir archivos arbitrarios como SYSTEM.
Cronograma de divulgación
23/2/2022 - Problema informado a Fortinet
24/02/2022 - Informe reconocido por Fortinet
13/04/2022 - Rhino solicita actualización sobre el progreso
14/04/2022 - Problema de actualizaciones de Fortinet solucionado y CVE asignado, en espera de lanzamiento
06/06/2022 - Fortinet solicita información para asesoría
8/6/2022 - Fortinet informa a Rhino que el problema se solucionó y se liberó.
Autores de descubrimiento
Rhino Security Labs en colaboración con Fortinet.
Referencias y Créditos:
Comments