Ir al contenido
Únase al foro de la comunidad Censys : Conectar, compartir y prosperar | Empieza aquí

 

 

Blogs

CVE-2022-47966 - RCE en numerosos productos ManageEngine

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.

(Flujo SAML SSO a través de SalesForce)

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.


En el gráfico anterior, podemos ver una visión general de los diferentes productos ManageEngine y si se han encontrado ejecutando una versión vulnerable del software. A continuación se muestra una vista agregada del número total de versiones vulnerables frente a las no vulnerables de los productos en ejecución. Tenga en cuenta que sólo hacemos esta determinación basándonos en el número de versión encontrado en el cuerpo de la respuesta HTTP, nunca intentamos un exploit real contra el servidor.

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".

 

Censys Search services.http.response.html_title="ManageEngine ServiceDesk Plus"
Versión Regex r"\/scripts\/Login\.js\?([0-9]+?)'"
Versiones vulnerables 14003 e inferiores

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".

 

Censys Search services.http.response.html_title="ManageEngine ServiceDesk Plus - MSP" 
Versión Regex r"\/scripts\/Login\.js\?([0-9]+?)'"
Versiones vulnerables 13000 e inferior

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.

Censys Search services.http.response.html_title="ManageEngine SupportCenter Plus"
Versión Regex r"(select2|default-theme|scpimages)\.css\?([0-9]+)"
Versiones vulnerables 11017 a 11025

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.

 

Censys Search services.http.response.html_title="ManageEngine - ADManager Plus"
Versión Regex r"(engine|ADMPAlert|DWRUtil|EmployeeSearch)\.js\?v=([0-9]+)"
Versiones vulnerables 7161 e inferiores

 

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.

Censys Search same_service(services.http.response.html_title: "ADAudit Plus" y services.http.response.body: "ADAPLogin.js")
Versión Regex r”js/ADAPLogin\.js\?v=([0-9]+)”
Versiones vulnerables 7080 e inferior

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.

Censys Search services.http.response.html_title="ManageEngine AssetExplorer"
Versión Regex r"(select2|default-theme|loginstyle)\.css\?([0-9]+)"
Versiones vulnerables 6982 e inferiores

 

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

 

Censys Search services.http.response.html_title="ADSelfService Plus"
Versión Regex r"?buildNo=([0-9]+)"
Versiones vulnerables 6210 e inferiores

ManageEngine Key Manager Plus

Censys Search services.http.response.body=”<script>window.location.href = \”/apiclient/index.jsp\”; </script>\n”
Versión Regex N/A
Versiones vulnerables 6400 e inferior

ManageEngine Password Manager Pro

Censys Search services.tls.certificates.leaf_data.issuer.organizational_unit: "ManageEngine Password Manager Pro"
Versión Regex N/A
Versiones vulnerables 12123 e inferiores

¿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

Sobre el autor

Mark Ellzey
Senior Security Researcher Todos los puestos de Mark Ellzey
Mark Ellzey es investigador principal de seguridad en Censys. Antes de ocupar su puesto actual, Mark ha trabajado como ingeniero de seguridad de redes y desarrollador de software para varios proveedores de servicios de Internet e instituciones financieras durante más de 22 años.
Soluciones de gestión de la superficie de ataque
Más información