Huy Kha | Architecte principal de l'identité et de la sécurité

Le dilemme de l'intrus est l'envers du dilemme du défenseur, qui explique les défis de la défense de la cybersécurité. Si la défense de l'Active Directory (AD) contre toutes les techniques d'attaque possibles est un défi pour les défenseurs, les attaquants ont un problème différent : une fois qu'ils sont entrés, ils doivent éviter de se faire prendre.

Les attaquants peuvent n'avoir besoin que d'une seule faiblesse pour obtenir l'accès, mais il est beaucoup plus difficile de rester indétecté. Ils doivent maintenir leur accès, se déplacer latéralement, élever leurs privilèges et atteindre leurs objectifs sans déclencher d'alarmes ni se faire enfermer.

Et si nous pouvions tourner le dilemme de cet intrus à notre avantage ?

Comment transformer une attaque en une défense AD pratique

Comprendre comment les mauvais acteurs recherchent et utilisent les vulnérabilités est essentiel pour la défense de l'AD. Pour illustrer la valeur de ces connaissances, nous allons nous pencher sur une méthode courante d'attaque de l'identité qui exploite les mauvaises configurations des certificats.

Les attaques contre les services de certificats Active Directory (AD CS) ont fait l'objet d'une attention particulière après la publication par SpecterOps d'une recherche sur la façon dont les configurations erronées dans AD CS peuvent être exploitées pour l'escalade des privilèges et la persistance. Son rapport Certified Pre-Owned1 décrit plusieurs techniques, notamment ESC1, ESC4 et Golden Certificates, qui permettent aux attaquants d'abuser de l'authentification basée sur les certificats pour compromettre des comptes privilégiés. Depuis la publication de cette étude, les acteurs de la menace et les "red teams" ont de plus en plus utilisé cestechniques2, faisant d'AD CS une cible de grande valeur.

C'est là que les défenseurs peuvent renverser la situation. Lorsque vous mettez en place un pot de miel - comme un modèle de certificat leurre qui semble vulnérable - les attaquants sont obligés de faire un choix. Ils peuvent soit tenter d'exploiter ce qui ressemble à une mauvaise configuration, risquant ainsi de s'exposer, soit l'ignorer et chercher un autre moyen d'escalader les privilèges.

Imaginons qu'un attaquant recherchant des modèles de certificats mal configurés en trouve un pour lequel il dispose de droits de modification. Il peut tenter d'activer la fonction Supply in Request ce qui leur permettrait de spécifier une identité privilégiée dans une demande de certificat.

Le piège est tendu.

AVERTISSEMENT : Le fait de déployer un modèle d'autorité de certification leurre et de le rendre intentionnellement vulnérable à des attaques telles que ESC1 et ESC4 élargit la surface d'attaque. Cependant, avec les bons mécanismes de sécurité en place pour détecter ces menaces et y remédier, cette approche peut s'avérer efficace.

Création d'un piège à miel avec un modèle de certificat leurre : Exemple 1

La figure 1 montre ce qu'un pirate trouve lorsqu'il utilise un outil comme Certify3 pour rechercher des modèles de certificats exploitables.

Figure 1. Ce modèle de certificat vulnérable donne aux ordinateurs du domaine un contrôle total, ce qui permet de le modifier.

Ce certificat, CiscoSSLVPNprend en charge l'authentification du client et permet aux ordinateurs du domaine de s'inscrire. Mais comme msPKI-Certificate-Name-Flag n'est pas réglé sur ENROLLEE_SUPPLIES_OBJECTl'attaque ESC1 ne fonctionnera pas.

Lorsque l'attaquant consulte les attributs AD du fichier CiscoSSLVPN certificat (Figure 2), ils constatent que le msPKI-Certificate-Name-Flag est fixée à 134217728ce qui correspond à SUBJECT_ALT_REQUIRE_DNS. Cela signifie que le Supply in Request n'est pas activée.

Figure 2. Cette sortie PowerShell montre le CiscoSSLVPN les attributs du modèle de certificat, avec msPKI-Certificate-Name-Flag fixé à 134217728, indiquant SUBJECT_ALT_REQUIRE_DNS.

Étant donné que dans cet exemple, nous avons accordé aux ordinateurs de domaine le contrôle total sur ce modèle d'autorité de certification, notre attaquant pourrait tirer parti des avantages suivants msDs-MachineAccountQuota (Figure 3), qui est fixé à 10 par défaut, pour créer un nouvel objet ordinateur, s'authentifier en tant que compte de l'ordinateur, puis modifier le modèle d'autorité de certification.

Figure 3. Cette sortie PowerShell montre l'utilisation de Powermad pour créer un nouveau compte machine (TestPC) en s'appuyant sur msDs-MachineAccountQuotaqui est fixé à 10 par défaut dans AD.

Ensuite, l'attaquant s'authentifie en tant que compte de l'ordinateur et modifie le modèle de l'autorité de certification pour le rendre vulnérable à l'ESC1(figure 4).

Figure 4. Cette session PowerShell est exécutée en tant que TestPC$ en modifiant le compte de la machine msPKI-Certificate-Name-Flag sur le CiscoSSLVPN pour le rendre vulnérable à l'ESC1.

Notre attaquant vérifie maintenant les attributs AD du modèle CA modifié. Il constate que l'attribut msPKI-Certificate-Name-Flag a changé (Figure 5), qui reflète la modification qui la rend exploitable.

Figure 5. Cette sortie PowerShell montre la version modifiée de CiscoSSLVPN où le modèle de certificat msPKI-Certificate-Name-Flag a changé, ce qui le rend vulnérable à l'ESC1.

Du côté de la défense AD : Dans Directory Services Protector DSPvous pouvez maintenant voir une entrée enregistrant le changement AD sur le modèle de l'autorité de certification leurre(Figure 6), mettant en évidence l'attribut spécifique qui a été modifié.

Figure 6. Notre journal DSP montre la modification de la CiscoSSLVPN où le modèle de certificat msPKI-Certificate-Name-Flag a été modifiée, ce qui permet de poursuivre les recherches sur le compte responsable de l'action.

La DSP indique également qui a modifié le modèle d'autorité de certification(figure 7), ce qui vous permet d'enquêter sur le compte responsable de la modification et de détecter toute autre activité suspecte.

Figure 7. Notre journal DSP confirme également que le CiscoSSLVPN a été modifié par le modèle de certificat TestPC$ compte informatique.

Création d'un piège à miel avec un modèle de certificat leurre : Exemple 2

Les WebServer est couramment utilisé pour émettre des certificats SSL/TLS pour Windows Server Update Services (WSUS), Active Directory Federation Services (ADFS), Internet Information Services (IIS), les serveurs web et les répartiteurs de charge. Il garantit une communication cryptée sur HTTP. Par défaut, il est configuré avec Supply in Requestmais comme l'utilisation étendue de la clé (EKU) est fixée à Server AuthenticationESC1 ne peut pas être exploité (Figure 8).

Figure 8. Ici, PowerShell affiche les attributs de l'élément WebServer modèle de certificat, montrant que Supply in Request (CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT) est activé, mais l'EKU est réglé sur Server Authentication.

Pour mettre en place notre piège, vous pouvez commencer par dupliquer le fichier WebServer et lui donner un nom réaliste pour qu'il paraisse légitime. Ensuite, modifiez la DACL pour la faire ressembler à une configuration légitime en autorisant un faux compte d'ordinateur, tel que WSUS-2016pour s'inscrire.

Dans le même temps, le modèle est intentionnellement mal configuré en accordant des droits d'écriture aux utilisateurs authentifiés(figure 9), ce qui crée une possibilité d'exploitation.

Figure 9. Notre sortie PowerShell montre le modèle de certificat WebServer modifié, où un faux compte d'ordinateur (WSUS-2016$) a des permissions d'inscription, et les utilisateurs authentifiés ont été mal configurés avec des permissions d'écriture, ce qui rend le modèle vulnérable à l'exploitation.

Figure 10 montre à quoi ressemble la reconnaissance pour un attaquant qui identifie des modèles d'AC exploitables, où les utilisateurs authentifiés ont des droits d'écriture sur le leurre. WSUSSSLCert modèle.

Figure 10. Cette sortie PowerShell montre le WSUSSSLCert modèle de certificat, où les utilisateurs authentifiés ont WriteProperty ce qui leur permet de modifier des attributs tels que EKU.

Notre attaquant examine maintenant les valeurs actuelles des attributs AD de ce modèle d'autorité de certification, en se concentrant plus particulièrement sur l'attribut msPKI-Certificate-Application-Policy qui définit l'utilisation autorisée du certificat (Figure 11).

Figure 11. Sortie PowerShell affichant les attributs de l'élément WSUSSSLCert modèle de certificat, en mettant en évidence le msPKI-Certificate-Application-Policy valeur. L'identificateur d'objet 1.3.6.1.5.5.7.3.1 correspond à l'authentification du serveur.

Maintenant, ils modifient ce modèle d'autorité de certification pour le rendre exploitable par l'ESC1, puis vérifient comment le modèle d'autorité de certification est exploité par l'ESC1. msPKI-Certificate-Application-Policy les changements de valeur (Figure 12).

Figure 12. PowerShell montre la modification de l'élément WSUSSSLCert où le modèle de certificat msPKI-Certificate-Application-Policy a été remplacé par 1.3.6.1.5.5.7.3.2en activant l'authentification du client. Cette modification rend le modèle vulnérable à l'ESC1.

En tant que Figure 13 les spectacles, les msPKI-Certificate-Application-Policy a été mis à jour avec un identifiant d'objet différent, correspondant désormais à l'authentification du client.

Figure 13. PowerShell affiche la version mise à jour du WSUSSSLCert où le modèle de certificat msPKI-Certificate-Application-Policy a été modifié en 1.3.6.1.5.5.7.3.2en activant l'authentification du client. Maintenant, le modèle n'est pas seulement vulnérable, il est aussi exploitable pour ESC1.

La dernière étape de notre attaquant consiste à accorder des autorisations d'inscription sur le modèle d'autorité de certification, ce qui lui permet de l'exploiter(figure 14).

Figure 14. Cet extrait montre comment l'attaquant a accordé aux utilisateurs authentifiés des autorisations d'inscription sur l'élément WSUSSSLCert à l'aide de PowerView.

Du côté de la défense AD : Dans DSP, il y a maintenant une entrée dans le journal des changements AD indiquant que quelqu'un a modifié cet attribut AD spécifique sur le modèle CA(Figure 15).

Figure 15. Notre journal DSP montre une modification de la WSUSSSLCert où le modèle de certificat msPKI-Certificate-Application-Policy a été modifiée, passant de l'authentification du serveur à l'authentification du client.

Une autre entrée sera enregistrée dans la DSP , indiquant que l'attribut Security Descriptor a été modifié sur le modèle de l'AC leurre(figure 16).

Figure 16. Le journal de la DSPrévèle la modification du descripteur de sécurité sur le serveur WSUSSSLCert Modèle CA.

La clé des leurres dans la défense AD : Créer une règle de notification dans DSP

Dans la DSP, vous pouvez créer une règle de notification pour les modèles de certificats leurres(Figure 17) afin que toute modification apportée à ces derniers déclenche une alerte.

Figure 17. Cette règle de notification DSP , définie pour le WSUSSSLCert est configuré pour déclencher une alerte chaque fois qu'une modification est apportée au modèle de certificat msPKI-Certificate-Application-Policy attribut.

Lorsque quelqu'un modifie cet attribut AD sur le modèle d'autorité de certification leurre, la DSP envoie une notification par courrier électronique contenant des détails sur l'auteur de la modification, le contrôleur de domaine sur lequel elle s'est produite et d'autres informations pertinentes(figure 18).

Figure 18. Une notification par courrier électronique de la DSP vous avertit des modifications apportées au modèle de l'autorité de certification leurre.

Aperçu de Semperis

Pour les organisations qui utilisent ADCS, la mise en place de pièges à miel peut être un moyen précieux de détecter les attaquants avant qu'ils ne puissent escalader leurs privilèges. Les erreurs de configuration de l'ADCS sont de plus en plus souvent exploitées dans des attaques réelles, comme le souligne le rapport de Mandiant4 sur les tactiques de post-exploitation d'Ivanti. En déployant des modèles de certificats leurres qui semblent vulnérables mais sont étroitement surveillés, les défenseurs AD peuvent inciter les attaquants à se dévoiler au moment où ils tentent de l'exploiter.

En savoir plus sur la défense proactive d'Active Directory

Références

  1. https://specterops.io/wp-content/uploads/sites/3/2022/06/Certified_Pre-Owned.pdf
  2. https://attack.mitre.org/techniques/T1649/
  3. https://github.com/GhostPack/Certify
  4. https://cloud.google.com/blog/topics/threat-intelligence/ivanti-post-exploitation-lateral-movement