Sécurité Active Directory : Guide Complet
Sécurité Active Directory : Guide Complet
com
03 Introduction
04 Active Directory
05 Technique d'attaque 1 :
16 Technique d'attaque 2 :
23 Technique d'attaque 3 :
28 Technique d'attaque 4 :
Attaque DCShadow
32 Technique d'attaque 5 :
AS-REP Torréfaction
37 Technique d'attaque 6 :
42 Technique d'attaque 7 :
47 Conclusion
48 Les références
Active Directory (AD), introduit avec Windows 2000 [1], est devenu partie intégrante des organisations
modernes, servant d'épine dorsale de l'infrastructure d'identité pour 90 % des entreprises Fortune 1000 [2].
Active Directory est largement utilisé par les organisations pour sa simplicité et son approche de gestion
centralisée. Il s'agit d'une solution attrayante pour les entreprises car elle permet aux employés d'accéder plus
facilement aux ressources et aux applications avec un seul ensemble d'informations d'identification, ce qui
augmente la productivité et l'efficacité [3]. De plus, sa structure de gestion centralisée fournit un point de
contrôle unique aux administrateurs informatiques, leur permettant de gérer les utilisateurs, les ordinateurs et
l'accès aux ressources en un seul endroit [4].
Cependant, en raison de son utilisation répandue et de ses limites architecturales, Active Directory devient un
handicap en cas de faille de sécurité et devient une cible prioritaire pour les adversaires cherchant à élever leurs
privilèges, à infecter plusieurs systèmes et à lancer des attaques dévastatrices telles que l'exfiltration de données,
l'attaque complète du système. compromissions et ransomwares.
Les plus grands défis en matière de récupération après une violation AD incluent l’identification de la source, la
détermination de l’étendue des dommages et la création d’un nouvel environnement sécurisé. Selon le rapport 2022 Data
Breach Investigations de Verizon [5], 80 % des violations proviennent d'agents externes, et comme le souligne le rapport
2021 d'IBM sur le coût d'une violation de données, une fois qu'un administrateur de domaine est piraté, les attaquants
peuvent se cacher dans votre réseau jusqu'à 277 jours avant la détection, ce qui représente une menace importante [6].
L'utilisation généralisée et la facilité d'accès aux ressources pour les employés rendent difficile pour les
organisations de retirer Active Directory (AD) obsolète et d'adopter des alternatives plus sécurisées comme
Microsoft Azure Active Directory (AAD). La transition vers AAD résout certaines des limitations d'AD en automatisant
les tâches administratives telles que la gestion des utilisateurs et l'attribution des appartenances à des groupes
pour une efficacité améliorée [7]. Cependant, les mêmes risques de sécurité subsistent, car une compromission de
l’infrastructure d’identité peut avoir des conséquences dévastatrices. Les adversaires peuvent également exploiter
Microsoft Endpoint Manager pour passer latéralement d'un locataire Azure à un domaine AD sur site, créant ainsi
des chemins d'attaque entre des environnements de gestion des identités distincts [8].
L'importance de la sécurité d'Active Directory ne peut être surestimée, et les organisations doivent être
préparées avec des plans de reprise après sinistre et une surveillance vigilante pour arrêter les attaques avant
que le système ne soit corrompu ou ne devienne irréparable. Le choix entre AD et AAD dépendra largement
des besoins et des ressources de l’organisation, mais le risque de compromis demeure quel que soit le choix.
L'utilisation sécurisée et efficace d'Active Directory nécessite une compréhension claire des risques potentiels
et un engagement envers les pratiques et protocoles de sécurité.
Active Directory (AD) est un service d'annuaire crucial pour la gestion des ressources réseau dans les
réseaux Windows. Il permet de centraliser la gestion de diverses ressources réseau, notamment les
comptes d'utilisateurs et d'ordinateurs, les ressources et les politiques de sécurité. De cette
manière, AD facilite une gestion efficace et sécurisée des réseaux dans une structure hiérarchique.
AD fonctionne sur une structure hiérarchique composée de domaines au niveau supérieur et de divers objets
imbriqués à l'intérieur, tels que des utilisateurs, des ordinateurs et des groupes. La structure est conçue pour
fournir un moyen organisé et efficace de gérer les ressources du réseau et garantit que les politiques de
sécurité sont appliquées de manière cohérente sur l'ensemble du réseau.
AD utilise Lightweight Directory Access Protocol (LDAP) pour la communication entre les
domaines et les contrôleurs de domaine. LDAP est un protocole de service d'annuaire qui permet
la gestion de services d'annuaire distribués sur un réseau IP. De plus, AD utilise Kerberos, un
protocole d'authentification sécurisé pour l'authentification sur un réseau. Cela garantit que
seuls les utilisateurs et ordinateurs autorisés peuvent accéder aux ressources du réseau,
améliorant ainsi la sécurité du réseau.
Pour gérer efficacement les ressources réseau, Active Directory utilise des objets de stratégie de groupe
(GPO). Les GPO sont utilisés pour contrôler et appliquer les politiques de sécurité, le déploiement de logiciels
et d'autres tâches administratives sur le réseau. AD prend également en charge les appels de procédure à
distance (RPC), permettant la gestion à distance des ressources réseau. Cela garantit que les administrateurs
réseau peuvent gérer efficacement les ressources réseau à partir d'un emplacement centralisé, quel que soit
l'emplacement des ressources elles-mêmes.
Cependant, Active Directory n'est pas à l'abri des attaques, et les attaques contre AD peuvent avoir des
conséquences désastreuses pour le réseau. Les attaques Active Directory réussies comportent trois étapes
principales : la découverte, l'élévation des privilèges via le vol d'informations d'identification de compte
valides et l'accès à d'autres ordinateurs du réseau/domaine. Une fois que les attaquants ont pris pied dans le
réseau cible, ils se concentrent immédiatement sur l’obtention d’un accès privilégié à des systèmes
supplémentaires qui les aideront à atteindre leur objectif final, comme le chiffrement et l’exfiltration des
données de l’organisation.
En résumé, Active Directory est un composant essentiel pour gérer et sécuriser les ressources réseau
dans les réseaux Windows. Sa structure hiérarchique et ses diverses fonctionnalités, telles que LDAP et
Kerberos, GPO et RPC, assurent une gestion efficace et sécurisée des ressources réseau. Pour assurer
la sécurité de votre réseau, il est essentiel de protéger Active Directory contre les attaques en mettant
en œuvre des mesures de sécurité strictes et en maintenant les protocoles de sécurité à jour pour
empêcher tout accès non autorisé aux ressources du réseau.
Les attaques contradictoires sur un système peuvent souvent contourner les contrôles d'accès normaux en utilisant des
matériaux d'authentification alternatifs tels que des hachages de mots de passe, des tickets Kerberos et des jetons d'accès
aux applications. Cette technique, connue sous le nomT1550dans le cadre MITRE ATT&CK, permet aux attaquants de se
déplacer latéralement dans un environnement et d'obtenir un accès non autorisé.
Cette section fournira une description détaillée de deux sous-techniques de la technique Utiliser des
méthodes d'authentification alternatives (T1150) :Passez le hachage(T1550.002) etPassez le billet (
T1550.003).
Pass-the-Hash (PtH) est une attaque basée sur l'identité qui est exploitée par les attaquants pour
accéder à des systèmes et privilèges supplémentaires au sein d'un réseau une fois qu'ils ont déjà
compromis le système.
UNhacherest une sortie digérée unique d'une fonction mathématique unidirectionnelle qui prend une entrée de
différentes tailles (peut être aussi longue qu'un roman classique ou courte comme un mot de passe à 8 chiffres) et
renvoie une chaîne de caractères de taille fixe. Comme ces fonctions sont conçues pour être unidirectionnelles, ce
qui signifie qu'ayant une sortie, il devrait être informatiquement impossible pour un adversaire d'inverser la sortie,
c'est-à-dire d'obtenir l'entrée en texte clair, le hachage de mot de passe reste une pratique de sécurité répandue
contre la violation de données. attaques.
NTLMest une méthode d'authentification unique qui utilise un système de défi-réponse pour vérifier l'identité
de l'utilisateur sans nécessiter le mot de passe de l'utilisateur. Par conséquent, cette technique d’attaque
n’exige pas que les adversaires utilisent des outils de piratage tiers, car la version en texte brut du mot de
passe n’est pas nécessaire ; par conséquent, cela élimine le besoin d’effectuer des opérations de craquage
fastidieuses.
Si un attaquant obtient le hachage NTLM du mot de passe d'un utilisateur par des moyens tels que son extraction de
[Link]émoire ou à partir du%systemroot%\system32\config\SAMfichier, en le capturant lors des transmissions
réseau ou en le supprimant à partir d'une sauvegarde ou d'une image d'un système, ils peuvent utiliser le mot de
passe haché en transmettant le hachage à un système distant qui reconnaît le compte de l'utilisateur compromis. En
fonction des privilèges et du niveau d'accès de l'utilisateur compromis, les adversaires peuvent obtenir un accès
complet au système et mener avec succès des attaques par mouvements latéraux.
Il est important de noter qu’il ne s’agit pas d’une vulnérabilité, mais plutôt d’un choix de conception
délibéré visant à réduire les frictions et à améliorer l’expérience utilisateur globale.
Les attaques Pass-the-Hash (PtH) peuvent être exécutées en utilisant divers outils accessibles au public,
tels queMimikatz[9] etle mal-gagne[10], ainsi que intégréPowerShellapplets de commande. Les
attaquants utilisent souvent ces outils ou commandes pour extraire le hachage de la mémoire d'un
système compromis, puis l'utiliser pour accéder à d'autres systèmes du réseau.
Outil 1 : Mimikatz
Pour afficher une liste des utilisateurs récemment connectés et leurs informations d'identification du système d'exploitation, les
adversaires utilisent souvent lesekurlsamodule dansMimikatz, qui exploite un certain nombre de techniques différentes pour
extraire les informations d'authentification deLSASSmémoire, y compris l'analyse des structures de mémoire et l'utilisation des API
Windows. Le "mots de passe de connexion" La fonction de ce module extrait spécifiquement les données de session de connexion
telles que les hachages de mots de passe enregistrés et les informations d'identification mises en cache. Cela peut inclure les
informations de connexion de l'utilisateur actuel, ainsi que les informations des autres utilisateurs qui se sont connectés à la même
machine.
Notez qu'avant d'exploiter lesekurlsa :: mots de passe de connexioncommande, les attaquants doivent exécuter le
privilège ::débogagecommande afin que le Mimikatz puisse fonctionner correctement.
Par défaut, LSASS fonctionne avec une intégrité élevée et est protégé contre le débogage par des processus
non autorisés. Cependant, en activant le privilège du débogueur, l'attaquant peut contourner cette protection
et accéder à la mémoire LSASS pour extraire les données de session de connexion.
PS> .\ [Link] " privilège ::débogage " " sekurlsa :: mots de passe de connexion "
Ayant ce hachage NTLM, il est temps pour les adversaires de passer à la deuxième étape.
Il est important de noter queMimikatzn'est pas le seul moyen de vider les hachages NTLM. Les adversaires
exploitent souvent d'autres applications de ligne de commande intégrées ou des outils tiers, tels que ProcDump[11]
etGsecdump[12], pour le dumping de titres de compétences.
C'est leétape principaleoù l'adversaire transmet le hachage pour usurper l'identité de l'utilisateur et
accéder au système distant.
Le "sekurlsa :: pth" commande dansMimikatzest une fonctionnalité qui facilite les attaques « Pass-the-
Hash ». Cette technique permet à un attaquant de s'authentifier auprès d'un système distant en utilisant un
hachage NTLM capturé du mot de passe d'un utilisateur,sans avoir besoin du mot de passe réel. Pour
exécuter cette commande, l'attaquant doit fournir uniquement les paramètres suivants :
● /utilisateur:(l'identifiant),
Notez que les mots de passe Windows ne sont pas seulement limités au protocole NTLM, mais peuvent
également utiliser des algorithmes de chiffrement par blocs populaires tels queAES-128etAES-256pour le
stockage des mots de passe. Dans de tels cas, les adversaires devraient utiliser le/aes128 :ou/aes256 :
paramètres au lieu de/ntlm :.
utilisateur :Alice
domaine : [Link]
programme : [Link]
imprègne. : Non
NTLM :a0c8746a6efc7782c7c19c55185145be
...
Remarquez avec quelle facilité nous avons accès à un système distant sans connaître uniquement le nom d'utilisateur et le
hachage NTLM du mot de passe de la victime.
Dans la troisième étape, l'attaquant utilise le compte utilisateur nouvellement obtenu pour étendre son accès au
réseau. Par exemple, l'adversaire peut utiliser un utilitaire de ligne de commande appeléPsExecpour exécuter
du code à distance sur un autre hôte.
Par exemple, l'attaquant peut exécuter la commande suivante pour exécuter le "[Link]" processus sur
la machine distante avec une adresse IP interne « [Link] » :
[Link]\\[Link]
Mimikatzn'est pas le seul moyen d'effectuer une attaque Pass-the-Hash. Les adversaires utilisent souvent le
PowerShell, aussi.
Il est courant que les adversaires utilisent leInvoquer-WMIExeccmdlet, qui permet l'exécution de commandes
arbitraires sur une machine Windows distante à l'aide de WMI (Windows Management Instrumentation),
pour effectuer une attaque PtH.
Le fait qu'il s'agisse d'une applet de commande intégrée rend l'attaque utilisant Invoke-WMIExec plus secrète, car
elle ne nécessite aucun téléchargement ou installation supplémentaire.
Par exemple, disposant d'un hachage de mot de passe de l'utilisateur appelé Alice de notre scénario précédent,
un adversaire peut exécuter la commande suivante.
Invoquer-WmiExec-cible 192.168.52.146a0c8746a6efc7782c7c19c55185145be
- nom d'utilisateur Alice -commandenom d'hôte
Outil 3 : Evil-Winrm
Le "le mal-gagne" est un joyau Ruby qui permet l'exécution de commandes à distance sur une machine
Windows à l'aide du protocole Windows Remote Management (WinRM). Comme evil-winrm n'est pas un
outil intégré, les adversaires doivent l'installer avant de l'utiliser. Diverses installations les options sont
disponibles dans le référentiel GitHub correspondant [10].
Dans une attaque Pass-the-Hash utilisantle mal-gagne, l'attaquant spécifie le nom d'utilisateur, le hachage
NTLM et l'adresse IP du système cible comme paramètres dans la commande evil-winrm [14].
Par exemple, la commande suivante peut être utilisée pour effectuer une attaque PtH sur une machine
Windows avec l'adresse IP [Link], en utilisant le nom d'utilisateur « Alice » et le hachage NTLM «
a0c8746a6efc7782c7c19c55185145be" :
Avec ces informations,le mal-gagneétablit une connexion à distance avec le système cible et
s'authentifie en tant qu'utilisateur spécifié (Alice), permettant à l'attaquant d'exécuter des commandes
arbitraires sur la machine distante.
Ci-dessous, les ID d'événement connus sont ajoutés pour détecter une éventuelle attaque Pass-the-Hash [15], [16], [17],
[18] :
● Champs de description clés :ID de processus, masque d'accès, domaine du compte, nom de l'objet,
● Champs de description clés :Étiquette obligatoire, domaine du compte, nom du processus source, nouveau
Pour atténuer le risque d’attaques par hachage, les organisations peuvent recourir à plusieurs mesures techniques.
L'une de ces mesures consiste à permettreProtection des informations d'identification Windows Defender, une
fonctionnalité introduite dansWindows 10etWindows Serveur 2016. Cet outil exploite la virtualisation pour sécuriser le
stockage des informations d'identification et restreindre l'accès aux processus approuvés uniquement.
Randomiser et stocker les mots de passe des administrateurs locaux avec une solution comme celle de Microsoft
Solution de mot de passe d'administrateur local(LAPS) ajoute également une couche de sécurité supplémentaire, car il
réduit la capacité d'un attaquant à se déplacer latéralement avec des comptes locaux partageant le même mot de passe.
Il est également recommandé d'empêcher les comptes locaux de s'authentifier sur le réseau, ce qui peut être réalisé
grâce à l'utilisation de noms de domaine bien [Link]'est dans les politiques de groupe.
Pass the Ticket (PtT) est une technique qui permet à un attaquant d'utiliser un ticket Kerberos Ticket
Granting Ticket précédemment acquis. Le TGT est un composant crucial du protocole Kerberos, car il
permet à un utilisateur de s'authentifier sur plusieurs systèmes sans avoir à saisir son mot de passe à
chaque fois.
Le Ticket Granting Ticket (TGT) est un type de ticket émis par le contrôleur de domaine (DC) à un utilisateur
après une authentification réussie sur le domaine. Il comprend des informations cruciales telles que la clé de
session de l'utilisateur, l'appartenance à un groupe et les privilèges, qui sont utilisées pour demander des
tickets de service pour des services spécifiques sur les systèmes cibles. Kerberos chiffre le TGT à l'aide du
hachage du mot de passe de l'utilisateur et utilise des algorithmes de chiffrement symétriques (tels que DES
ou AES) en fonction de la configuration de l'environnement Kerberos. Après cryptage, le TGT est envoyé à
l'ordinateur de l'utilisateur et stocké en mémoire.
Lorsque l'utilisateur souhaite accéder à une ressource sur un autre système, il utilise le TGT pour
demander un ticket de service au DC. Le ticket de service est également chiffré avec la clé de session
de l'utilisateur et contient une clé de session chiffrée qui peut être utilisée pour s'authentifier auprès
du système cible. Le ticket de service est ensuite envoyé à l'ordinateur de l'utilisateur, où il est utilisé
pour s'authentifier auprès du système cible.
Ayant une clé TGT volée, un adversaire peut demander un ticket de service au DC pour un
service spécifique sur un système cible afin d'accéder à ses ressources.
Les attaques Pass-the-Ticket (PtH) peuvent être exécutées en utilisant divers outils accessibles au
public, tels queMimikatz,Kékéo[19],Rubéus[20],Creddump7[21], etc. Les attaquants utilisent
souvent ces outils pour extraire les TGT Kerberos de la mémoire d'un système compromis, puis les
utilisent pour accéder à d'autres systèmes du réseau.
En examinant les noms [Link], il est possible de déterminer s'il existe des tickets
Kerberos pour un administrateur de domaine, tels queDOMAINE\Alice:
La deuxième commande,rép | trouver "Alice" | findstr "krbtgt", répertorie tous les fichiers du répertoire
actuel et redirige la sortie vers letrouverstrcommande pour rechercher le texte "krbtgt". Le but de cette
commande est de rechercher le(s) fichier(s) de ticket Kerberos liés à l'utilisateur "Alice", qui peuvent inclure
la chaîne "krbtgt" dans le nom du fichier.
A noter que Mimikatz n'est pas le seul outil permettant d'obtenir des tickets Kerberos. Les adversaires peuvent
employer leRubéus[20] outil pour générer du brutSUR DEMANDEtrafic afin de demander un TGT
avec un nom d'utilisateur et un mot de passe fournis. L'avantage de cette attaque est que le mot
de passe fourni à Rubeus peut être crypté dansRC4,DESetAESalgorithmes, et l’attaque
fonctionnerait toujours [22].
Dans cette étape, l'attaquant utilise leMimikatzcommandekerberos ::pttpour insérer le TGT obtenu dans
leur propre session, ce qui fait que leur session prend leidentitéetautorisations du TGT volé pour un
accès futur aux ressourcessans connaître les informations d'identification en clair. Cela permet à
l'adversaire d'accéder à des ressources qui seraient autrement protégées par l'authentification Kerberos
[23].
* Déposer:
'C:\KerberosTickets\[0;1e4c7df] -2-0-40e10000-joed@[Link] ': D'ACCORD
Notez que la commande ci-dessus est utilisée pour insérer le ticket Kerberos Ticket Granting (TGT) stocké
dans le fichier correspondant..kirbifichier dans la session en cours.
Pour s’assurer que le bon ticket a été injecté, un adversaire peut utiliser le «kerberos :: liste»
Mimikatzcommande.
Il est important de mentionner que le TGT a une durée de vie limitée et qu’il expirera après un
certain temps. L'utilisateur devra se réauthentifier auprès du domaine pour obtenir un nouveau
TGT.
Une fois qu'un ticket obtenu est prêt à être réutilisé, l'attaquant doit identifier ses capacités, c'est-à-dire où
il peut être utilisé. Un TGS ne peut donner accès qu'à la ressource spécifique pour laquelle il a été émis, et
l'attaquant peut découvrir ces informations en examinant le TGS.
Pour utiliser un TGT, l'attaquant devra peut-être effectuer une phase de découverte interne pour déterminer l'accès
qu'il accorde. Cela peut être aussi simple que de vérifier l’appartenance à un groupe de l’utilisateur et de rechercher
des signes clairs.
De nombreux outils peuvent être utilisés pour recueillir des informations sur Active Directory. Cependant,
un attaquant peut également utiliser des commandes intégrées telles que "filet" pour recueillir de telles
informations sans alerter les contrôles de sécurité.
Commentaire de l'utilisateur
Enfin, l'attaquant peut utiliser les utilitaires intégrés du système d'exploitation pour déplacerlatéralementde manière
furtive afin qu'ils puissent essayer d'accéder à d'autres ressources et poursuivre leurs objectifs. Par exemple,
l'adversaire pourrait tirer parti duPsExecutilitaire de ligne de commande pour exécuter [Link] sur un poste de
travail distant.
Ci-dessous, les ID d’événement connus sont ajoutés pour détecter une éventuelle attaque Pass-the-Ticket [15], [16] :
● Champs de description clés :Nom du compte, nom du service (toujours "krbtgt"), identifiant du service,
adresse du client
Les mesures efficaces pour contrer les attaques pass-the-hash visent à rendre les tickets plus difficiles à
voler et à limiter l'impact potentiel d'un ticket volé. L'une de ces mesures consiste à utiliser Windows
Defender Credential Guard de Microsoft. Cette technologie, introduite dans Windows 10 et Windows
Server 2016, exploite la virtualisation pour sécuriser le stockage des informations d'identification et
fournir un accès uniquement aux processus approuvés.
Une autre étape importante consiste à limiter le nombre de points de terminaison sur lesquels les utilisateurs disposent
de privilèges administratifs. Cela réduit considérablement le risque qu'un attaquant utilise un ticket volé pour un
mouvement latéral. Il est également important d’éviter d’accorder des privilèges administratifs au-delà des limites de
sécurité, car cela réduit considérablement le risque qu’un attaquant utilise un ticket volé pour élever ses privilèges.
Grillage des Kerberosest une technique utilisée pour obtenir des hachages de mot de passe pourActive Directory
(AD) comptes d'utilisateurs qui ontservicePrincipalName(SPN).
Dans les environnements AD,SPNLes s sont enregistrés sur des comptes d'utilisateurs ou d'ordinateurs, appelés "
comptes de service. " Ces comptes sont utilisés pour exécuter des services et des applications, et ils bénéficient
généralement de l'autorisationmoindre privilègenécessaires à l'exercice de leur fonction. Lorsqu'un client demande
un service à un serveur, il utilise le SPN pour localiser le compte de service lié au service. Le client s'authentifie
ensuite auprès du service à l'aide des informations d'identification du compte de service, qui sont stockées sous
forme de hachage de mot de passe dans AD.
Dans le cas de Kerberoasting, un attaquant peut exploiter la valeur SPN d'un compte de service pour
demander un ticket de service (TGS). Le billet TGS peut être crypté (viaRC4) avec le hachage du mot de passe
du compte de service attribué au SPN demandé comme clé. Cela signifie qu'un attaquant qui capture des
tickets TGS dans le trafic réseau ou les extrait de la mémoire peut extraire le hachage du mot de passe du
compte de service et effectuer une attaque par force brute hors ligne pour récupérer le mot de passe en
clair.
Grillage des Kerberosest une méthode permettant d'obtenir les informations d'identification d'un compte de
service en demandant des tickets de service à un contrôleur de domaine et en les déchiffrant hors ligne. Il permet à
l'attaquant d'accéder aux ressources du réseau en utilisant le hachage du mot de passe du compte de service.
Passez le billet, d'autre part, est une technique par laquelle un attaquant vole un ticket d'octroi de tickets (TGT)
Kerberos de la session d'un utilisateur et l'utilise pour usurper l'identité de l'utilisateur afin d'accéder aux
ressources du réseau.
Les attaques Kerberoasting peuvent être exécutées à l'aide de divers outils et utilitaires accessibles au
public, tels que les scripts Impacket.
Pour cette attaque, non pas un seul outil est utilisé, mais plutôt une collaboration entre eux, comme
Mimikatz, Rubéus,Impacket,Jean l'éventreur,Hashcat.
Outil 1 : Impacket
L'attaque Kerberoasting exploitant le script Impacket se compose de trois parties principales.
LeImpacketLe script GetUserSPNs (Python) peut effectuer toutes les étapes nécessaires pour demander un ST pour un service
compte tenu de son SPN et des informations d'identification de domaine valides [24] :
# avec un hachage NT
[Link] -outputfile [Link] -hashes'LMhash : NThash'-dc-ip
$KeyDistributionCenter'DOMAINE/UTILISATEUR'
Avoir volé des mots de passe dans [Link], l'adversaire peut effectuer une
attaque par force brute hors ligne pour obtenir le mot de passe en clair à l'aide d'outils tiers, tels que
Jean l'éventreuretHashcat.
La commande ci-dessus utilise le--format=krb5tgsflag pour spécifier que les hachages dans le
fichier "[Link]" sont au formatKerberos 5 TGS(Service d'octroi de billets) et
- - liste de motsindicateur pour spécifier l'emplacement du fichier de liste de mots à utiliser dans le processus de craquage. Une fois
la commande exécutée,Johnva essayer de trouver une correspondance entre les hachages de mot de passe et les mots du fichier de
liste de mots.
Une fois le mot de passe déchiffré, l'attaquant peut utiliser les informations d'identification du compte de service pour
accéder aux ressources du réseau et poursuivre ses objectifs. Cela peut inclure l’exfiltration de données, le
déplacement latéral au sein du réseau ou l’augmentation de leurs privilèges.
Outil 2 : Rubeus
L'attaque Kerberoasting qui exploite Rubeus se compose de quatre parties principales.
La première étape d'une attaque Kerberoasting consiste à identifier et à énumérer les noms principaux de
service (SPN) des comptes de service ciblés avec les privilèges souhaités.
Pour cette raison, les adversaires peuvent développer des filtres LDAP personnalisés pour rechercher les utilisateurs avec des
valeurs SPN enregistrées pour le domaine actuel [25].
$[Link] =$ldapFilter
$[Link] ="Sous-arbre"
# Exécuter la recherche
$résultats=$[Link] tout()
# Afficher les valeurs SPN des objets renvoyés
$Résultats=pour chaque($résultatdans$résultats) {
$result_entry=$ré[Link]()
$result_entry|Sélectionner un objet@{
Nom ="Nom d'utilisateur"; Expression = {$_.sAMACompteName }
}, @{
Nom ="SPN"; Expression = {$_.servicePrincipalName |Sélectionner un objet
- D'abord1}
}
}
$Résultats
● leclasse de serviceet
● lenom d'hôte.
La classe de service est le nom du service, tel que « HTTP » ou « ldap », et le nom d'hôte est
le nom d'hôte DNS ou l'adresse IP de la machine sur laquelle le service est exécuté. Par
exemple, un SPN pour un serveur Web peut être
"HTTP/[Link]", où "HTTP" est la classe de service et
"[Link]" est le nom d'hôte.
Un attaquant peut cibler des comptes de service spécifiques en identifiant et en énumérant leurs noms
principaux de service (SPN), puis demander des tickets TGS (Ticket Granting Service) pour ces comptes de
service. Des outils tels queRubéuspeut être utilisé pour automatiser ce processus en extrayant les hachages
de mot de passe de la mémoire [26].
PS>Obtenir du contenu.\[Link]
$krb5tgs$23$*ServiceAccount1$[Link]$http/webserver1*$45FAD4676AECDDE4C1397BF
CED441F79$DEB. . .
L'étape suivante de l'attaque consiste à obtenir les mots de passe en clair des comptes de service. Ce processus
est effectué à l'aide d'une attaque par force brute hors ligne, ce qui signifie que l'attaquant n'a pas besoin de
communiquer avec le répertoire actif, ce qui le rend indétectable.
Pour réaliser cette tâche, l'attaquant peut utiliser différents outils tels queJean l'éventreuret Hashcat,
spécialement conçus pour le piratage de mots de passe avec des dictionnaires de mots de passe
courants :
● -m 13100: Cet indicateur est utilisé pour spécifier le type de hachage, dans ce cas Kerberos 5 TGS
(Ticket Granting Service)
● - o cracké.txt: Cet indicateur est utilisé pour spécifier le fichier de sortie dans lequel les mots de passe
craqués seront enregistrés
● - un 0: Ce drapeau est utilisé pour spécifier le mode d'attaque, dans ce cas 0 signifie mode d'attaque
"Straight".
La commande spécifie également les chemins de fichiers dumot de [Link] de [Link]. Une fois la
commande exécutée,Hashcatva essayer de trouver une correspondance entre les hachages de mot de passe dans le
fichier [Link] et les mots dans le fichier [Link].
Une fois le mot de passe déchiffré, l'attaquant peut utiliser les informations d'identification du compte de service pour
accéder aux ressources du réseau et poursuivre ses objectifs.
Par exemple, disposant des informations d'identification du compte, l'adversaire peut utiliser lecourir commeoutil avec le /net
uniquementparamètre à exécuterPowerShellcomme le "Compte de service1" utilisateur.
Il est possible d'identifier divers signes de Kerberoasting en observant le journal des événements Windows pour détecter
les demandes inhabituelles de service d'octroi de tickets (TGS) [27], [28].
Pour protéger les mots de passe des comptes de service contre les attaques Kerberoasting, plusieurs mesures peuvent
être prises telles que [29] :
Ceci est également connu sous le nomBlindage Kerberos. Cette extension de pré-authentification crée un
canal sécurisé entre le client et le contrôleur de domaine, visant à améliorer la protection des tickets
Kerberos contre les tentatives de piratage de mot de passe hors ligne. Même si FAST peut éradiquer la
menace posée par Kerberoasting, sa mise en œuvre rapide et efficace dans une organisation peut s'avérer
difficile.
Bien que complètement invalidantRC4est une tâche majeure, il est possible de configurer des comptes de
service individuels pour ne pas accepter le protocole RC4. En définissant l'attribut msDS-
SupportedEncryptionTypesà0x18(décimal 24), seulementAES128etAES256sera activé. Ce changement améliore
non seulement la sécurité, mais facilite également la détection des activités malveillantes, comme l'utilisation
de RC4 dans unTGSla demande est un indicateur plus fort.
Technique d'atténuation 3 :Adopter de solides pratiques d'hygiène des mots de passe pour les comptes de
service
Les mots de passe des comptes de service doivent être générés de manière aléatoire, comporter une longueur minimale de 30
caractères et être modifiés fréquemment.
L'attaque Golden Ticket consiste à falsifier un ticket Kerberos pour obtenir un accès non autorisé à un
système informatique en tant qu'utilisateur privilégié. Pour mener l'attaque, un attaquant doit obtenir le
NTHashde lakrbtgtcompte, le compte responsable du cryptage et de la signature de tous les tickets au
sein d'un domaine, ainsi que l'identifiant de sécurité du domaine (SID). Grâce à ces informations,
l'attaquant peut créer un ticket doré frauduleux qui imite un ticket légitime émis par le serveur
d'authentification du domaine. Ce ticket doré offre à l'attaquant la possibilité d'accéder à des informations
et des ressources sensibles sur le système ciblé.
Les adversaires peuvent utiliser plusieurs outils tiers tels queMimikatzetImpacketpour effectuer une
attaque Golden Ticket.
Outil 1 : Impacket
Dans ce scénario, nous supposerons que lors d'une attaque Kerberoasting, un attaquant a vidé un fichier
de hachage et l'a craqué pour obteniradministrateuraccès auContrôleur de domaine. En d’autres termes,
nous avons le mot de passe en clair d’un utilisateur administrateur pouvant accéder au contrôleur de
domaine. De plus, notre nom de domaine [Link] l'efficacité.
Une attaque Golden Ticket typique avec Impacket se compose de deux parties principales.
Pour créer un ticket doré valide, certaines informations sont requises, comme leNTHashdu contrôleur de
domainekrbtgtcompte et leID de domaine. Ces informations peuvent être obtenues en utilisant le
[Link] deImpacket, à condition que l'attaquant dispose d'un accès administrateur au
contrôleur de domaine. Ci-dessous, vous trouverez la syntaxe appropriée pour vider NTHash pour le
compte krbtgt [30].
Ensuite, l'attaquant doit connaître le SID du domaine. Pour cela, ils peuvent tirer parti de la solution Impacket.
[Link]. Notez que même si l’attaquant choisit le contrôleur de domaine comme cible, cette attaque
fonctionne avec n’importe quel contrôleur de domaine.
Enfin, l'attaquant utilise le code d'[Link] pour forger un ticket en or pour un utilisateur
de domaine. L'un des avantages de [Link] est que le faux ticket est écrit dans [Link] au
lieu [Link]; en d’autres termes, l’attaquant n’a pas besoin de le convertir.
Notez que la commande ci-dessus est un exemple d'attaquant forgeant un ticket en or pour une
administrateur de domaine inexistant, Alice.
Pour configurer l'utilisation du ticket doré, leKRB5CCNOMLa variable d'environnement doit être définie sur le
chemin [Link], qui peut être un chemin de fichier absolu ou relatif. La variable d'environnement
KRB5CCNAME est utilisée pour indiquer aux outils Impacket qui prennent en charge les tickets Kerberos où
trouver le ticket. Cela permet à l'attaquant d'utiliser le ticket doré pour accéder au système en tant
qu'utilisateur privilégié [30].
Ensuite, l'adversaire peut utiliser les outils d'exécution de commandes d'Impacket, tels [Link],
[Link], [Link], pour charger et s'authentifier avec le ticket, donnant éventuellement à
l'adversaire une exécution de commande. Pour que l'authentification Kerberos fonctionne, l'adversaire doit
fournir l'adresse IP de la cible, l'adresse IP du contrôleur de domaine et le nom de domaine.
Notez que même si le-pas de passeL'option indique au script d'ignorer l'authentification par mot de
passe, le-kL'option spécifie que le ticket Kerberos doit être extrait duKRB5CCNOM variable
d'environnement. Le but de ce script est d'exécuter des commandes à distance sur l'ordinateur cible
en utilisant l'authentification Kerberos sans avoir à saisir de mot de passe.
Outil 2 : Mimikatz
Une attaque Golden Ticket typique avec Impacket se compose de trois parties principales.
Comme c'était le cas avec le scénario Impacket, pour qu'une attaque Golden Ticket fonctionne, un adversaire
doit disposer d'un accès administrateur à un contrôleur de domaine. Nous partirons donc de cette hypothèse.
PS>[Link]"lsadump :: dcsync/utilisateur:DOMAINE\KRBTGT"
Informations d'identification:
Remarquerez que "lsadump :: dcsync /user: DOMAINE\KRBTGT" est un argument de ligne de commande pour
Mimikatz qui lui demande d'effectuer un "Synchronisation DC" opération utilisant le compte utilisateur
"DOMAINE\KRBTGT", qui est le compte par défaut utilisé par le service d'authentification Kerberos
dans les environnements Windows Active Directory [31].
Après avoir accès au hachage du mot de passe KRBTGT, ils peuvent utiliser Mimikatz pour falsifier des tickets
Kerberos. Cela peut impliquer la création d’un faux ticket d’octroi de tickets (TGT) pour un compte utilisateur
inexistant.
Pour forger un TGT, l'attaquant doit fournir certaines informations au Mimikatz kerberos ::doré
fonction : le nom de domaine complet du domaine, l'identifiant de sécurité du domaine (SID), le
hachage du mot de passe de l'utilisateur KRBTGT (en utilisantAES-256, et alternativementAES-128,
NTLM, ouRC4), le nom d'utilisateur à emprunter, le RID des groupes à inclure dans le ticket, le
premier étant le groupe principal de l'utilisateur et lepttindicateur pour indiquer si le ticket falsifié
doit être injecté dans la session en cours au lieu de
en l'enregistrant dans un fichier :
Notez qu'avec le/identifiantflag l'adversaire a indiqué l'identifiant de l'utilisateur pour lequel il souhaite créer le
ticket. Dans ce cas, l'attaquant passe le500valeur pour le/identifiantdrapeau pour créer un Administrateurcompte.
Le nom du compte utilisateur peut être n'importe quoi, comme indiqué dans l'exemple.
L'attaquant peut utiliser le faux ticket pour accéder aux ressources intégrées à Kerberos. Le TGT est
signé et crypté avec le véritable hachage du mot de passe KRBTGT, ce qui en fait une preuve
d'identité valide aux yeux de tout contrôleur de domaine. Le contrôleur de domaine émettra ensuite
des tickets de service d'octroi de tickets (TGS) basés sur le TGT.
À mesure que l'attaquant obtient plus d'informations sur l'environnement, il peut utiliser les tickets falsifiés pour
accéder à des applications, des bases de données ou d'autres ressources qui utilisent Active Directory pour
l'authentification et l'autorisation. L'attaquant peut cibler des groupes spécifiques en incluant leur RID dans le
processus de falsification de tickets. Par exemple, ils pourraient découvrir le groupe « Administrateurs MSSQL » avec
le RID correspondant lors d'une phase de découverte, ce qui pourrait leur donner accès à des bases de données
précieuses [31].
● Champs de description clés :ID de sécurité, nom du compte, domaine du compte, ID de connexion
Pour se prémunir contre les attaques Kerberoasting, il est recommandé de prendre des mesures pour limiter l'accès
des adversaires et rendre plus difficile pour eux l'obtention du hachage du mot de passe de l'utilisateur KRBTGT. Ceci
peut être réalisé grâce aux actions suivantes [31], [32] :
Les organisations ne doivent pas permettre aux utilisateurs de posséder des privilèges administratifs au-delà
des limites de sécurité. Par exemple, un attaquant qui accède à un poste de travail ne devrait pas pouvoir
élever ses privilèges pour cibler le contrôleur de domaine.
Les comptes de service dotés de privilèges élevés, tels que les administrateurs de domaine, ne doivent être accordés que
lorsque cela est nécessaire. En limitant le nombre de ces comptes, les organisations peuvent réduire le nombre de cibles
pour un attaquant recherchant le hachage KRBTGT.
Il est important de changer le mot de passe de l'utilisateur KRBTGT régulièrement et immédiatement après tout
changement de personnel responsable de l'administration d'Active Directory. Le mot de passe doit être modifié
deux fois, avec un intervalle de 12 à 24 heures entre les deux changements, pour éviter toute interruption de
service.
Attaque DCShadow
Une attaque DC Shadow est un type d'attaque sur un environnement Active Directory dans lequel un attaquant
introduit uncontrôleur de domaine malveillant(DC) dans le réseau et y réplique les modifications des contrôleurs de
domaine légitimes. L'attaquant crée d'abord des changements dans l'environnement, comme l'ajout de nouveaux
objets ou la modification d'objets existants, puis attend que les changements soient répliqués sur les contrôleurs de
domaine légitimes. Ils enregistrent ensuite les noms principaux de service (SPN) pour le contrôleur de domaine
malveillant et l'enregistrent dans l'espace de noms de configuration, lui permettant ainsi de s'authentifier et de
communiquer avec d'autres contrôleurs de domaine. L'attaquant déclenche la réplication des modifications apportées
au contrôleur de domaine malveillant, qui les réplique, permettant ainsi aux modifications de persister dans
l'environnement. Enfin, l'attaquant supprime les SPN et le DC malveillant, couvrant ainsi leurs traces et laissant
l'environnement dans un état compromis. Ce type d'attaque permet à l'attaquant de persister et de contrôler le réseau
en effectuant des modifications qui sont répliquées sur d'autres contrôleurs de domaine.
Les adversaires utilisent souventMimikatzcomme outil pour exécuter la technique d'attaque DCShadow.
Outil 1 : Mimikatz
Avant d'aller plus loin, nous devons supposer que l'attaquant a déjà compromis les informations
d'identification d'un compte Active Directory avec des autorisations administratives ; supposons que
l'utilisateur s'appelle Bob. La raison derrière cette hypothèse est qu'un compte administratif permet à
l'adversaire d'apporter des modifications à l'environnement, comme l'ajout d'un contrôleur de domaine
malveillant et la réplication des modifications apportées par des contrôleurs de domaine lé[Link]
accès administratif,l'attaquant ne serait pas en mesure de mener l'attaque.
La première étape consiste à démarrer lemimidrvservice, qui fournit les privilèges nécessaires pour
jouer le rôle d'un faux contrôleur de domaine [33]. Ces commandes initiales ("!+" et
"!ProcessToken") enregistrez et démarrez un service appelé "mimidrv" et élève les privilèges à
SYSTEM.
* * Démarrage du serveur **
Cette commande est utilisée pour spécifier le faux serveur pour une attaque DCShadow.
Dans le cadre d'une attaque DCShadow, cette commande permet de spécifier le faux serveur et de
cibler l'objet utilisateur pour modifier sonSidHistoireattribut avec la nouvelle valeur spécifiée. L'attribut
modifié peut être utilisé pour accorder à l'attaquant un accès non autorisé au système cible et aux
informations sensibles.
Dans un deuxième temps, l’adversaire doit relancer Mimikatz sous le nom de compte « Bob »,
qu’il avait initialement compromis. L'adversaire exécute la commande suivante :
Une fois que tout est fait, l'attaquant se déconnecte du compte compromis Bob et se
reconnecte pour obtenir le jeton d'accès mis à jour avec l'historique SID modifié.
Le seul moyen définitif d'identifier une attaque DCShadow consiste à surveiller le réseau. DRSUAPIDemandes
d'appel de procédure à distance (RPC) pour leDRSUAPI_REPLICA_ADDopération provenant de systèmes qui ne
sont pas connus pour être des contrôleurs de domaine. Une autre méthode de détection de DCShadow
consiste à analyser les journaux d'événements Windows, mais cette approche ne fournit que des signes de
l'attaque et non les modifications exactes apportées par l'attaquant.
Afin d'imiter un contrôleur de domaine, DCShadow doit apporter des modifications dans Active
Directory, comme l'ajout d'un nouveauNTDSDSAobjet et un catalogue global (GC/<hôte>)
servicePrincipalNameà un objet informatique qui n’est pas un contrôleur de domaine connu. Une fois
l’attaque terminée, ces deux éléments seront supprimés.
En examinant les événements5136et5141dans la sous-catégorie Audit Directory Service Changes du journal des
événements Windows ([35], [36]), vous pouvez rechercher des preuves de la création et de la suppression d'objets
serveur au sein des sites.
● Champs de description des clés: ID de sécurité, nom du compte, domaine du compte, ID de connexion
● Champs de description clés :ID de sécurité, nom du compte, domaine du compte, ID de connexion
L'attaque DCShadow est un type de menace persistante avancée (APT) qui exploite les fonctionnalités et les
privilèges d'Active Directory (AD) pour modifier les données de manière malveillante. Comme il n’est pas possible
d’éliminer complètement le risque de cette attaque, il est important d’adopter une approche de sécurité à plusieurs
niveaux pour l’atténuer. Voici quelques suggestions qui peuvent vous aider à réduire le risque d’une attaque
DCShadow réussie :
Utilisez des pare-feu basés sur l'hôte pour limiter les mouvements latéraux. Assurez-vous que les protocoles de
gestion à distance tels que RDP ne sont accessibles qu'à partir d'un petit ensemble de systèmes approuvés et
surveillés.
Il est essentiel de limiter le nombre d’utilisateurs disposant de privilèges administratifs au-delà des
limites de sécurité. Cela permet de minimiser la mesure dans laquelle un attaquant peut élever ses
privilèges.
Limitez le nombre d'utilisateurs autorisés à ajouter des objets ordinateur à Active Directory.
Cela permet d’empêcher les modifications non autorisées de l’infrastructure AD.
Gérez de manière adéquate les groupes privilégiés intégrés et les autorisations administratives déléguées pour
réduire le risque d’abus.
La suppression régulière des sites et objets informatiques inutilisés permet de maintenir une bonne hygiène Active
Directory et de réduire la surface d'attaque.
En suivant ces stratégies d'atténuation, les organisations peuvent mieux se protéger contre les
attaques DCShadow et d'autres types de menaces persistantes avancées.
AS-REP Torréfaction
LeAS-REP TorréfactionCette technique permet aux attaquants d'acquérir des hachages de mots de passe de comptes
d'utilisateurs qui ontdésactivéPré-authentification Kerberos. Cette méthode implique la transmission d'un message de
demande de serveur d'authentification (AS-REQ) au contrôleur de domaine (DC). Si la pré-authentification est
désactivée, le contrôleur de domaine renverra un message AS-REP contenant des données cryptées, y compris un
segment crypté avec le hachage du mot de passe de l'utilisateur. Par la suite, l'attaquant peut utiliser ces informations
pour tenter de déchiffrer le mot de passe de l'utilisateur hors ligne.
Dans des circonstances normales, avec la pré-authentification activée, l'utilisateur lance la procédure
d'authentification Kerberos en envoyant un message AS-REQ au DC. Ce message est chiffré avec un horodatage,
qui est ensuite chiffré avec lehachage du mot de passe de l'utilisateur. Si le contrôleur de domaine déchiffre
avec succès l'horodatage à l'aide de son enregistrement stocké du hachage du mot de passe de l'utilisateur, il
répondra par un message AS-REP comprenant un ticket d'octroi de ticket (TGT), émis par le centre de distribution
de clés (KDC). L'utilisateur utilise ensuite ce TGT pour de futures demandes d'accès.
Les adversaires peuvent utiliser divers outils tiers pour effectuer une attaque de torréfaction AS-REP, tels
que RubéusetEmpire,KerbruteetImpacket.
Outil : Rubeus
Afin de trouver tous les comptes qui ne nécessitent pas de pré-authentification et d'extraire leurs hachages AS-REP
pour un piratage hors ligne, un adversaire exécute la commande suivante.
[Link]
Pour faire avancer l'attaque de quelques pas, l'attaquant peut exploiter certains paramètres pour extraire les
données dans un format qui peut être craqué hors ligne par, par exemple, Hashcat :
Notez que les informations d'identification de hachage de sortie sont écrites dans le fichier appelé [Link] dans
le répertoire Temp. Ensuite, l’adversaire exploite le Hashcat, en spécifiant le code en mode hachage pour les
hachages AS-REP (18 200), un fichier de hachage et un dictionnaire à utiliser pour deviner le mot de passe par force
brute.
Pour mieux comprendre l'attaque AS-REP Roasting et comment elle est réalisée à l'aide
d'autres outils, vous pouvez visiter ici [37].
La détection des attaques AS-REP Roasting est cruciale afin d’atténuer le risque de vol de mot de passe. Une façon
de détecter de telles attaques consiste à surveiller les modifications apportées au paramètre qui contrôle si la pré-
authentification Kerberos est activée.
● Champs de description clés :ID de sécurité, nom du compte, domaine du compte, ID de connexion,
ID de sécurité, nom du compte
Par exemple, au cours d'une telle attaque,ID d'événement 4738est généré. Cet événement signifie une demande
de ticket du service d'authentification Kerberos et englobe des paramètres tels que le type de chiffrement du
ticket (0x17), Options de billets (0x40800010) et le nom du service (krbtgt). La présence de ces paramètres dans
les journaux d'événements peut indiquer une attaque AS-REP Roasting en cours, car cet événement est produit
lorsque l'attaquant manipule des objets de domaine [38].
● Champs de description clés :ID de sécurité, nom du compte, domaine du compte, ID de connexion, DN,
GUID, classe, nom d'affichage LDAP
Une autre option consiste à surveillerID d'événement 5136, qui fournit des informations sur les modifications
apportées aux comptes d'utilisateurs dans un environnement Windows. En analysant les journaux de cet événement,
il est possible d'identifier tous les comptes d'utilisateurs dont le paramètre de pré-authentification Kerberos a été
modifié.
Il existe plusieurs techniques que vous pouvez appliquer pour atténuer une attaque AS-REP.
Le moyen le plus efficace de prévenir les attaques AS-REP Roasting consiste à localiser tous les
comptes d'utilisateurs configurés sans nécessiter de pré-authentification Kerberos et à activer ce
paramètre. Cela peut être fait en utilisant le script suivant [39] :
Le script utilise leObtenir-ADUUserapplet de commande avec un filtre pour rechercher tous les comptes
d'utilisateurs, et elle spécifie le'DoesNotRequirePreAuth' propriété dans le 'Propriétés' pour récupérer les
informations de pré-authentification pour chaque compte.
En activant la pré-authentification Kerberos pour ces comptes d'utilisateurs, cela garantit que le contrôleur de
domaine peut déchiffrer l'horodatage chiffré avec le hachage du mot de passe de l'utilisateur. Cela rend
beaucoup plus difficile pour un attaquant d'accéder au hachage du mot de passe de l'utilisateur et de mener
une attaque de piratage hors ligne.
Pour se prémunir contre les attaques AS-REP Roasting, il est conseillé de mettre en œuvre des politiques de mots de
passe fortes, en particulier pour les comptes privilégiés, qui imposent l'utilisation de mots de passe longs et
compliqués. Cela rend difficile pour un attaquant de déchiffrer les mots de passe, même s'ils sont volés avec succès. La
mise en œuvre de politiques de mots de passe précises constitue une première étape efficace pour garantir la sécurité
des mots de passe.
Il est important d'identifier qui a le pouvoir de modifier le paramètre de pré-authentification, car ils
pourraient le désactiver temporairement pour voler le hachage AS-REP, puis le réactiver. La requête
suivante affichera toutes les personnes ayant des droits d'accès aux comptes sans pré-authentification
[40] :
Le code récupère la liste de contrôle d'accès (ACL) du descripteur de sécurité associé à un objet
utilisateur spécifique dans Active Directory (AD).
Il filtre d'abord tous les comptes d'utilisateurs dans AD où le "contrôle de compte d'utilisateur" la
valeur a la4194304 bit décimal défini (qui correspond au drapeauUF_DONT_REQUIRE_PREAUTHdans
le contrôle de compte d'utilisateurattribut) et récupère leur nom distinctif. Ensuite, il récupère l'ACL
du descripteur de sécurité du premier compte utilisateur dans le jeu de résultats à l'aide du nom
unique et le stocke dans une variable. La dernière ligne de code récupère la propriété d'accès de
l'ACL et l'affiche, qui représente les droits d'accès accordés ou refusés aux entités de sécurité
spécifiées dans l'ACL pour l'objet utilisateur cible.
LDAP, abréviation deProtocole léger de contrôle d'accès aux répertoires, est un protocole d'application open
source utilisé pour l'authentification des services d'annuaire. En d'autres termes, LDAP se comporte comme une
plate-forme multiplateforme qui maintient un langage de communication pour les applications qui
communiquent avec d'autres services d'annuaire, qui stockent des informations sur les objets et partagent ces
informations avec d'autres entités du réseau. Une chose à noter est que LDAP et Active Directory ne sont pas
identiques ; en fait, LDAP est le langage quiMicrosoft Active Directory(AD) comprend. Ainsi, si jamais vous avez
besoin d'accéder ou de vous authentifier auprès de données stockées sur AD, vous utilisez LDAP pour
communiquer avec le serveur cible.
UnRequête LDAP, en revanche, est la commande qui demande à un service d'annuaire particulier les
informations que vous avez demandées.
Par défaut, en tant que compte valide non privilégié dans AD, vous pouvez utiliser des requêtes LDAP pour
obtenir diverses informations critiques. Par exemple, si vous souhaitez répertorier tous les utilisateurs avec «
Option Le mot de passe n’expire jamais" activé, vous exécutez alors la requête LDAP suivante :
(objectcategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536)
Les attaques par injection LDAP se présentent sous de nombreuses formes, et certaines d'entre elles sont
abordées dans ce texte. Si vous souhaitez approfondir le sujet et en savoir plus sur d'autres types d'attaques par
injection LDAP qui ne sont pas mentionnés ici, veuillez suivre ce lien [41].
La question de l'élévation des privilèges fait référence à la situation dans laquelle des utilisateurs à faible niveau de
sécurité peuvent accéder à des informations à haut niveau de sécurité. Ceci est réalisé grâce à l'utilisation d'une
injection sous la forme d'un filtre que le serveur LDAP traite.
Par exemple, l'attaquant peut cibler un répertoire contenant des documents de faible niveau de sécurité, tels
que « Informations/Rapports » et « Informations/Projets à venir ».
"Informations)(security_level=*))(&(directory=documents"
(&(directory=Information)(security_level=*))(&(directory=Information)
(security_level=low))
Comme le serveur LDAP traite uniquement le premier filtre, le deuxième filtre est ignoré et la requête
exécutée est "(&(répertoire=Informations)niveau de sécurité=*)". Cela permet à l'attaquant d'accéder à
une liste de documents qui autrement ne seraient accessibles qu'aux utilisateurs disposant d'un niveau
de sécurité élevé, même si l'attaquant ne dispose pas des privilèges appropriés.
Toutes les pages de connexion contiennent deux champs pour la saisie de l'utilisateur, un pour le nom
d'utilisateur et un autre pour le mot de passe. Les entrées sont étiquetées USER (nom d'utilisateur) et PASSWORD
(mot de passe). Le client fournit un couple nom d'utilisateur/mot de passe et LDAP confirme l'existence de ce
couple en construisant des filtres de recherche et en les envoyant au serveur LDAP.
Le serveur LDAP traite uniquement le premier filtre, ignorant le second, ce qui permet à l'attaquant
d'entrer dans le système sans mot de passe approprié lors de la requête.(&(UTILISATEUR=Alice)(&)) est
toujours correct.
Un explorateur de ressources permet à un utilisateur de voir quelles ressources sont disponibles sur le système,
comme un site Web vendant des vêtements. Par exemple, un utilisateur peut rechercher un article spécifique, tel que
des cahiers ou des autocollants, pour voir s'il est disponible à la vente. Cela se fait à l'aide d'une requête LDAP, telle
que :(|(type=Cahiers)(type=Autocollants)).
Cependant, un pirate informatique peut exploiter cela en injectant la chaîne « uid=* » dans la requête, ce qui
donne la requête suivante :(|(type=Cahiers)(uid=*))(type=Autocollants)).
Cette requête sera traitée par le serveur LDAP, affichant non seulement tous les jeans disponibles mais
également tous les objets utilisateur du système.
Il existe quelques techniques d'atténuation pour empêcher une éventuelle attaque par injection LDAP [42].
Technique d'atténuation 1 :Échapper à toutes les variables en utilisant le bon encodage LDAP
L'échappement de toutes les variables à l'aide du bon codage LDAP est l'une des principales techniques d'atténuation
contre les attaques par injection LDAP. Cette technique consiste à coder toutes les entrées fournies par l'utilisateur de
manière à ce qu'il soit difficile pour les attaquants d'injecter des charges utiles malveillantes dans les requêtes LDAP.
LDAP utilise DN, ou Distinguished Name, pour stocker et identifier les noms dans sa base de données. Un DN agit
comme un identifiant unique, similaire à un nom d'utilisateur, et peut être utilisé pour accéder aux ressources.
Un DN est composé de plusieurs parties, séparées par des virgules. Par exemple, un DN pourrait ressembler à ceci
[42] :
Certains caractères d'un DN sont considérés comme des caractères spéciaux et doivent être correctement
échappés ou traités pour éviter des problèmes avec le DN. La liste exhaustive des caractères spéciaux dans un
DN comprend\ # + < > , ; " =et des espaces de début ou de fin.
Cependant, il existe également des caractères « spéciaux » qui sont autorisés dans les noms
distinctifs et qui n'ont pas besoin d'être échappés. Ceux-ci inclus* ( ) . & - _ [ ] ` ~ | @ $ % ^ ? : { } ! '.
Il est important de gérer correctement les caractères spéciaux dans un DN pour garantir que le DN fonctionne
comme prévu et pour éviter tout problème ou conséquence involontaire lors de l'utilisation du DN.
Dans la base de données LDAP, chaque DN, ou nom distinctif, pointe de manière unique vers une seule entrée, qui peut être
considérée comme une ligne dans un système de gestion de base de données relationnelle (SGBDR). Chaque entrée contient un
ou plusieurs attributs, similaires aux colonnes d'un SGBDR. Les filtres de recherche peuvent être utilisés pour effectuer une
recherche dans la base de données LDAP et trouver des entrées avec des attributs spécifiques.
Les filtres de recherche utilisent la notation polonaise, également appelée notation de préfixe, pour spécifier les
conditions de recherche. Par exemple, le filtre de recherche suivant renverrait toutes les entrées de l'unité
organisationnelle Physique qui ont Freeman Dyson ou Albert Einstein comme responsable [42].
Lors de la création de requêtes LDAP dans le code d'une application, il est crucial d'échapper à toutes les données non
fiables ajoutées à la requête pour éviter les problèmes de sécurité. Il existe deux formes d'échappement LDAP : le codage
pour la recherche LDAP et le codage pour le DN LDAP. La forme appropriée d'échappement dépend du fait que les données
soient utilisées dans un filtre de recherche ou en tant que DN comme identifiant pour accéder à une ressource.
Caractères spéciaux tels que"(",")", et""doit être correctement échappé lorsqu'il est utilisé dans un filtre de
recherche pour garantir que la requête est exécutée comme prévu. Pour en savoir plus sur l'échappement du filtre
de recherche, visitez le document RFC4515 [43].
Défenses supplémentaires
Pour fournir une couche de protection supplémentaire contre les attaques par injection LDAP, les organisations peuvent
mettre en œuvre les mesures de défense suivantes :
Moindre privilège :Limitez les privilèges attribués au compte de liaison LDAP, qui est le compte
utilisé pour accéder à l'annuaire LDAP, afin de minimiser les dommages potentiels en cas d'attaque
réussie.
Activer l'authentification de liaison :Configurez le protocole LDAP pour exiger une authentification de liaison, qui vérifie
et autorise les informations d'identification valides transmises par l'utilisateur [44]. Cependant, les attaquants peuvent
toujours être capables de contourner l'authentification de liaison via Anonymous Bind [45] et Unauthenticated Bind [46].
Par conséquent, ces options de liaison doivent également être désactivées.
Validation des entrées de liste verte :Implémentez des techniques de validation des entrées pour détecter et empêcher la
transmission d’entrées non autorisées à la requête LDAP. Cela peut contribuer à garantir que seules les valeurs approuvées
sont utilisées dans la construction des requêtes LDAP, réduisant ainsi le risque d'une attaque par injection LDAP réussie.
Ces techniques de validation peuvent inclure l'utilisation d'expressions régulières, de restrictions de type et de longueur de
données, ainsi que des vérifications de références croisées avec des listes ou des bases de données externes [47].
LePetit PotamNTLML'attaque par relais est un type de cyberattaque qui tire parti du protocole
existant Windows NTLM et duMS-EFSRPCprotocole. Cette attaque profite de la configuration par
défaut non sécurisée des services de certificats Active Directory (AD-CS), qui n'applique pas la
protection étendue pour l'authentification (EPA).
Dans cette attaque, un attaquant peut déclencher une authentification du contrôleur de domaine en exploitant la
vulnérabilité PetitPotam et en la relayant au serveur AD-CS pour demander un certificat pour le compte du contrôleur
de domaine. À l'aide de ce certificat, l'attaquant peut ensuite récupérer un TGT (Ticket Granting Ticket) pour le compte
du contrôleur de domaine relayé et effectuer toute autre opération en utilisant ses privilèges élevés. Cela peut
conduire à une compromission complète du domaine en quelques étapes et potentiellement permettre à l'attaquant
de vider les hachages d'administrateur de domaine.
Il est important de noter que cette vulnérabilité a été partiellement atténuée par une mise à jour de sécurité publiée
par Microsoft le Patch Tuesday du 10 mai 2022, mais une attaque est toujours possible si un attaquant dispose
d'informations d'identification de compte Active Directory.
Technique d'attaque 7 : Attaque de relais PetitPotam NTLM sur un service de certificat Active Directory (AD CS) 42
Techniques pour effectuer une attaque de relais PetitPotam NTLM sur
les services de certificats Active Directory (AC DC)
Dans le scénario suivant, nous allons démontrer comment un adversaire peut exploiter la Petit Potam
vulnérabilité pour obtenir tous les privilèges d'administrateur de domaine sans nécessiter
d'authentification préalable.
Une attaque typique PetitPotam NTLM Relay se compose de cinq étapes [48].
Dans un premier temps, l'attaquant doit s'assurer queImpacketc'[Link] configuré pour être relayé vers
la page d’inscription Web AD DC.
Notez que le drapeau "--cible" spécifie l'URL cible à attaquer. Dans ce cas, la cible est un point de
terminaison du serveur de certificats. Les indicateurs "--adcs" et "--template Authentification Kerberos"
indiquent que la cible est un serveur ADCS (Active Directory Certificate Services) et que l'outil utilisera un
modèle d'authentification spécifique. Les drapeaux "-déboguer" et "-smb2support" sont respectivement
destinés au débogage et à la prise en charge de la version 2 de SMB.
Pour exploiter la vulnérabilité PetitPotam, nous devons tous deux spécifier le contrôleur de domaine et l'adresse IP de
l'attaquant. [Link] être téléchargé depuis son référentiel officiel GitHub [49].
[Link]<IP-auditeur> <IP-cible>
Notez que même si l'adresse IP de l'écouteur est l'adresse IP du relais de l'attaquant, l'adresse IP cible est l'adresse
IP du contrôleur de domaine ciblé par l'attaquant. Une fois que l'adversaire exploite la vulnérabilité PetitPotam, le
informations d'identificationsera relayé vers le CD AD, où le certificat sera inscrit.
Technique d'attaque 7 : Attaque de relais PetitPotam NTLM sur un service de certificat Active Directory (AD CS) 43
. . . # Voir la première étape.
[*] Serveurs démarrés, en attente de connexions. . .
[*]OBTENU UN CERTIFICAT !
Maintenant qu’il est inscrit, l’attaquant peut utiliser ce certificat pour obtenir un Ticket Granting Ticket
(TGT). Pour cette étape, l'attaquant peut exploiter lekékéoouRubéusoutil [50] :
Dans cette étape, l'attaquant peut utiliserMimikatzpour effectuer une attaque DCSync sur lekrbtgtutilisateur.
"lsadump :: dcsyncLa fonction ", quant à elle, est utilisée pour effectuer une attaque "DCSync", qui est un type
d'attaque qui permet à un attaquant de simuler le comportement d'un contrôleur de domaine et de récupérer
hachages de mot de passe, tickets Kerberos et autres informations sensibles de la base de données Active
Directory. Par conséquent, lors de l’exécution de cette commande, l’adversaire obtient le hachage du mot de
passe dukrbtgtutilisateur:186c026974e59a14040dbc63aa8fb8c4.
Technique d'attaque 7 : Attaque de relais PetitPotam NTLM sur un service de certificat Active Directory (AD CS) 44
Étape 5 :Passer le hachage
Dans cette étape, l'adversaire peut utiliser l'outil [Link] d'Impacket pour transmettre le hachage
obtenu à la cinquième étape afin d'obtenir un shell interactif sur le contrôleur de domaine.
En termes plus simples, ces deux bogues fonctionnent ensemble pour permettre rapidement à une personne disposant d'un
accès limité de prendre le contrôle total d'un réseau ou d'un système. Même si le réseau ou le système est entièrement mis à jour
avec les derniers correctifs de sécurité, ces bugs peuvent toujours être utilisés pour causer de graves dommages en quelques
minutes seulement.
Pour sécuriser les réseaux contre les attaques par relais NTLM, les administrateurs de domaine doivent prendre des
mesures pour protéger les services activés par l'authentification NTLM. La menace PetitPotam exploite des serveurs
dépourvus de protections contre les attaques de relais NTLM dans les services de certificats Active Directory (AD CS). Ces
conseils d’atténuation fournissent des étapes permettant aux clients AD CS de protéger leurs serveurs contre ce type
d’attaque.
Si vous utilisez AD CS avec les services suivants, votre réseau peut être vulnérable :
Microsoft suggère les étapes suivantes pour atténuer les attaques potentielles sur les serveurs AD CS [51] :
Étape 1:Activez la protection étendue pour l'authentification (EPA) pour l'inscription Web de
l'autorité de certification et le service Web d'inscription de certificats. Cela peut être fait via le
gestionnaire des services Internet (IIS), « Obligatoire » étant l'option recommandée et la plus
sécurisée.
Étape 2:Mettez à jour le fichier [Link] créé par le rôle de service Web d'inscription de certificat, situé dans
<%windir%>\systemdata\CES<Nom de l'autorité de certification>_CES_Kerberos\[Link], pour refléter le paramètre
EPA sélectionné.
Étape 3:Cela peut être fait en ajoutant<Politique de protection étendue>avec une valeur de "Quand pris en
charge" ou "Toujours", en fonction du paramètre EPA dans l'interface utilisateur IIS. Le "ToujoursLe paramètre
" doit être utilisé lorsque le paramètre EPA est défini sur "Requis".
Étape 4:Activez les connexions SSL uniquement en activant le "Exiger SSL" dans le Gestionnaire IIS.
Technique d'attaque 7 : Attaque de relais PetitPotam NTLM sur un service de certificat Active Directory (AD CS) 45
Figure 2. Activation des connexions SSL uniquement dans le gestionnaire IIS [51] :
Étape 5 :Après avoir terminé ces étapes, il est important de redémarrer IIS pour charger les modifications.
Cela peut être fait en ouvrant une fenêtre d'invite de commandes élevée et en tapant la commande suivante :
iisreset/redémarrage
Notez que cette commande arrête tous les services IIS, puis les redémarre.
Pour plus d'informations sur les options disponibles pour<Politique de protection étendue>, se référer au
<transport>de<basicHttpBinding>. Un exemple de configuration est fourni [51] :
<nom de liaison="TransportWithHeaderClientAuth">
<mode de sécurité="Transport">
<transport clientCredentialType="Windows">
<extendedProtectionPolicy PolicyEnforcement="Toujours" />
</transport>
<message clientCredentialType="None" establishmentSecurityContext="false"
négocierServiceCredential="false" />
</sécurité>
<readerQuotas maxStringContentLength="131072" /> </
binding>
Technique d'attaque 7 : Attaque de relais PetitPotam NTLM sur un service de certificat Active Directory (AD CS) 46
Conclusion
En conclusion, la fréquence et la sophistication croissantes des attaques ciblant Active Directory sont
évidentes. Les attaques courantes abordées dans ce rapport, telles que Pass the Hash, Pass the Ticket,
Kerberoasting, Golden Ticket, DC Shadow, AS-REP Roasting, LDAP Injection et PetitPotam NTLM Relay
Attack, illustrent la myriade de façons dont les adversaires peuvent exploiter les vulnérabilités au sein
d'un système. l'infrastructure Active Directory de l'organisation.
Compte tenu du rôle crucial que joue Active Directory dans la régulation de l'accès aux données et ressources
sensibles d'une organisation, il est impératif que les organisations adoptent des mesures proactives pour se
défendre contre ce type d'attaques. Cela nécessite une approche à plusieurs niveaux, intégrant des audits de
sécurité réguliers, des évaluations de vulnérabilité et une surveillance continue pour détecter et traiter les
menaces en temps réel.
Il est crucial de reconnaître que les attaquants adaptent constamment leurs tactiques, ce qui oblige les
organisations à rester vigilantes et à mettre constamment à jour leurs mesures de sécurité pour garder une
longueur d'avance sur les menaces émergentes. En investissant dans des mesures de sécurité complètes et en
surveillant de près l’évolution du paysage des menaces, les organisations peuvent atténuer le risque d’être victime
d’une attaque Active Directory.
ligne]. Disponible:
[Link]
[Consulté : 10 février 2023]
[3] EB Abid, « Avantages d'Active Directory (avantages et inconvénients) », Services d'infrastructure cloud,
[8] A. Robbins, « Comment les attaquants passent d'Azure Active Directory à On-Prem AD », The New
[Link] [Consulté le 7
février 2023]
[13]HC Yuceel, « La technique de dumping des informations d'identification du système d'exploitation MITRE ATT&CK T1003
[Link]
echnique-and-its-adversary-use. [Consulté le 7 février 2023]
[14]« 5985,5986 - Test de WinRM. » [En ligne]. Disponible:
[Link]
[Consulté le 7 février 2023]
[15] « mimikatz > sekurlsa :: mots de passe de connexion. » [En ligne]. Disponible : [Link]
ToolAnalysisResultSheet/details/Mimikatz_sekurlsa-logonpassw
09, 2023]
[17]J. Warren, « Comment détecter les attaques Pass-the-Hash » [En ligne]. Disponible:
[Link] [Accédé:
09 février 2023]
[18] « Atténuation des attaques Pass-the-Hash (PtH) et autres techniques de vol d'informations d'identification
[Link]
%20Pass-the-Hash%20(PtH)%20Attaques%20et%20Autres%20Credential%20Vol%20T
echniques_English.pdf. [Consulté : 9 février 2023]
[19] « GitHub - gentilkiwi/kekeo : Une petite boîte à outils pour jouer avec Microsoft Kerberos en C », GitHub.
[Link]/en-us/windows-server/security/kerberos/kerberos-authentic
[26] « Tutoriel d'attaque : Comment fonctionne l'attaque Kerberoasting », Netwrix. [En ligne]. Disponible:
09, 2023]
[28] S. Metcalf, « Détection de l'activité Kerberoasting », Active Directory Security, 5 février 2017. [En
ligne]. Disponible : [Link] [Consulté : 9 février 2023]
[29] « Site Web ». [En ligne]. Disponible:
[Link]
[30] K. Mistele, « Impacket Deep Dives Vol. 2 : Attaque de Kerberos – Kyle Mistele, »Moyen,
5 juin 2021. [En ligne]. Disponible:
[Link]
dd472a. [Consulté : 8 février 2023]
[31]« Attaque du ticket d'or », Netwrix. [En ligne]. Disponible:
[Link]
st-eux/. [Consulté : 9 février 2023]
[Link]
[Consulté : 8 février 2023]
[34] « Attaque DCShadow utilisant Mimikatz », Netwrix. [En ligne]. Disponible:
[Link] [Consulté : 8
février 2023]
[35] « 5136(S) : un objet de service d'annuaire a été modifié », Microsoft. [En ligne]. Disponible : https://
[Link]/en-us/windows/security/threat-protection/auditing/event-513 6. [Consulté :
10 février 2023]
[36] « Détection des mouvements latéraux grâce au suivi des journaux d'événements
[Link]
accès-edentiel/voler-ou-forger-des-tickets-kerberos/comme-rep-rôtissage. [Consulté : 8 février
2023]
[38] A. Berlin, « Comment détecter la torréfaction AS-REP avec »,Blumira, 7 décembre 2021. [En ligne].
[Link]
accès-edentiel/voler-ou-forger-des-tickets-kerberos/comme-rep-rôtissage. [Consulté : 8 février
2023]
[40] J. Dibley, « Cracking des mots de passe Active Directory avec AS-REP Roasting » [En ligne].
Disponible:
[Link]
[Consulté : 8 février 2023]
[41]A. Dizdar, « Guide complet de l'injection LDAP : types, exemples et prévention »,Brillant
Sécurité, 2 juin 2021. [En ligne]. Disponible : [Link]
[Consulté : 9 février 2023]
[42] « Prévention des injections LDAP - Série de feuilles de triche OWASP. » [En ligne]. Disponible:
[Link]
. html. [Consulté : 9 février 2023]
représentation sous forme de chaîne des filtres de recherche »,Traqueur de données IETF, 8 juin 2006.
[Link]
[46] M.-A. Moreau, «Pourquoi les liaisons non authentifiées Active Directory LDAP doivent être désactivées et
[Link]
hould-be-disabled-and-how-to-do-it/. [Consulté : 9 février 2023]
[47] « Validation des entrées - Série de feuilles de triche OWASP. » [En ligne]. Disponible:
[Link]
[Consulté : 9 février 2023]
[48] « De l'étranger au DA // Utilisation de PetitPotam au relais NTLM vers l'administrateur de domaine »,
[Link]
vers le répertoire-actif. [Consulté : 9 février 2023]
[49] « GitHub - topotam/PetitPotam : outil PoC pour contraindre les hôtes Windows à s'authentifier auprès de
d'autres machines via MS-EFSRPC EfsRpcOpenFileRaw ou d'autres fonctions »,GitHub. [En ligne].
[Link]
services-de-certificat-active-directory-ad-cs-3612b773-4043-4aa9-b23d-b87910cd3429.
[Consulté : 9 février 2023]
Commet hLe pionnier de la simulation de brèches et d'attaques (BAS),notre plateforme de validation du ete
Seconde toi
contrôle de conformité est utilisée par les équipes de sécurité du monde entier pour identifier de large à
proac manière efficace les failles de sécurité et obtenir des informations exploitables pour unrobe
le m.
www. [Link]
picussécurité