Active Directory : comment se protéger de la vulnérabilité Zerologon ?
Sommaire
I. Présentation
Nous avons connaissance de l'existence de la vulnérabilité critique Zerologon depuis quelques mois désormais. Néanmoins, pour se protéger de cette vulnérabilité qui touche l'Active Directory et cible directement les contrôleurs de domaine, il ne s'agit pas seulement d'installer une mise à jour Windows comme dans la majorité des cas. Dans ce tutoriel, je vais vous expliquer comment vous protéger de la vulnérabilité Zerologon.
Comme l'explique Microsoft dans sa documentation, pour protéger son système d'information complètement il y a quatre étapes à suivre minutieusement, notamment pour éviter les effets de bords. En bref, une mise à jour à installer, deux étapes préparatoires et une valeur dans le Registre Windows à déployer pour renforcer la partie authentification de l'Active Directory.
La faille Zerologon, référencée CVE-2020-1472, exploite une vulnérabilité au sein du protocole MS-NRPC, c'est-à-dire Netlogon Remote Protocol. Si vous souhaitez en savoir plus, je vous invite à lire mes deux articles au sujet de Zerologon :
⭐ Zerologon - Le correctif de février va bloquer les connexions non sécurisées
⭐ Zerologon - La faille critique qui touche l'Active Directory
Phase de renforcement - Ce qui va se passer en février 2021 :
La quatrième et dernière étape, qui correspond à la deuxième phase, est la plus contraignante, car elle va désactiver les connexions non sécurisées (c'est-à-dire les connexions sécurisées, mais vulnérables) sur vos contrôleurs de domaine. Elle se met en place par l'intermédiaire d'une valeur dans le registre.
C'est là qu'il peut y avoir des effets de bords si vous utilisez des systèmes d'exploitation obsolètes ou non Microsoft, voire même des périphériques qui se connectent à votre annuaire. À partir du 09 février 2021 et le Patch Tuesday de février 2021, Microsoft va intégrer à ses mises à jour l'activation automatique de ce paramètre dans le registre sur vos contrôleurs de domaine.
Si vous n'avez pas anticipé ce changement, vous pourriez rencontrer des problèmes sur certains postes et équipements de votre système d'information. D'où l'intérêt de s'y intéresser dès maintenant et de se protéger au plus tôt.
Le fait d'anticiper l'arrivée de cette mise à jour vous permettra également d'identifier les équipements problématiques et de les gérer comme exception à l'aide d'une GPO, nous y reviendrons.
II. Exploit pour la faille Zerologon
De nombreux outils trainent sur Internet et sont accessibles sans aller chercher bien loin : GitHub. Ces outils permettent d'exploiter la faille Zerologon sur une infrastructure en se prenant directement aux contrôleurs de domaine.
Le célèbre outil Mimikatz a même reçu une mise à jour en fin d'année 2020 pour permettre d'exploiter la faille Zerologon.
Ces quelques phrases doivent suffire à vous convaincre qu'il est indispensable de faire le nécessaire pour se protéger contre Zerologon. Le fait d'exploiter cette vulnérabilité critique permettra à l'attaquant de prendre le contrôle de votre contrôleur de domaine et ainsi devenir administrateur du domaine.
III. Les quatre phases pour se protéger de la vulnérabilité Zerologon
Les quatre étapes suivantes sont recommandées par Microsoft pour venir à bout de la faille Zerologon.
A. Installer le correctif d'août 2020
Vos contrôleurs de domaine doivent disposer au minimum du patch cumulatif sorti en août 2020 pour valider cette première étape. Malheureusement, si vous utilisez des contrôleurs de domaine en Windows Server 2008 R2, vous avez le droit également à un correctif.
Note : cette mise à jour s'applique aussi aux contrôleurs de domaine en lecture seule (RODC)
Voici la liste des correctifs que vous devez installer au minimum :
- Windows Server v2004 : KB4566782
- Windows Server v1909 : KB4565351
- Windows Server v1903 : KB4565351
- Windows Server 2019 : KB4565349
- Windows Server 2016 : KB4571694
- Windows Server 2012 R2 : KB4571723
- Windows Server 2012 : KB4571702
- Windows Server 2008 R2 via le support étendu
Si vos serveurs sont encore plus à jour, par exemple si vous avez déjà déployé les correctifs de janvier 2021, c'est mieux. L'essentiel étant d'avoir passé au minimum les mises à jour d'août 2020.
Cette mise à jour va servir à plusieurs choses :
✔ Ajouter un nouveau paramètre de GPO nommé "Contrôleur de domaine : autoriser les connexions de canaux sécurisés Netlogon vulnérables" ou en anglais "Domain controller: Allow vulnerable Netlogon secure channel connections" et disponible dans :
Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options
Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Options de sécurité
✔ Ajouter la prise en charge de la valeur "FullSecureChannelProtection" dans le Registre Windows et correspondante à la phase 4
✔ Ajouter de nouveaux événements (et ID) dans l'observateur d'événements de Windows dans le but d'identifier plus facilement les équipements qui ne supportent pas les connexions sécurisées
✔ Forcer l'utilisation d'une connexion RPC sécurisée pour les machines Windows et tous les contrôleurs de domaine. S'ajoutent à cela les comptes correspondants aux relations d'approbations.
B. Détecter les appareils non conformes
Suite à l'installation de cette mise à jour, vos contrôleurs de domaine vont gérer de nouveaux événements. Voici les informations fournies par Microsoft :
✔ EventID 5827 et 5828 : un compte utilisateur a tenté de s'authentifier sur votre contrôleur de domaine en utilisant un canal Netlogon sécurisé vulnérable. Le serveur a bloqué la connexion.
✔ EventID 5829 : une connexion Netlogon sécurisée vulnérable est autorisée. Ces événements sont à traiter avant d'appliquer la mise à jour de février ou d'activer le paramètre "FullSecureChannelProtection". Sinon, les appareils concernés ne seront plus en mesure de s'authentifier auprès de votre domaine.
Pour vous faciliter la tâche, vous pouvez utiliser le script PowerShell (qui nécessite Excel) fourni par Microsoft et qui va analyser l'observateur d'événement et générer un rapport Excel.
✔ EventID 5830 et 5831 : une connexion autorisée par l'intermédiaire du paramètre de GPO "Domain controller: Allow vulnerable Netlogon secure channel connections" / "Contrôleur de domaine : autoriser les connexions de canaux sécurisés Netlogon vulnérables"
Dans l'observateur d'événements, accédez au journal "Système" sous "Journaux Windows" et créez un filtre : clic droit sur "Système" puis "Filtrer le journal actuel".
En PowerShell, vous pouvez effectuer une recherche de cette façon :
Get-EventLog -LogName System -InstanceId 5827 Get-EventLog -LogName System -InstanceId 5827,5828,5829,5830,5831
Si vous ne collectez pas les journaux sur un système tel qu'un SIEM, répétez l'opération à intervalle régulier sur vos DCs. Le fameux équipement qui va vous créer des problèmes ne s'est peut-être pas encore manifesté. ?
C. Analyser les appareils identifiés comme non conformes
Par défaut, il y a des systèmes qui ne pourront plus fonctionner : Windows XP, Windows Vista et les versions serveur associées, c'est-à-dire Windows Server 2003 et Windows Server 2008.
Après, il reste la question de tous les systèmes et appareils non Microsoft. Concernant ces appareils, s'ils remontent dans l'observateur d'événements avec l'ID 5829, il faut trouver une solution. Vous pouvez prendre contact avec les éditeurs tiers.
L'intérêt d'effectuer ces phases de détection et d'analyse c'est de pouvoir gérer les exceptions dans une GPO qui va exploiter le paramètre ajouté par la mise à jour d'août. Ainsi, vous pouvez réaliser la quatrième étape sans pour autant rencontrer des problèmes sur les appareils non conformes. L'objectif étant à terme doit être de se passer de cette GPO pour se protéger intégralement contre la faille Zerologon.
D. Activer le paramètre FullSecureChannelProtection
Lorsque vous êtes prêt, il ne reste plus qu'une chose à faire : configurer la valeur FullSecureChannelProtection sur vos contrôleurs de domaine pour activer le mode "Domain Controller enforcement".
Avec la valeur "1", le mode sera actif et vous êtes protégé contre la faille Zerologon. A l'inverse, la valeur "0" permet de faire machine arrière. Cette valeur REG_DWORD se situe à l'emplacement suivant 1:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
À partir d'une stratégie de groupe, vous pouvez configurer cette valeur dans le registre. Il suffira d'appliquer la GPO sur l'unité d'organisation "Domain Controllers" de votre annuaire puisqu'elle contient vos contrôleurs de domaine.
Configuration ordinateur > Préférences > Paramètres Windows > Registre
Clic droit > Nouveau > Elément Registre et configurez-le comme ceci :
Pour rappel, c'est cette opération qui sera effectuée automatiquement par la mise à jour de février 2021.
À partir de ce moment-là, il n'y a que deux types d'appareils qui pourront s'authentifier :
✔ Ceux qui utilisent un canal RPC sécurisé (non vulnérable)
✔ Ceux qui sont configurés dans le nouveau paramètre de GPO qui permet de gérer des exceptions
IV. Comment autoriser les appareils non-Windows à se connecter via Netlogon ?
Terminons cet article par la gestion des exceptions à l'aide du paramètre de GPO "Contrôleur de domaine : autoriser les connexions de canaux sécurisés Netlogon vulnérables".
Je vous invite à créer un groupe de sécurité sur votre annuaire Active Directory. Ce groupe Active Directory doit contenir tous les comptes/ordinateurs qui sont autorisés à utiliser un canal Netlogon vulnérable.
Lorsque votre groupe est prêt, créez une nouvelle stratégie de groupe (ou utilisez celle créée pour la valeur de registre). Cette stratégie de groupe devra s'appliquer à l'ensemble des contrôleurs de domaine : liez cette GPO à l'OU "Domain Controllers".
Accédez à l'arborescence suivante :
Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Options de sécurité
Modifiez le paramètre "Contrôleur de domaine : autoriser les connexions de canaux sécurisés Netlogon vulnérables" afin de le configurer. Cochez la case "Définir ce paramètre de stratégie" et cliquez sur "Modifier la sécurité".
Ajoutez le groupe créé précédemment, par exemple dans mon cas il s'agit du groupe "NetlogonInsecure". Il n'est pas nécessaire de redémarrer vos serveurs pour appliquer les changements.
J'espère que les explications de cet article pourront vous aider à vous protéger du danger représenté par la faille Zerologon. En complément, vous pouvez consulter la documentation de Microsoft :
Bonjour,
Merci pour cet article très intéressant (comme toujours).
Le redémarrage du contrôleur de domaine est-il nécessaire après modification de la clé de registre FullSecureChannelProtection ?
Bonne continuation
Bonjour,
Non une simple actualisation des GPO sans reboot devrait suffire 😉
Bonne soirée
Florian
Bonjour,
Merci beaucoup de cet article qui je l’espère va m’éviter bien des déboires.
Juste une question la semaine prochaine, je migre mon AD de 2008R2 vers 2019.
J’ai encore des serveurs de fichiers en 2003R2 (oui je sais mais pas pu faire autrement pour le moment)
Si j’ai bien compris, pour que ces derniers continuent de fonctionner correctement je dois les ajouter à la GPO décrite à l’étape « IV – Comment autoriser les appareils non-Windows à se connecter via Netlogon » ?
Merci par avance
Génial. Merci beaucoup.
Bonjour Yan,
Oui c’est l’idée 🙂
Cordialement,
Florian
Hi Florian.B,
Merci pour ces tonnes d’articles et ceux qui sont publiés quotidiennement…
petite erreur de frappe pour la ligne de Windows Server 2016. Il faut juste rajouter un chiffre manquant au KB, soit : KB4571694 ( idem pour l’article : https://www.it-connect.fr/zerologon-le-correctif-de-fevrier-va-bloquer-les-connexions-non-securisees/ )
Hello Z 🙂
J’ai corrigé merci !
Bonne fin de journée
Florian
Bonjour,
J’ai mis à jour les serveurs et j’observe l’event viewer depuis quelques jours. Malgré que j’ai encore des serveurs sous Windows Server 2003 je n’ai aucune remontée concernant ces serveurs. Pourtant ils devraient être « non-compliant » ?
Merci pour votre travail !
Bonjour,
Merci Florian de cet article très intéressant mais j’ai le même souci que la personne précédente :
J’ai beau avoir tous mes contrôleurs de domaine à jour, je n’ai aucune remonté d’erreur (dans le journal des événements ) malgré moi aussi la présence de plusieurs serveurs en 2003 et 2008.
La clef dans la base de registre (FullSecureChannelProtection) et le paramètre de sécurité dans les GPO sont bien présentes mais non paramétrés avant de pouvoir identifiés les ordis ,bizarre……
Merci par avance de votre aide/ pistes
Bonjour,
C’est étonnant, ou alors il y a un truc que j’ai mal compris ?
A partir du serveur 2008, si tu testes la connexion entre ton serveur et le domaine avec la commande « Test-ComputerSecureChannel » (PowerShell 5.1), ça donne quoi ?
Si les mises à jour viennent d’être installées, il faut patienter un peu qu’il y ait des connexions.
Cordialement,
Florian
Bonjour Florian,
Je viens de faire le test, bien que n’étant pas à la même version que toi :
PS C:\> $PSVersionTable
Name Value
—- —–
CLRVersion 2.0.50727.8806
BuildVersion 6.0.6002.18111
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
La commande existe , renvoie cette information:
PS C:\> Test-ComputerSecureChannel
True
PS C:\>
Ça me parait pas mal non ? cela signifierait-il que je n’aurais pas de souci avec les 2008 ?
Je cherche le même type de commande pour mes 2003 (si tu la connais, j’suis preneur) et te faire un retour asap.
De plus, j’ai trouvé cet article: https://medium.com/@aaron.margosis/clarifying-cve-2020-1472-zerologon-d42d1d14849e plutôt encourageant 😉
Cordialement,
Jonathan
Pour faire suite à mon précédent message, j’ai testé cela avec mes 2003:
C:\>nltest /query
Flags: 0
Connection Status = 0 0x0 NERR_Success
The command completed successfully
C:\>
Plutôt encourageant non ?