TL;DR: Veinticuatro productos ManageEngine son vulnerables a un RCE pre-auth. De los servicios que Censys pudo identificar, el 70% reportan una versión de software vulnerable.
Si está utilizando uno de los muchos productos de ManageEngine y ha activado la autenticación basada en SAML SSO, actualmente o en el pasado, ¡actualícelo inmediatamente!
Introducción
El 10 de enero de 2023, surgieron detalles sobre una vulnerabilidad que afecta a veinticuatro productos diferentes de ManageEngine y que puede resultar en la ejecución remota de código (RCE) previo a la autenticación si alguna vez se ha habilitado la autenticación SAML. Estos productos vulnerables utilizan una versión desactualizada desde hace diez años del proyecto de código abierto "Apache Santuario". A esta vulnerabilidad se le ha asignado CVE-2022-47966.
ManageEngine es una empresa que desarrolla una amplia gama de productos, desde gestión de identidades hasta sistemas de ticketing y soporte de TI. Estos productos se encuentran en casi todas las industrias que utilizan tecnología: Educación, comercio minorista, fabricación, sanidad, etc., y el tipo de datos que un atacante puede extraer de un sistema comprometido podría aprovecharse para moverse lateralmente dentro de una organización.
Hemos encontrado que del total de productos ManageEngine que Censys puede identificar, el 67% de los hosts en Internet están ejecutando una versión del software que puede ser vulnerable a este exploit. Utilizamos la palabra "puede" porque un administrador debe habilitar la autenticación SAML SSO en el servicio (o, en algunos casos, la habilitó en algún momento en el pasado), y Censys no tiene forma de determinar si este es el caso (solo vemos la respuesta HTTP).
Este problema es un simple exploit envuelto en complejidad, historia y hechicería técnica. Pero antes de entrar en los detalles de las exposiciones en Internet, quiero describir el flujo general de una solicitud de autenticación SAML SSO para que tengamos las herramientas adecuadas para entender por qué se produce esta vulnerabilidad y por qué es tan fácil de explotar.
Por lo general, cuando un usuario intenta iniciar sesión en una aplicación web que utiliza autenticación SSO basada en SAML, el servidor web responderá con una solicitud SAML. El navegador del usuario reenviará esta petición a un "proveedor de identidades" (definido por la aplicación web y que suele residir en otro servidor); este proveedor de identidades analizará la petición SAML y autenticará al cliente (normalmente solicitándole un nombre de usuario y una contraseña). Una vez que el usuario se ha autenticado en el proveedor de identidades, éste genera una respuesta SAML que se envía al navegador del cliente. A su vez, el navegador del cliente enviará esta respuesta SAML a la aplicación web original. Ahora corresponde a la aplicación web verificar que la respuesta SAML es válida y legítima y procede del proveedor de identidades.
Este flujo general de autenticación SAML SSO significa que un usuario puede modificar y manipular el contenido de una respuesta SAML del proveedor de identidades antes de que se envíe de vuelta a la aplicación web. En la mayoría de los casos, la manipulación será fácilmente identificable por la aplicación web, ya que la respuesta contiene una firma criptográfica que valida que el contenido es correcto(XMLDSIG). Y aquí es donde las cosas empiezan a ponerse raras.
Para realizar esta validación de mensajes, los productos ManageEngine utilizaban la API de código abierto "Apache Santuario", que gestiona la complejidad de la especificación XMLDSig y el proceso de verificación de la sección "Firma" de una respuesta SAML. En versiones anteriores de esta API, existía un error por el que procesaba y descodificaba determinados elementos de esta sección de firma antes de comprobar la validez de todo el mensaje de "Firma".
Uno de los elementos de la sección "Firma" que se ejecutará antes de la validación incluye la capacidad de realizar transformaciones basadas en XSLT (un sistema Turing-completo para convertir un tipo de datos en otro) en la entrada. Y puesto que un usuario puede modificar la respuesta SAML antes de que se envíe de vuelta a la aplicación web, un atacante puede realizar una inyección XSLT en el lado del servidor. Un cliente malicioso puede construir una carga útil XSLT para que el servidor cargue el tiempo de ejecución de Java y lo utilice para ejecutar un proceso.
Si está interesado en los detalles sobre esta vulnerabilidad y las investigaciones previas al respecto, le recomendamos encarecidamente el artículo del investigador original(enlace al archivo). Este enlace es un buen punto de partida para obtener más información sobre las vulnerabilidades de inyección XSLT.
En Github se ha publicado una prueba de concepto del exploit, que es muy trivial. Rapid7 ha informado de que esta vulnerabilidad se ha visto utilizada en la naturaleza y ha publicado varios indicadores de compromiso en su blog.
Censys Hallazgos
Mientras que el aviso es para veinticuatro productos ManageEngine diferentes, Censys sólo pudo encontrar referencias a nueve de los productos en línea y sólo pudo determinar la versión en ejecución de siete. Dicho esto, sólo cubriremos los detalles de los productos que pudimos asociar con un número de versión. Puede encontrar todos los productos notificados en la búsqueda deCensys con esta consulta.
Antes de entrar en los detalles de la versión, he aquí un desglose de estos productos por países, con Estados Unidos ocupando el primer puesto con más de mil hosts únicos.
Producto |
Hosts no vulnerables |
Anfitriones vulnerables |
Total de hosts |
ManageEngine ServiceDesk Plus |
1,748 (29.5%) |
4,416 (70.5%) |
6,164 |
ManageEngine ServiceDesk Plus MSP |
173 (27.64%) |
453 (72.36%) |
626 |
ManageEngine SupportCenter Plus |
492 (78.22%) |
137 (21.78%) |
629 |
ManageEngine ADManager Plus |
143 (30.3%) |
329 (69.7%) |
472 |
ManageEngine AdAudit Plus |
35 (29.91%) |
82 (70.09%) |
117 |
Explorador de activos ManageEngine |
8 (10.53%) |
68 (89.47%) |
76 |
ManageEngine ADSelfService Plus |
3 (60%) |
2 (40%) |
5 |
Total |
2,602 |
5,487 |
8,089 |
ManageEngine ServiceDesk Plus
|
Las 10 versiones más vulnerables de Service Desk Plus
|
Este servicio es un sistema de gestión de servicios de TI (ITSM) basado en web que se utiliza principalmente para la gestión de tickets, cambios e incidencias. Este producto es, con mucho, el producto ManageEngine más desplegado que Censys pudo identificar, con más de seis mil hosts en Internet que muestran signos de que se está ejecutando. De esos 6.164 hosts, hemos descubierto que más del 70% muestran una versión vulnerable a este ataque.
El lector debe tener en cuenta que el servicio sólo será vulnerable si el SSO basado en SAML se ha configurado al menos una vez, independientemente del estado actual. Es decir, si un administrador lo ha configurado alguna vez, actualmente es vulnerable.
La versión se puede encontrar en el cuerpo de la respuesta HTTP como argumento a la inclusión Javascript de "/scripts/Login.js", por ejemplo, en la siguiente captura de pantalla, vemos el valor de "10610".
ManageEngine ServiceDesk Plus MSP
|
Las 10 versiones más vulnerables de Service Desk Plus MSP |
Es el mismo servicio que ManageEngine ServiceDesk Plus pero orientado a "Proveedores de servicios gestionados".
ManageEngine SupportCenter Plus
|
Las 10 versiones más vulnerables de SupportCenter Plus
|
ManageEngine SupportCenter Plus es un software de atención al cliente y soporte que ayuda a las organizaciones a gestionar las interacciones con los clientes y las solicitudes de servicio.
ManageEngine ADManager Plus
|
Las 10 versiones más vulnerables de ADManager Plus
|
ManageEngine ADManger Plus es una herramienta de gestión e informes de Active Directory.
ManageEngine ADAudit Plus
|
Las 10 versiones más vulnerables de ADAudit Plus
|
ManageEngine ADAudit Plus proporciona notificación de cambios en tiempo real de la infraestructura de Active Directory de una organización. Comprometer un sistema como este podría proporcionar a un atacante acceso a auditorías de seguridad y cumplimiento, e información interna sobre los sistemas y redes que se ejecutan dentro de la organización.
ManageEngine AssetExplorer
|
Las 10 versiones más vulnerables de AssetExplorer
|
ManageEngine AssetExplorer es una herramienta web para la gestión de infraestructuras e inventarios. Junto con el seguimiento de activos, también se pueden gestionar pedidos de compra de nuevas infraestructuras.
ManageEngine ADSelfService Plus
ManageEngine ADSelfService Plus es una herramienta que puede proporcionar a los usuarios de una organización los medios para restablecer y cambiar sus propias contraseñas. Comprometer un sistema como este podría poner en riesgo la totalidad de una red.
|
Las dos únicas versiones vulnerables de ADSelfService Plus
|
ManageEngine Key Manager Plus
ManageEngine Password Manager Pro
¿Qué se puede hacer?
- Se insta a los usuarios de ManageEngine a actualizarse a la última versión del software.
- Censys ASM los clientes tienen acceso a un riesgo que identificará tanto las versiones expuestas como las obsoletas de los siguientes productos:
- ManageEngine ServiceDesk Plus
- ManageEngine ServiceDesk Plus MSP
- ManageEngine SupportCenter Plus
- ManageEngine ADManager Plus
- ManageEngine ADAudit Plus
- ManageEngine AssetExplorer
- ManageEngine ADSelfService Plus