T1547.008 Pilote LSASS dans MITRE ATT&CK Expliqué
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article explique la sous-technique de persistance du pilote LSASS, T1547.008, que les acteurs malveillants utilisent pour obtenir une exécution durable et à haut privilège sur les systèmes Windows en abusant de la manière dont LSASS charge les composants liés à la sécurité.
Enquête
Les attaquants commencent généralement par obtenir des privilèges SYSTEM, puis placent une DLL ou un pilote malveillant sur l’hôte cible et modifient les clés de registre dans la configuration LSA pour que LSASS charge le composant rogue pendant le démarrage. Dans certains cas, la même approche peut être étendue pour abuser des points d’extension de service du contrôleur de domaine.
Atténuation
Les défenseurs doivent surveiller les modifications du registre affectant les clés LSA, exiger une signature de code stricte pour les pilotes et DLLs, restreindre les permissions d’écriture sur les chemins de registre pertinents, et appliquer une surveillance d’intégrité aux composants chargés par le processus LSASS.
Réponse
Si des modifications suspectes du registre ou des chargements de pilotes inattendus dans lsass.exe sont détectés, isolez l’hôte, capturez la mémoire de LSASS pour une analyse axée sur les identifiants, et restaurez les valeurs de registre modifiées à un état connu comme bon tout en enquêtant sur le processus parent responsable.
Flux d’attaque
Nous mettons encore à jour cette partie. Inscrivez-vous pour être averti
Avertissez-moiDétections
Dumping potentiellement crédentiel utilisant MSv1_0!SpAcceptCredentials Hook (via un événement de registre)
Voir
Chargement possible de DLL via LSASS pour persistance ou exécution de code (via un événement de registre)
Voir
Ajouter une bibliothèque suspecte aux fournisseurs de support de sécurité [SSP] (via un événement de registre)
Voir
IOCs (Emails) pour détecter : T1547.008 Pilote LSASS expliqué dans MITRE ATT&CK
Voir
Détecter l’exécution persistante via la modification du pilote LSASS [Événement du registre Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de la télémetrie et de la ligne de base doit être 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 TTPs identifiés et viser à générer la télémetrie exacte attendue par la logique de détection.
-
Narratif et commandes d’attaque :
- Préparation – déposer une DLL malveillante – L’adversaire crée une DLL (
maliciousLSASS.dll) qui, lorsqu’elle est chargée par LSASS, extrait les hachages des identifiants et les écrit dans%TEMP%. La DLL est placée sur la station de travail victime. - Persistance via la modification du registre – En utilisant le
reg.exenatif, l’attaquant ajoute le chemin complet de la DLL malveillante à la valeur multi-chaînesSecurity Packages, que LSASS lit lors du démarrage du service. - Déclencheur – L’attaquant force LSASS à recharger les packages en redémarrant le
LSASSservice (nécessite un redémarrage du système ; pour le test, nous simulons en arrêtant et en redémarrant le serviceWinDefendqui force LSASS à recharger la liste des packages de sécurité).
- Préparation – déposer une DLL malveillante – L’adversaire crée une DLL (
-
Script de test de régression :
# ------------------------------------------------- # Simuler la persistance du pilote LSASS (T1547.008) # ------------------------------------------------- $dllPath = "$env:USERPROFILEDesktopmaliciousLSASS.dll" # Assurez-vous qu'un fichier DLL factice existe (espace réservé vide pour le test) if (-not (Test-Path $dllPath)) { New-Item -Path $dllPath -ItemType File -Force | Out-Null } # Sauvegarder la valeur originale $regPath = 'HKLM:SYSTEMCurrentControlSetControlLsaSecurity Packages' $original = (Get-ItemProperty -Path $regPath -Name '(Default)' -ErrorAction SilentlyContinue).'(Default)' # Ajouter le chemin de la DLL malveillante $newValue = @() if ($original) { $newValue = $original -split "`0" } $newValue += $dllPath Set-ItemProperty -Path $regPath -Name '(Default)' -Value $newValue -Force Write-Host "[+] Valeur du registre Security Packages modifiée pour inclure la DLL malveillante." # Optionnel : Forcer LSASS à recharger les packages sans redémarrage (redémarrer le service dépendant) Restart-Service -Name WinDefend -Force -ErrorAction SilentlyContinue Write-Host "[+] Demande de redémarrage du service pour provoquer le rechargement de LSASS." # Pause pour permettre la collecte des journaux Start-Sleep -Seconds 10 # Restaurer la valeur originale (étape de nettoyage exécutée séparément) -
Commandes de nettoyage :
# ------------------------------------------------- # Nettoyer après la simulation # ------------------------------------------------- $regPath = 'HKLM:SYSTEMCurrentControlSetControlLsaSecurity Packages' # Rétablir la valeur multi-chaînes originale capturée précédemment (si existante) if ($original) { Set-ItemProperty -Path $regPath -Name '(Default)' -Value $original -Force } else { # Supprimer complètement la valeur si elle était initialement vide Remove-ItemProperty -Path $regPath -Name '(Default)' -Force -ErrorAction SilentlyContinue } Write-Host "[+] Valeur du registre Security Packages originale restaurée." # Supprimer la DLL factice Remove-Item -Path "$env:USERPROFILEDesktopmaliciousLSASS.dll" -Force -ErrorAction SilentlyContinue Write-Host "[+] DLL malveillante temporaire supprimée." # Optionnel : Redémarrer l'hôte pour réinitialiser complètement l'état de LSASS (pas nécessaire pour le test) # Restart-Computer -Force