Graves vulnérabilités dans Microsoft Exchange

Server Room

Risque(s)

  • Exécution de code arbitraire à distance
  • Injection de requêtes forgées côté serveur (Server-side request forgery)

Systèmes affectés

  • Microsoft Exchange Serveur 2013 toutes versions
  • Microsoft Exchange Serveur 2016 toutes versions
  • Microsoft Exchange Serveur 2019 toutes versions

Résumé

En date du 29 septembre 2022, Microsoft a indiqué l’existence de deux vulnérabilités, de type zéro-jour, au sein de Windows Exchange 2013, 2016 et 2019.

Ces vulnérabilités sont les suivantes :

  • CVE-2022-41040 : Vulnérabilité de type injection de requêtes forgées côté serveur (Server Side Request Forgery, SSRF) exploitable par un attaquant authentifié ;
  • CVE-2022-41082 : Vulnérabilité permettant à un attaquant authentifié d’exécuter du code arbitraire à distance.

Dans le cadre d’une attaque, la CVE-2022-41040 peut permettre à un attaquant d’exploiter à distance la CVE-2022-41082. Selon l’éditeur, ces deux vulnérabilités ne sont exploitables que si l’attaquant est déjà authentifié. Un correctif spécifique est en cours de développement par Microsoft.

Ces vulnérabilités doivent faire l’objet d’une prise en compte immédiate, car elles ont été utilisées dans le cadre d’attaques ciblées. Le Centre gouvernemental de veille, d’alerte et de réponse aux attaques informatiques n’a pour le moment pas connaissance des conditions ayant permis aux attaquants d’obtenir un accès authentifié sur les serveurs ciblés.

Le Centre gouvernemental a connaissance de codes d’exploitation publics pour ces vulnérabilités.

[Mise à jour du 07 octobre 2022] Le Centre gouvernemental a connaissance d’incidents en France impliquant l’exploitation de ces vulnérabilités.

Contournement provisoire

En attendant la publication des correctifs, le entre gouvernemental recommande d’appliquer immédiatement les mesures d’atténuation proposées par Microsoft [1].

[Mise à jour du 04 octobre 2022] L’éditeur recommande fortement de désactiver l’accès à PowerShell à distance pour les utilisateurs non administrateurs [3]. Le Centre gouvernemental recommande l’application de cette contre-mesure car il s’agit de la protection la plus efficace identifiée à ce jour. Il conviendra de tester la configuration afin d’identifier les éventuels effets de bord sur les procédures automatisées basées sur Powershell.

Par ailleurs, et de façon complémentaire, Microsoft a publié un code PowerShell permettant d’appliquer les mesures d’atténuation pour la CVE-2022-41040 (réécriture de l’URL) [2]. De plus, une mise à jour de l’outil EEMS (Exchange Emergency Mitigation Service), ainsi que des éléments pour l’outil AMSI (AntiMalware Scan Interface) ont été proposés par Microsoft.

[Mise à jour du 05 octobre 2022]

Le code PowerShell de Microsoft permettant d’appliquer la mesure d’atténuation via le module URL Rewrite a été mis à jour pour renforcer son efficacité contre des variations de la requête malveillante initialement observée [2]. Afin d’appliquer cette modification, il est nécessaire de télécharger puis relancer ce nouveau code ou modifier directement la règle dans le module URL Rewrite avec la valeur suivante : « .*autodiscover\.json.*Powershell.*« .

[Mise à jour du 07 octobre 2022]

Afin de prévenir tout type de coutournement de la règle « .*autodiscover\.json.*Powershell.* » par le biais d’encodage, le Centre gouvernemental rappelle qu’il faut modifier la condition d’entrée de la règle susmentionnée avec la valeur suivante :  {UrlDecode:{REQUEST_URI}}. Pour plus d’informations, veuillez-vous référer à l’étape 10 du blog de Microsoft [1].

Détection

Le billet de blogue de l’éditeur documente quelques éléments d’aide à la détection de ces vulnérabilités [1].

[Mise à jour du 05 octobre 2022]

Le CERT-FR recommande de réaliser une analyse approfondie des journaux réseau des serveurs IIS (sauvegardés par défaut dans le dossier : %SystemDrive%\inetpub\logs\LogFiles). Les commandes suivantes permettent d’identifier une exploitation de la vulnérabilité CVE-2022-41040  :

  • sur un système Windows : Get-ChildItem
    -Recurse -Path <Path_IIS_Logs> -Filter "*.log" | Select-String
    -Pattern '/powershell.*autodiscover.json.*200'
    ;
  • sur un système Linux : cat <Path_IIS_Logs>/*.log | grep -i -e '/powershell.*autodiscover.json.*200'.

Si une répartition de charge (load-balancing) est mise en œuvre, ces commandes doivent être appliquées sur les journaux de chacun des nœuds. Il est possible d’identifier une exploitation réussie de la CVE-2022-41040 si, à la suite de la première requête, une seconde requête HTTP de type POST commençant par le motif : /PowerShell a été exécutée par le serveur. Dans ce cas là, une analyse forensique des serveurs Exchange doit être engagée.

 

Documentation

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *