CERTFR-2019-ALE-002
Vulnerability from certfr_alerte - Published: - Updated:
[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].
None| Title | Publication Time | Tags | |
|---|---|---|---|
|
|
|||
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [
{
"description": "Microsoft Exchange Server versions 2010 et ult\u00e9rieures d\u00e9ploy\u00e9es en utilisant un mod\u00e8le d\u0027autorisation de type RBAC (le mod\u00e8le d\u2019autorisation de type AD Split n\u0027est pas impact\u00e9).",
"product": {
"name": "N/A",
"vendor": {
"name": "Microsoft",
"scada": false
}
}
}
],
"affected_systems_content": null,
"closed_at": "2019-03-06",
"content": "## Solution\n\nLe 12 f\u00e9vrier 2019, Microsoft a publi\u00e9 un correctif de s\u00e9curit\u00e9 int\u00e9gr\u00e9\ndans une mise \u00e0 jour cumulative et en a d\u00e9taill\u00e9 les modalit\u00e9s\nd\u0027installation dans un billet de blogue \\[5\\].\n\nMicrosoft indique avoir effectu\u00e9 des changements profonds dans\nl\u2019authentification des\u00a0*Exchange Web Services (EWS) Push\nNotifications*.\u00a0 Ces changements ont \u00e9t\u00e9 test\u00e9s sur des applicatifs\ncourants sans qu\u0027aucun effet de bord n\u0027ait \u00e9t\u00e9 constat\u00e9. Les pr\u00e9cautions\nd\u0027usage sont \u00e0 respecter avant une mise en production. Cette mise \u00e0 jour\nest consid\u00e9r\u00e9e critique et devrait \u00eatre appliqu\u00e9e dans les plus brefs\nd\u00e9lais.\n\nIl est ensuite recommand\u00e9 de r\u00e9initialiser les identifiants des serveurs\nExchange qui sont stock\u00e9s dans l\u0027Active Directory, soit par le biais de\nla\ncmdlet\u00a0[Reset-ComputerMachinePassword](https://docs.microsoft.com/powershell/module/microsoft.powershell.management/reset-computermachinepassword?view=powershell-5.1),\nsoit par\u00a0[netdom ou Active Directory Users and\nComputers](https://support.microsoft.com/help/216393/resetting-computer-accounts-in-windows)\nsi Powershell n\u0027est pas disponible.\n\nLes droits d\u0027Exchange dans l\u0027Active Directory ont \u00e9galement \u00e9t\u00e9 r\u00e9duits\nen modifiant les descripteurs de s\u00e9curit\u00e9 \u00e0 la racine du domaine. Se\nr\u00e9f\u00e9rer au billet de Microsoft pour le s\u00e9quencement ainsi que les\nparam\u00e8tres \u00e0 utiliser pour appliquer la mise \u00e0 jour.\n\nLe 13 f\u00e9vrier 2019, le CERT-FR a publi\u00e9 l\u0027avis de\ns\u00e9curit\u00e9\u00a0CERTFR-2019-AVI-065 \\[6\\].\n\n## Contournement provisoire\n\nAfin de limiter les risques d\u0027escalade de privil\u00e8ge selon le sc\u00e9nario\nd\u00e9crit ci-dessus, le CERT-FR recommande d\u0027appliquer les mesures\nsuivantes:\n\n1. Filtrer les flux initi\u00e9s par les serveurs *Microsoft Exchange*. \n Il convient de filtrer les flux initi\u00e9s depuis les serveurs Exchange\n vers les autres machines du r\u00e9seau, notamment vers les postes de\n travail des utilisateurs. De mani\u00e8re g\u00e9n\u00e9rale, seuls les flux\n n\u00e9cessaires au bon fonctionnement doivent \u00eatre autoris\u00e9s (DC,\n Exchanges, etc.).\n2. Modifier le descripteur de s\u00e9curit\u00e9 \u00e0 la racine du domaine *Active\n Directory*, en ajoutant l\u0027attribut \"*Inherit_only*\" sur les access\n control entities (ACE) dangereuses \\[2\\]. Ces ACE permettent la\n modification du descripteur de s\u00e9curit\u00e9 *(WRITE_DAC)* du domaine.\n Cette modification bien que simple et r\u00e9versible n\u0027est toutefois pas\n support\u00e9e par Microsoft.\n\nIl est \u00e9galement possible de v\u00e9rifier une \u00e9ventuelle tentative\nd\u0027exploitation en consultant les journaux EWS \\[3\\].\n\nComme tout \u00e9l\u00e9ment de contournement, il est important d\u0027\u00eatre prudent\nlors de la mise en \u0153uvre. Il est \u00e0 noter que l\u0027ensemble des \u00e9l\u00e9ments\nrecommand\u00e9s \u00e0 ce jour est r\u00e9versible.\n\nLe 5 f\u00e9vrier 2019, Microsoft a publi\u00e9 un bulletin de s\u00e9curit\u00e9 relatif \u00e0\nla vuln\u00e9rabilit\u00e9 d\u0027\u00e9l\u00e9vation de privil\u00e8ges dans *Microsoft Exchange.* Ce\nbulletin pr\u00e9sente une m\u00e9thode de contournement provisoire bas\u00e9e sur la\nd\u00e9finition d\u0027une politique limitant le processus de notifications EWS\n\\[4\\].\n",
"cves": [],
"links": [
{
"title": "[5] Billet de blogue Microsoft du 12 f\u00e9vrier 2019",
"url": "https://blogs.technet.microsoft.com/exchange/2019/02/12/released-february-2019-quarterly-exchange-updates/"
},
{
"title": "[6] Avis CERT-FR CERTFR-2019-AVI-065 Multiples vuln\u00e9rabilit\u00e9s dans Microsoft Exchange",
"url": "https://www.cert.ssi.gouv.fr/avis/CERTFR-2019-AVI-065/"
},
{
"title": "[1] Billet de blogue de M. Mollema",
"url": "https://dirkjanm.io/abusing-exchange-one-api-call-away-from-domain-admin/"
},
{
"title": "[2] Script pour modifier la DACL et ajouter l\u0027attribut \"Inherit_only\"",
"url": "https://github.com/gdedrouas/Exchange-AD-Privesc/blob/master/DomainObject/DomainObject.md"
},
{
"title": "[3] Journaux EWS",
"url": "https://ingogegenwarth.wordpress.com/2017/01/12/troubleshooting-exchange-with-logparser-ews-logs/"
}
],
"reference": "CERTFR-2019-ALE-002",
"revisions": [
{
"description": "Version initiale",
"revision_date": "2019-01-30T00:00:00.000000"
},
{
"description": "mise \u00e0 jour des contournements provisoires et ajout d\u0027un bulletin Microsoft",
"revision_date": "2019-02-06T00:00:00.000000"
},
{
"description": "Publication d\u0027une mise \u00e0 jour de s\u00e9curit\u00e9 et ajout de l\u0027avis CERTFR-2019-AVI-065",
"revision_date": "2019-02-13T00:00:00.000000"
},
{
"description": "Cl\u00f4ture de l\u0027alerte.",
"revision_date": "2019-03-06T00:00:00.000000"
}
],
"risks": [
{
"description": "\u00c9l\u00e9vation de privil\u00e8ges"
}
],
"summary": "\u003cstrong\u003e\\[Mise \u00e0 jour du 13/02/2019 : publication d\u0027un correctif de s\u00e9curit\u00e9\net de recommandations de la part de Microsoft, ainsi que d\u0027un avis de\ns\u00e9curit\u00e9 du CERT-FR (cf. section Documentation)\\]\u003c/strong\u003e\n\n\u003cstrong\u003e\\[Mise \u00e0 jour du 06/02/2019 : mise \u00e0 jour des contournements\nprovisoires et ajout d\u0027un bulletin Microsoft (cf. section\nDocumentation)\\]\u003c/strong\u003e\n\nLe 21 janvier, un chercheur a r\u00e9v\u00e9l\u00e9 publiquement une vuln\u00e9rabilit\u00e9 de\ntype \u00e9l\u00e9vation de privil\u00e8ges sur l\u0027\u00e9cosyst\u00e8me *Microsoft Exchange* et\n*Active Directory*\\[1\\].\n\nUn ensemble de faiblesses connues ont \u00e9t\u00e9 combin\u00e9es afin de permettre \u00e0\nun \"utilisateur standard\"\u00a0du domaine d\u0027\u00e9lever ses privil\u00e8ges jusqu\u0027au\nniveau \"administrateur de domaine\". L\u0027auteur de ce blogue fournit \u00e0 la\nfois les \u00e9l\u00e9ments techniques et les codes d\u0027exploitation.\n\nTrois faiblesses sont utilis\u00e9es :\n\n1. *Microsoft Exchange* supporte l\u0027API *\u003ca\n href=\"https://docs.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/dd877045(v%3Dexchg.140)\"\n target=\"_blank\" rel=\"noopener\"\u003eExchange Web Services\u003c/a\u003e* (EWS),\n dont l\u0027une des fonctions est *\u003ca\n href=\"https://docs.microsoft.com/pt-br/dotnet/api/microsoft.exchange.webservices.data.pushsubscription?view=exchange-ews-api\"\n target=\"_blank\" rel=\"noopener\"\u003ePushSubscription\u003c/a\u003e.* Celle-ci\u00a0\n permet \u00e0 un \"utilisateur standard\" de demander au serveur *Microsoft\n Exchange* d\u0027initier des communications authentifi\u00e9es \u00e0 destination\n d\u0027une ressource qu\u0027il ma\u00eetrise ;\n2. par conception, l\u0027authentification NTLM permet des attaques de type\n relai ;\n3. les comptes machines des serveurs *Microsoft Exchange* disposent\n d\u0027un haut niveau de privil\u00e8ge sur l\u0027*Active Directory \\[2\\]*.\n\nL\u0027attaquant peut obtenir, depuis sa ressource ma\u00eetris\u00e9e, une\nauthentification valide d\u0027un compte machine d\u0027un serveur *Microsoft\nExchange* (1.).\n\nUne fois cette \u00e9tape franchie, il peut relayer cette authentification\naupr\u00e8s d\u0027un contr\u00f4leur de domaine *Active Directory* (2.).\n\nLes droits d\u0027acc\u00e8s de ce compte permet ensuite de modifier les\npermissions appliqu\u00e9es au domaine et d\u0027obtenir les droits\n\"administrateur de domaine\" du domaine\u00a0*Active Directory* (3.).\n",
"title": "Vuln\u00e9rabilit\u00e9s affectant l\u0027\u00e9cosyst\u00e8me Microsoft Exchange et Active Directory",
"vendor_advisories": [
{
"published_at": null,
"title": "[4] Bulletin de s\u00e9curit\u00e9 Microsoft ADV190007 du 5 f\u00e9vrier 2019",
"url": "https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/adv190007"
}
]
}
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.