Immersion dans AD: nous analysons les attaques avancées sur Microsoft Active Directory et comment les détecter



Image: Pexels

Au cours des quatre dernières années, pas un seul Black Hat ou DEF CON n'a été sans rapport sur les attaques contre Microsoft Active Directory. Les participants parlent de nouveaux vecteurs et de leurs inventions, mais n'oublient pas les astuces pour les détecter et les prévenir. Dans cet article, nous examinerons les moyens les plus courants d'attaquer la MA et fournirons des recommandations qui vous aideront à vous protéger contre eux.

Six attaques AD que vous ne pouvez pas ignorer


De nombreux fabricants de logiciels de surveillance de la sécurité prennent déjà en charge une variété de techniques d'attaque dans leurs produits. Examinons certains d'entre eux.

Passez le hash


Cette technique est possible grâce aux caractéristiques architecturales du protocole d'authentification NTLM, développé par Microsoft dans les années 90 du siècle dernier. Afin de se connecter à un hôte distant, un hachage de mot de passe est utilisé, qui est stocké dans la mémoire de l'ordinateur à partir duquel l'authentification a lieu. En conséquence, il peut en être extrait.

Mimikatz


Pour un fonctionnement pratique de Pass-the-Hash, le chercheur français Benjamin Delpy (Benjamin Delpy) a développé en 2014 l'utilitaire mimikatz. Il permet de vider les mots de passe en texte clair et les hachages NTLM de la mémoire.

Force brute


Si l'attaquant n'a pas suffisamment d'informations d'identification qu'il a extraites d'un hôte, il peut recourir à une technique grossière mais efficace pour deviner les mots de passe.

utilisateur / domaine net


Où trouver un dictionnaire de noms d'utilisateurs afin de mener Brute Force? Tout membre du domaine peut utiliser la commande net user / domain, qui renvoie une liste complète des noms d'utilisateurs d'AD.

Kerberoasting


Si le domaine utilise Kerberos comme protocole d'authentification, l'attaquant pourrait recourir à une attaque Kerberoasting. Tout utilisateur authentifié dans le domaine peut demander un ticket Kerberos pour accéder au service d'octroi de tickets. TGS est chiffré avec le hachage de mot de passe du compte à partir duquel le service cible s'exécute. Un attaquant qui a ainsi obtenu TGS peut désormais le décrypter, en récupérant un mot de passe et sans avoir peur de le bloquer, car il le fait hors ligne. En cas de succès, il reçoit un mot de passe du compte associé au service, qui est souvent privilégié.

Psexec


Après que l'attaquant a reçu les informations d'identification nécessaires, il est confronté à la tâche d'exécuter des commandes à distance. L'utilitaire PsExec de la suite Sysinternals est bien adapté à cela. Il a fait ses preuves tant auprès des administrateurs informatiques que chez les attaquants.

Sept sorts d'attaque pour capturer Active Directory


Nous passons maintenant à sept sorts, grâce auxquels les attaquants peuvent prendre le contrôle total d'Active Directory. Nous les diviserons en quatre étapes:

  1. Intelligence.
  2. Promotion sur AD.
  3. Opération.
  4. Capture de domaine.

Dans le diagramme, vous pouvez voir les quatre, ainsi que les techniques qui y sont utilisées. Examinons chacun en détail.



Étape 1. Exploration


Commençons par la phase du renseignement.

Powerview


Cet outil fait partie du cadre de test de pénétration PowerShell populaire - PowerSploit . Il s'appuie également sur l'outil BloodHound , qui crée un graphique des relations d'objet dans AD.



Représentation graphique des relations d'objets Active Directory

Bloodhound offre immédiatement ces fonctionnalités:

  • Trouvez les comptes de tous les administrateurs de domaine;
  • rechercher les hôtes sur lesquels les administrateurs de domaine sont connectés;
  • construire le chemin le plus court de l'hôte de l'attaquant à l'hôte avec la session d'administration de domaine.

Le dernier paragraphe donne une réponse à la question de savoir quels hôtes doivent être piratés à un attaquant pour accéder au compte d'administrateur de domaine. Cette approche réduit considérablement le temps nécessaire pour obtenir un contrôle total sur le domaine.

PowerView diffère des utilitaires intégrés pour récupérer des données sur les objets AD (par exemple, net.exe) en ce qu'il s'exécute sur le protocole LDAP, pas SAMR. L'événement 1644 d'un contrôleur de domaine convient pour détecter cette activité. La journalisation de cet événement est activée en ajoutant la valeur appropriée dans le registre:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostic\\15 Field Engineering = 5



Activation de la journalisation des événements LDAP 1644



Événement 1644 avec paramètres de demande LDAP

Il convient de prêter attention au fait qu'il peut y avoir beaucoup de tels événements, et une bonne alternative à la détection d'événements est la détection du trafic, car LDAP est un protocole en texte clair, en conséquence, toutes les demandes dans le trafic sont parfaitement visibles.



LDAP SearchRequest (cliquez pour ouvrir l'image en taille réelle)

Une autre caractéristique importante de ce framework est qu'il est écrit en PowerShell pur et n'a aucune dépendance. Et ici, pour la détection, la fonction d'audit avancée introduite dans PowerShell version 5 nous aidera. L'événement 4104 montre le corps d'un script dans lequel nous pouvons rechercher des noms de fonctions spécifiques à PowerView.



Analyse SPN


Il peut remplacer le nmap de lancement de l'attaquant. Une fois que l'attaquant a déterminé quels utilisateurs et groupes se trouvent dans AD, pour compléter l'image, il aura besoin d'informations sur les services disponibles.



Ceci est généralement résolu en scannant les ports avec nmap. Mais maintenant, ces informations peuvent également être obtenues auprès de AD - elles y sont déjà stockées. Vous pouvez voir le résultat d'une telle demande: renvoyer le soi-disant SPN (Service Principal Names). Le SPN se compose d'une classe de service, il est unique pour chaque type de service, puis vient le nom d'hôte sous la forme de FQDN et pour certains services - port.



Exemples SPN Liste complète des principaux noms de service

Afin de détecter SPN Scan, l'audit des événements LDAP vient également à la rescousse.
Il est important de noter que le scan SPN a un avantage distinct sur le scan nmap: il est moins bruyant. Lorsque vous utilisez nmap, vous devez vous connecter à chaque nœud et envoyer des paquets à la plage de ports que vous avez spécifiée. Et pour obtenir la liste des SPN, vous devez envoyer une seule demande.

Énumération des sessions à distance


Une tâche importante pour un attaquant au stade du mouvement latéral consiste à déterminer quel utilisateur est connecté à quelle machine. Ou il a déjà des informations d'identification d'utilisateur (hash ou ticket Kerberos), et il recherche des hôtes où vous pouvez vous connecter sans entrave. Ou il est à la recherche d'un hôte où il y a une session d'administrateur de domaine en direct.

Ensuite, le scénario fonctionne: chasse -> compromettant tout hôte -> Golfe de Mimikatz -> profit.

Vous pouvez utiliser 2 événements pour détecter cette technique. 4624 est une connexion réussie sur un système distant avec une connexion de type 3, ainsi que des événements d'accès au réseau IPC $, et la nuance est le nom du canal - srvsvc. La raison pour laquelle un tuyau est ainsi appelé peut être comprise par le trafic.



Cliquez pour ouvrir l'image en taille réelle.

Sur le côté gauche, dans les cadres rouges, accédez à SMB, puis accédez à pipe - srvsvc. Ce canal vous permet d'interagir à l'aide du protocole distant spécial du service serveur. Il permet aux hôtes finaux d'en recevoir diverses informations administratives, notamment Parmi les requêtes, il y en a une appelée NetSessEnum. À la suite de cette demande, une liste complète des utilisateurs connectés au système distant avec l'adresse IP et les noms d'utilisateur est renvoyée.



Dans MaxPatrol SIEM, nous avons effectué une détection basée sur une combinaison de ces deux événements en tenant compte de srvsvc. Et une détection de trafic similaire dans PT Network Attack Discovery.

Étape 2. Promotion AD


Overpass-the-hash


La réincarnation de Pass-the-Hash. Poursuivre le thème du mouvement latéral. Que peut faire un attaquant s'il possède un hachage NTLM? Il peut effectuer une attaque Pass-the-Hash - mais il y a déjà des détections sur elle. Par conséquent, un nouveau vecteur a été trouvé - l'attaque Overpass-the-Hash.

Le protocole Kerberos a été conçu spécifiquement pour que les mots de passe des utilisateurs sous une forme ou une autre ne soient pas transmis sur le réseau. Pour ce faire, sur sa machine, l'utilisateur hache son mot de passe chiffre la demande d'authentification. En réponse, le Key Distribution Center (un service spécial hébergé sur le contrôleur de domaine) lui délivre un ticket pour recevoir d'autres tickets. Le soi-disant Ticket-Granting Ticket (TGT). Maintenant, le client est considéré comme authentifié et dans les 10 heures, il peut demander des billets pour accéder à d'autres services. En conséquence, si un hachage sous-jacent d'attaque d'un utilisateur qui est membre d'un groupe de confiance d'un service qui l'intéresse, par exemple un système ERP ou une base de données, l'attaquant peut émettre un laissez-passer pour lui-même et se connecter avec succès au service qui l'intéresse.



Comment détecter


Si l'attaquant utilise la version PowerShell de mimikatz pour cette attaque, la journalisation du corps du script vient à la rescousse. Parce que Invoke-Mimikatz est une ligne très caractéristique.





Ou 4688 est un événement de démarrage de processus avec un audit de ligne de commande avancé. Même si le binar est renommé, alors sur la ligne de commande, nous trouverons une commande très caractéristique de mimikatz.



Le trafic Overpass-the-Hash peut être détecté en fonction d'une anomalie résultant du fait que Microsoft recommande d'utiliser la demande d'authentification AES256 pour le chiffrement des domaines actuels. Et mimikatz, lorsqu'il envoie des données de demande d'authentification, il crypte les données en utilisant l'ARCFOUR obsolète.



Dans la circulation, une autre différence est observée en raison des caractéristiques du mimikatz. Il est basé sur la différence de la suite de chiffrement dans le domaine légitime et sur ce que mimikatz envoie.

Billet d'or


Que peut faire un attaquant s'il possède un hachage de mot de passe d'un compte spécial appelé krbtgt? Plus tôt, nous avons considéré le cas où l'utilisateur pourrait ne pas être privilégié. Nous envisageons maintenant un utilisateur avec un hachage de mot de passe dont absolument tous les billets pour d'autres billets (TGT) sont signés. En conséquence, l'attaquant ne s'adresse plus au centre de distribution de clés, il génère lui-même ce ticket, car le Golden Ticket, en substance, est TGT. Ensuite, il peut envoyer des demandes d'authentification à n'importe quel service dans AD, et pour une durée illimitée. En conséquence, il se tourne librement vers cette ressource - le Golden Ticket n'est pas sans raison appelé golden.



Comment détecter par les événements


Il y a l'événement 4768, qui dit que TGT a été émis, et l'événement 4769, qui dit qu'un ticket de service a été émis, qui est nécessaire pour l'authentification sur certains services à l'intérieur d'AD.



Ici, nous pouvons jouer sur la différence: lors d'une attaque, Golden Ticket ne demande pas de TGT à un contrôleur de domaine (il le génère lui-même), et il doit demander un TGS, si nous trouvons une différence dans le TGT et le TGS reçus, nous pouvons supposer qu'une attaque Golden Ticket a lieu.

Dans MaxPatrol SIEM, en utilisant des listes de tableaux dans lesquelles nous enregistrons tous les TGT et TGS émis, nous avons réussi à implémenter une telle détection.

Exécution à distance WMI


Une fois la tâche d'authentification et d'autorisation sur les hôtes souhaités résolue, l'attaquant peut commencer à exécuter des tâches à distance. WMI, en tant que mécanisme intégré et conçu pour cela, s'intègre parfaitement. Au cours des dernières années, «vivre de la terre» signifie utiliser les mécanismes Windows intégrés dans une tendance. Tout d'abord, car cela vous permet de vous déguiser en activité légitime.



Dans la capture d'écran, l'utilisation de l'utilitaire wmic intégré. Il spécifie l'adresse de l'hôte auquel vous souhaitez vous connecter, les informations d'identification, l'instruction create appel de processus et la commande qui doit être exécutée sur l'hôte distant.

Comment détecter


Sur un tas d'événements d'une connexion à distance 4624 (faites attention à
mania on Logon ID) et l'événement 4688, qui parlent du démarrage d'un processus avec la ligne de commande. 4688 - vous pouvez voir que le parent du processus lancé est WmiPrvSE.exe, un processus de service WMI spécial utilisé pour l'administration à distance. La commande que nous avons envoyée à net user / add est visible et l'ID de connexion correspond à l'événement 4624. Par conséquent, nous pouvons dire exactement à partir de quel hôte cette commande s'exécute.



Détection du trafic


Ici, nous voyons clairement les mots caractéristiques du processus Win32 créer, ainsi que la ligne de commande, qui est envoyée pour démarrer. Dans la capture d'écran, nous avons récemment rencontré un malware, qui a été distribué dans des réseaux virtuels selon un principe similaire à WannaCry, mais au lieu du cryptage, il a installé un mineur. Malvar a emporté mimikatz et EthernalBlue avec elle, elle a vidé les comptes, avec leur aide, elle s'est connectée à tous les hôtes qu'elle pouvait atteindre sur le réseau. À l'aide de WMI, elle a lancé PowerShell sur eux, téléchargé la charge utile PowerShell, qui contenait à nouveau mimikatz, EthernalBlue et le mineur. Ainsi, une réaction en chaîne a été obtenue.



Recommandations pour les étapes 1 à 3


1. Mots de passe longs et complexes (> 25 caractères) pour les comptes de service. Cela ne laissera pas à un attaquant une chance de mener une attaque Kerberoasting, car Brute aura très longtemps.

2. Journalisation de PowerShell . Il aidera à détecter l'utilisation de nombreux outils modernes pour les attaques contre AD

3. Passage à Windows 10, Windows Server 2016. Microsoft a créé Credential Guard: il ne sera plus possible de vider les hachages NTLM et les tickets Kerberos de la mémoire

4. Délimitation stricte des rôles . Il est dangereux de combiner en un seul rôle l'administrateur de AD, DC, tous les serveurs et machines de travail

5. Double changement de mot de passe krbtgt (c'est le même compte avec lequel les tickets TGT s'inscrivent) . Chaque année. Et après que l'administrateur AD quitte AD:
  • doivent être changés deux fois, car le mot de passe actuel et précédent sont stockés,
  • changer chaque année, incl. après avoir quitté l'administrateur de domaine. Même si le réseau est déjà compromis et que les attaquants ont émis un Golden Ticket, changer le mot de passe rend ce Ticket inutile. Et encore une fois, ils doivent tout recommencer.

6. Remèdes avec une base de connaissances d'experts constamment mise à jour . Il est nécessaire de détecter de véritables attaques réelles.

Étape 4. Capture de domaine


DCShadow


Le 24 janvier 2018, lors de la conférence Microsoft BlueHat en Israël, Benjamin Delpy et Vincent Le Toux ont présenté le nouveau module mimikatz, qui implémente l'attaque DCShadow. L'essence de l'attaque est qu'un faux contrôleur de domaine est créé pour modifier et créer de nouveaux objets dans AD via la réplication. Les chercheurs ont réussi à isoler l'ensemble minimal de SPN Kerberos requis pour passer par le processus de réplication - ils n'en ont besoin que de 2. De plus, ils ont présenté une fonction spéciale qui peut forcer la réplication des contrôleurs. Les auteurs de l'attaque le positionnent comme une attaque qui rendra votre SIEM aveugle. Parce que un faux contrôleur de domaine n'envoie pas d'événements à SIEM, ce qui signifie que les attaquants peuvent faire diverses choses sombres avec AD et SIEM n'en sera pas informé.



Modèle d'attaque


Sur le système avec lequel l'attaque est effectuée, il est nécessaire d'ajouter 2 SPN, qui sont nécessaires pour que les autres contrôleurs de domaine puissent s'authentifier à l'aide de kerberos pour la réplication. Parce que selon la spécification, le contrôleur de domaine est représenté dans la base de données AD par un objet de la classe nTDSDSA, il est nécessaire de créer un tel objet. Enfin, appelez la réplication à l'aide de la fonction DRSReplicaAdd.

Comment détecter


A quoi ressemble DCShadow dans le trafic. Par le trafic, nous voyons clairement l'ajout d'un nouvel objet au schéma de configuration de type contrôleur de domaine, puis le démarrage forcé de la réplication



En raison du fait que notre corrélation connaît la liste des contrôleurs de domaine légitimes, elle sera déclenchée lorsque la réplication se produit à partir d'un contrôleur de domaine qui n'est pas inclus dans cette liste blanche. En conséquence, la division de la sécurité de l'information peut mener une enquête et comprendre déjà qu'il s'agit d'un contrôleur de domaine légitime qui a été ajouté par le service informatique, ou attaque DCShadow.

Conclusion


L'exemple DCShadow montre qu'il existe de nouveaux vecteurs d'attaque pour l'entreprise. Dans cet océan d'événements liés à la sécurité de l'information, il est très important de rester au sommet de la vague: regardez plus loin et avancez rapidement. Chaque jour, au PT Expert Security Center, nous recherchons de nouvelles menaces et développons des méthodes et des outils de détection pour elles. Et nous sommes prêts à partager davantage ces informations.

Publié par Anton Tyurin, chef de l'équipe de détection des attaques, Positive Technologies

Source: https://habr.com/ru/post/fr423903/


All Articles