Risque
- Élévation de privilèges
Systèmes affectés
- Microsoft Exchange Server versions 2010 et ultérieures déployées en utilisant un modèle d'autorisation de type RBAC (le modèle d’autorisation de type AD Split n'est pas impacté).
Résumé
[Mise à jour du 13/02/2019 : publication d'un correctif de sécurité et de recommandations de la part de Microsoft, ainsi que d'un avis de sécurité du CERT-FR (cf. section Documentation)]
[Mise à jour du 06/02/2019 : mise à jour des contournements provisoires et ajout d'un bulletin Microsoft (cf. section Documentation)]
Le 21 janvier, un chercheur a révélé publiquement une vulnérabilité de type élévation de privilèges sur l'écosystème Microsoft Exchange et Active Directory[1].
Un ensemble de faiblesses connues ont été combinées afin de permettre à un "utilisateur standard" du domaine d'élever ses privilèges jusqu'au niveau "administrateur de domaine". L'auteur de ce blogue fournit à la fois les éléments techniques et les codes d'exploitation.
Trois faiblesses sont utilisées :
- Microsoft Exchange supporte l'API Exchange Web Services (EWS), dont l'une des fonctions est PushSubscription. Celle-ci permet à un "utilisateur standard" de demander au serveur Microsoft Exchange d'initier des communications authentifiées à destination d'une ressource qu'il maîtrise ;
- par conception, l'authentification NTLM permet des attaques de type relai ;
- les comptes machines des serveurs Microsoft Exchange disposent d'un haut niveau de privilège sur l'Active Directory [2].
L'attaquant peut obtenir, depuis sa ressource maîtrisée, une authentification valide d'un compte machine d'un serveur Microsoft Exchange (1.).
Une fois cette étape franchie, il peut relayer cette authentification auprès d'un contrôleur de domaine Active Directory (2.).
Les droits d'accès de ce compte permet ensuite de modifier les permissions appliquées au domaine et d'obtenir les droits "administrateur de domaine" du domaine Active Directory (3.).
Solution
Le 12 février 2019, Microsoft a publié un correctif de sécurité intégré dans une mise à jour cumulative et en a détaillé les modalités d'installation dans un billet de blogue [5].
Microsoft indique avoir effectué des changements profonds dans l’authentification des Exchange Web Services (EWS) Push Notifications. Ces changements ont été testés sur des applicatifs courants sans qu'aucun effet de bord n'ait été constaté. Les précautions d'usage sont à respecter avant une mise en production. Cette mise à jour est considérée critique et devrait être appliquée dans les plus brefs délais.
Il est ensuite recommandé de réinitialiser les identifiants des serveurs Exchange qui sont stockés dans l'Active Directory, soit par le biais de la cmdlet Reset-ComputerMachinePassword, soit par netdom ou Active Directory Users and Computers si Powershell n'est pas disponible.
Les droits d'Exchange dans l'Active Directory ont également été réduits en modifiant les descripteurs de sécurité à la racine du domaine. Se référer au billet de Microsoft pour le séquencement ainsi que les paramètres à utiliser pour appliquer la mise à jour.
Le 13 février 2019, le CERT-FR a publié l'avis de sécurité CERTFR-2019-AVI-065 [6].
Contournement provisoire
Afin de limiter les risques d'escalade de privilège selon le scénario décrit ci-dessus, le CERT-FR recommande d'appliquer les mesures suivantes:
- Filtrer les flux initiés par les serveurs Microsoft Exchange.
Il convient de filtrer les flux initiés depuis les serveurs Exchange vers les autres machines du réseau, notamment vers les postes de travail des utilisateurs. De manière générale, seuls les flux nécessaires au bon fonctionnement doivent être autorisés (DC, Exchanges, etc.). - Modifier le descripteur de sécurité à la racine du domaine Active Directory, en ajoutant l'attribut "Inherit_only" sur les access control entities (ACE) dangereuses [2]. Ces ACE permettent la modification du descripteur de sécurité (WRITE_DAC) du domaine. Cette modification bien que simple et réversible n'est toutefois pas supportée par Microsoft.
Il est également possible de vérifier une éventuelle tentative d'exploitation en consultant les journaux EWS [3].
Comme tout élément de contournement, il est important d'être prudent lors de la mise en œuvre. Il est à noter que l'ensemble des éléments recommandés à ce jour est réversible.
Le 5 février 2019, Microsoft a publié un bulletin de sécurité relatif à la vulnérabilité d'élévation de privilèges dans Microsoft Exchange. Ce bulletin présente une méthode de contournement provisoire basée sur la définition d'une politique limitant le processus de notifications EWS [4].
Documentation
- [4] Bulletin de sécurité Microsoft ADV190007 du 5 février 2019 https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/adv190007
- [1] Billet de blogue de M. Mollema https://dirkjanm.io/abusing-exchange-one-api-call-away-from-domain-admin/
- [2] Script pour modifier la DACL et ajouter l'attribut "Inherit_only" https://github.com/gdedrouas/Exchange-AD-Privesc/blob/master/DomainObject/DomainObject.md
- [3] Journaux EWS https://ingogegenwarth.wordpress.com/2017/01/12/troubleshooting-exchange-with-logparser-ews-logs/
- [5] Billet de blogue Microsoft du 12 février 2019 https://blogs.technet.microsoft.com/exchange/2019/02/12/released-february-2019-quarterly-exchange-updates/
- [6] Avis CERT-FR CERTFR-2019-AVI-065 Multiples vulnérabilités dans Microsoft Exchange https://www.cert.ssi.gouv.fr/avis/CERTFR-2019-AVI-065/