Analyse de LausivLoader : Suivi des données à travers l’exécution de logiciels malveillants en plusieurs étapes
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne de malspam distribue un fichier JavaScript malveillant à l’intérieur d’une archive pour déployer le malware LausivLoader. La chaîne d’attaque utilise une technique inhabituelle pour transférer des données entre les étapes via des variables d’environnement de processus et des fichiers temporaires. L’infection progresse finalement à travers plusieurs chargeurs .NET et de la stéganographie avant de livrer la charge finale.
Enquête
L’analyste a identifié un fichier JavaScript à l’intérieur d’un .r01 archive qui utilisait un code obfusqué pour lancer une commande PowerShell via conhost.exe. Une analyse plus approfondie a montré que les variables d’environnement Kv7408 and Kv562 sont utilisées pour transmettre les chemins de fichiers dans l’étape PowerShell, qui déchiffre ensuite un exécutable .NET. Une étape de chargeur ultérieure utilise de la stéganographie pour extraire une autre charge utile d’une image PNG.
Atténuation
Les organisations doivent appliquer des contrôles SPF et DMARC stricts pour réduire l’usurpation d’identité par e-mail. La protection des terminaux devrait détecter les activités suspectes de WScript et PowerShell, en particulier les commandes codées ou la manipulation des variables d’environnement. Les équipes de sécurité devraient également surveiller la création de tâches planifiées inhabituelles et conhost.exe l’exécution avec le paramètre --headless. paramètre.
Réponse
Si une activité de LausivLoader est détectée, les hôtes affectés doivent être isolés immédiatement pour empêcher l’exécution de charges supplémentaires ou les mouvements latéraux. Les intervenants devraient réaliser des analyses forensiques de la mémoire pour identifier les assemblages .NET injectés et inspecter %TEMP% and %LOCALAPPDATA% pour les fichiers malveillants résiduels. Les tâches planifiées doivent également être examinées pour les entrées non autorisées telles que MicrosoftEdgeUpdateTaskCore.
Flux d’attaque
Nous mettons encore à jour cette partie.
Détections
Possibilité d’exécution via des lignes de commande PowerShell cachées (via cmdline)
LOLBAS WScript / CScript (via process_creation)
LOLBAS Conhost (via cmdline)
Chaînes PowerShell suspectes (via powershell)
Tâche planifiée suspecte (via audit)
IOC (HashSha256) pour détecter : analyse de LausivLoader, ou comment transmettre des données entre les étapes de malware
IOC (HashMd5) pour détecter : analyse de LausivLoader, ou comment transmettre des données entre les étapes de malware
Détection des tentatives de patch AmsiScanBuffer et AmsiScanString [Windows Sysmon]
Exécution de commande codée PowerShell [Windows PowerShell]
Exécution de simulation
-
Narrative et commandes de l’attaque : L’adversaire cherche à contourner l’inspection simple des lignes de commande basée sur des mots-clés. Pour cela, il prépare une commande codée en Base64 qui effectue une action simple (dans ce cas, écrire un fichier factice pour simuler le déploiement de la charge utile). En utilisant le
-EncodedCommandparamètre, ils tentent de masquer la chaîne en clairWrite-Output 'Compromised'à partir d’une observation occasionnelle et de filtres de sécurité basiques. -
Script de test de régression : Ce script génère une version codée en Base64 d’une commande simple et l’exécute en utilisant le paramètre exact ciblé par la règle de détection.
# 1. Définir la commande à obfusquer $command = "Write-Output 'Test de détection : commande codée exécutée'" # 2. Convertir la commande en Base64 (UTF-16LE est requis pour PowerShell) $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) # 3. Exécuter la commande en utilisant le paramètre -EncodedCommand pour déclencher la règle Write-Host "Exécution de la commande codée : $encodedCommand" Start-Process powershell.exe -ArgumentList "-EncodedCommand $encodedCommand" -Wait -
Commandes de nettoyage :
# Aucun artefact persistant n'a été créé par le script de simulation. # Si des fichiers ont été créés, ils devraient être supprimés ici. Write-Host "Nettoyage de la simulation terminé. Aucun artefact restant."