Skip to content
Rejoignez le forum de la communauté Censys : Se connecter, partager et prospérer ! | Commencez ici

 

 

Blogs

CVE-2022-47966 - RCE dans de nombreux produits ManageEngine

TL;DR : Vingt-quatre produits ManageEngine sont vulnérables à un RCE pré-auth. Parmi les services que Censys a pu identifier, 70 % signalent une version logicielle vulnérable.

Si vous utilisez l'un des nombreux produits ManageEngine et que vous avez activé l'authentification SAML SSO, actuellement ou par le passé, mettez-le à jour immédiatement !

Introduction

Le 10 janvier 2023, des détails sont apparus concernant une vulnérabilité affectant vingt-quatre produits ManageEngine différents et pouvant entraîner une exécution de code à distance (RCE) avant l'authentification si l'authentification SAML a été activée. Ces produits vulnérables utilisent une version du projet open-source "Apache Santuario" périmée depuis dix ans. Cette vulnérabilité a été assignée à CVE-2022-47966.

ManageEngine est une entreprise qui développe une large gamme de produits, allant de la gestion des identités aux systèmes de billetterie et d'assistance informatique. Ces produits sont présents dans presque tous les secteurs d'activité qui utilisent la technologie : Le type de données qu'un pirate peut exfiltrer d'un système compromis peut être utilisé pour se déplacer latéralement au sein d'une organisation.

Nous avons constaté que sur l'ensemble des produits ManageEngine que Censys peut identifier, 67% des hôtes sur Internet utilisent une version du logiciel qui peut être vulnérable à cet exploit. Nous utilisons le mot "peut" parce qu'un administrateur doit activer l'authentification SAML SSO sur le service (ou, dans certains cas, l'a activée dans le passé), et Censys n'a pas de moyen de déterminer si c'est le cas (nous voyons juste la réponse HTTP).

Il s'agit d'un simple exploit enveloppé de complexité, d'histoire et de magie technique. Mais avant d'entrer dans les détails des expositions sur Internet, je voudrais décrire le flux général d'une demande d'authentification SAML SSO afin que nous ayons les bons outils pour comprendre pourquoi cette vulnérabilité se produit et pourquoi elle est si facile à exploiter.

(Flux SAML SSO via SalesForce)

En général, lorsqu'un utilisateur tente de se connecter à une application web qui utilise l'authentification SSO basée sur SAML, le serveur web répond par une requête SAML. Le navigateur de l'utilisateur transmet alors cette demande à un "fournisseur d'identité" (défini par l'application web et résidant généralement sur un autre serveur) ; ce fournisseur d'identité analyse alors cette demande SAML et authentifie le client (généralement en lui demandant un nom d'utilisateur et un mot de passe). Une fois que l'utilisateur s'est authentifié auprès du fournisseur d'identité, ce dernier génère une réponse SAML, qui est renvoyée au navigateur du client. À son tour, le navigateur du client enverra cette réponse SAML à l'application web d'origine. C'est maintenant à l'application web de vérifier que la réponse SAML est valide et légitime et qu'elle provient du fournisseur d'identité.

Ce flux général d'authentification SAML SSO signifie qu'un utilisateur peut modifier et altérer le contenu d'une réponse SAML du fournisseur d'identité avant qu'elle ne soit renvoyée à l'application web. Dans la plupart des cas, l'altération sera facilement identifiée par l'application web puisque la réponse contient une signature cryptographique validant que le contenu est correct(XMLDSIG). Et c'est là que les choses commencent à devenir bizarres.

Pour effectuer cette validation de message, les produits ManageEngine utilisent l'API open-source "Apache Santuario", qui gère la complexité de la spécification XMLDSig et le processus de vérification de la section "Signature" d'une réponse SAML. Dans les anciennes versions de cette API, il existait un bogue qui permettait de traiter et de décoder certains éléments de cette section de signature avant de vérifier la validité de l'ensemble du message "Signature".

L'un des éléments de la section "Signature" qui s'exécutera avant la validation comprend la possibilité d'effectuer des transformations basées sur XSLT (un système Turing-complet pour convertir un type de données en un autre) sur l'entrée. Et comme un utilisateur peut modifier la réponse SAML avant qu'elle ne soit renvoyée à l'application web, un pirate peut réaliser une injection XSLT du côté du serveur. Un client malveillant peut construire une charge utile XSLT afin que le runtime Java puisse être chargé par le serveur et utilisé pour exécuter un processus.

Si vous êtes intéressé par les détails de cette vulnérabilité et les recherches précédentes, nous vous recommandons vivement un article du chercheur original(lien d'archive). Ce lien est un bon point de départ pour plus d'informations sur les vulnérabilités d'injection XSLT.

Une preuve de concept a été publiée sur Github, et l'exploitabilité est très triviale. Rapid7 a signalé que cette vulnérabilité a été utilisée dans la nature et a publié plusieurs indicateurs de compromission sur son blog.

Censys Résultats

Bien que l'avis concerne vingt-quatre produits ManageEngine différents, Censys n'a pu trouver en ligne que des références à neuf de ces produits et n'a pu déterminer la version en cours que pour sept d'entre eux. Cela dit, nous ne couvrirons que les détails des produits que nous avons pu associer à un numéro de version. Vous pouvez trouver tous les produits signalés dans la rechercheCensys avec cette requête.

Avant d'entrer dans le détail des versions, voici la répartition de ces produits par pays, les États-Unis occupant la première place avec plus d'un millier d'hôtes uniques.


Le graphique ci-dessus donne un aperçu des différents produits ManageEngine et indique s'ils utilisent une version vulnérable du logiciel. Vous trouverez ci-dessous une vue d'ensemble du nombre total de versions vulnérables et non vulnérables des produits en cours d'exécution. Notez que nous ne faisons cette détermination que sur la base du numéro de version trouvé dans le corps de la réponse HTTP, nous ne tentons jamais un exploit réel contre le serveur.

Produit Hôtes non vulnérables Hôtes vulnérables Total des hôtes
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
ManageEngine Asset Explorer 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

Les 10 versions les plus vulnérables de Service Desk Plus

Ce service est un système de gestion des services informatiques (ITSM) basé sur le web, principalement utilisé pour la gestion des tickets, des changements et des incidents. Ce produit est de loin le produit ManageEngine le plus déployé que Censys ait pu identifier, avec plus de six mille hôtes sur l'internet montrant des signes d'exécution. Sur ces 6 164 hôtes, nous avons constaté que plus de 70 % affichent une version vulnérable à cette attaque.

Le lecteur doit noter que le service ne sera vulnérable que si le SSO basé sur SAML a été configuré au moins une fois, quel que soit le statut actuel. Cela signifie que si un administrateur l'a déjà configuré, il est actuellement vulnérable.

La version peut être trouvée dans le corps de la réponse HTTP en tant qu'argument à l'inclusion Javascript de "/scripts/Login.js", par exemple, dans la capture d'écran suivante, nous voyons la valeur de "10610".

 

Censys Search services.http.response.html_title="ManageEngine ServiceDesk Plus"
Version Regex r"\N/scripts\N/Login\N.js\N ?([0-9]+ ?)'"
Versions vulnérables 14003 et moins

ManageEngine ServiceDesk Plus MSP

 

Les 10 versions les plus vulnérables de Service Desk Plus MSP

Il s'agit du même service que ManageEngine ServiceDesk Plus, mais il est destiné aux "fournisseurs de services gérés".

 

Censys Search services.http.response.html_title="ManageEngine ServiceDesk Plus - MSP" 
Version Regex r"\N/scripts\N/Login\N.js\N ?([0-9]+ ?)'"
Versions vulnérables 13000 et moins

ManageEngine SupportCenter Plus

 

Les 10 versions les plus vulnérables de SupportCenter Plus

ManageEngine SupportCenter Plus est un logiciel de service et d'assistance à la clientèle qui aide les organisations à gérer les interactions avec les clients et les demandes de service.

Censys Search services.http.response.html_title="ManageEngine SupportCenter Plus"
Version Regex r"(select2|default-theme|scpimages)\.css ?([0-9]+)"
Versions vulnérables 11017 à 11025

ManageEngine ADManager Plus

Les 10 versions les plus vulnérables d'ADManager Plus

ManageEngine ADManger Plus est un outil de gestion et de reporting Active Directory.

 

Censys Search services.http.response.html_title="ManageEngine - ADManager Plus"
Version Regex r"(engine|ADMPAlert|DWRUtil|EmployeeSearch)\.js\?v=([0-9]+)"
Versions vulnérables 7161 et moins

 

ManageEngine ADAudit Plus

 

Les 10 versions les plus vulnérables d'ADAudit Plus

ManageEngine ADAudit Plus fournit une notification de changement en temps réel de l'infrastructure Active Directory d'une organisation. La compromission d'un tel système pourrait permettre à un pirate d'accéder à des audits de sécurité et de conformité, ainsi qu'à des informations internes sur les systèmes et les réseaux fonctionnant au sein de l'organisation.

Censys Search same_service(services.http.response.html_title : "ADAudit Plus" et services.http.response.body : "ADAPLogin.js")
Version Regex r”js/ADAPLogin\.js\?v=([0-9]+)”
Versions vulnérables 7080 et moins

ManageEngine AssetExplorer

 

Les 10 versions les plus vulnérables d'AssetExplorer

ManageEngine AssetExplorer est un outil basé sur le web pour la gestion de l'infrastructure et de l'inventaire. Outre le suivi des actifs, il permet également de gérer les commandes d'achat de nouvelles infrastructures.

Censys Search services.http.response.html_title="ManageEngine AssetExplorer"
Version Regex r"(select2|default-theme|loginstyle)\.css ?([0-9]+)"
Versions vulnérables 6982 et moins

 

ManageEngine ADSelfService Plus

ManageEngine ADSelfService Plus est un outil qui permet aux utilisateurs d'une organisation de réinitialiser et de modifier leurs propres mots de passe. La compromission d'un tel système peut mettre en péril l'ensemble d'un réseau.

Les deux seules versions vulnérables d'ADSelfService Plus

 

Censys Search services.http.response.html_title="ADSelfService Plus"
Version Regex r"?buildNo=([0-9]+)"
Versions vulnérables 6210 et moins

ManageEngine Key Manager Plus

Censys Search services.http.response.body=”<script>window.location.href = \”/apiclient/index.jsp\”; </script>\n”
Version Regex N/A
Versions vulnérables 6400 et moins

ManageEngine Password Manager Pro

Censys Search services.tls.certificates.leaf_data.issuer.organizational_unit : "ManageEngine Password Manager Pro"
Version Regex N/A
Versions vulnérables 12123 et moins

Que peut-on faire ?

  • Les utilisateurs de ManageEngine sont invités à passer à la dernière version du logiciel.
  • Censys ASM ont accès à un risque qui permet d'identifier les versions exposées et obsolètes des produits suivants :
    • ManageEngine ServiceDesk Plus
    • ManageEngine ServiceDesk Plus MSP
    • ManageEngine SupportCenter Plus
    • ManageEngine ADManager Plus
    • ManageEngine ADAudit Plus
    • ManageEngine AssetExplorer
    • ManageEngine ADSelfService Plus

A propos de l'auteur

Mark Ellzey
Chercheur principal en sécurité Tous les postes de Mark Ellzey
Mark Ellzey est chercheur principal en sécurité à l'adresse Censys. Avant d'occuper son poste actuel, Mark a travaillé pendant plus de 22 ans en tant qu'ingénieur en sécurité des réseaux et développeur de logiciels pour plusieurs fournisseurs de services Internet et institutions financières.
Solutions de gestion de la surface d'attaque
En savoir plus