La porte dérobée SLEEPWALKER utilise son propre langage de commande
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
SLEEPWALKER est une porte dérobée passive hautement sophistiquée qui reste en sommeil en mémoire jusqu’à son activation par un paquet de déclenchement réseau spécialement conçu. Elle utilise un langage de commande en bytecode personnalisé pour effectuer des tâches telles que l’exfiltration de données, le mouvement latéral et l’exécution de shellcode en mémoire. En évitant le comportement traditionnel de beaconing, le malware devient nettement plus difficile à détecter par la surveillance réseau conventionnelle.
Investigation
L’enquête a révélé que SLEEPWALKER est une DLL Windows 64 bits conçue pour le chargement de DLL secondaire dans le processus ESET Management Agent (ERAAgent.exe). Les chercheurs ont identifié un schéma de cryptage AES-256-CCM personnalisé et un interpréteur de bytecode unique prenant en charge 23 instructions. L’analyse a également révélé des méthodes de communication furtives, y compris le sniffing de sockets bruts, des déclencheurs basés sur DNS et l’abus de VMware VMCI.
Atténuation
Les organisations devraient surveiller les DLL non autorisées, en particulier les fichiers se faisant passer pour dpapi.dll, situés aux côtés des composants de l’agent de gestion ESET. Il est également essentiel de renforcer les paramètres du registre relatifs à l’accès anonyme et NullSessionPipes . Les équipes de sécurité devraient également surveiller les interfaces réseau pour une activité inhabituelle en mode promiscuité pouvant indiquer une inspection passive du trafic.
Réponse
Si SLEEPWALKER est détecté, les hôtes affectés doivent être considérés comme totalement compromis et reconstruits à partir de sauvegardes connues. Les intervenants en cas d’incident devraient effectuer une analyse médico-légale du répertoire contenant ERAAgent.exe pour identifier l’origine de la DLL chargée secondairement. Les configurations du registre doivent également être vérifiées pour les modifications non autorisées impliquant LSA et LanmanServer paramètres.
Flux d’attaque
Nous mettons toujours à jour cette partie.
Détections
Agent de gestion ESET (ERAAgent) Chargement secondaire de DLL potentiel (via image_load)
IOC (HashSha256) pour détecter : SLEEPWALKER : une porte dérobée passive avec son propre langage de commande
IOC (HashSha1) pour détecter : SLEEPWALKER : une porte dérobée passive avec son propre langage de commande
IOC (HashMd5) pour détecter : SLEEPWALKER : une porte dérobée passive avec son propre langage de commande
Détection du mode promiscuité de la porte dérobée passive SLEEPWALKER et du paquet de déclenchement [connexion réseau Windows]
Détection de la porte dérobée SLEEPWALKER avec un nom de processus spécifique [création de processus Windows]
## Exécution de la simulation
Prérequis : le contrôle préalable de télémétrie et de ligne de base doit avoir été passé.
Justification : 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. Les exemples abstraits ou non liés entraîneront un mauvais diagnostic.
-
Narratif et commandes d’attaque : L’adversaire vise à déployer la porte dérobée SLEEPWALKER. Pour contourner la surveillance standard, ils créent un répertoire trompeur nommé
C:WindowsSystem32dpapi.dll(se faisant passer pour un répertoire DLL). À l’intérieur de ce dossier, ils placent le binaire malveillant renommé enERAAgent.exe. Lors de son exécution, le chemin d’image completC:WindowsSystem32dpapi.dllERAAgent.execorrespond à l’exigence de la logique de détection pour le suffixe spécifique et la présence de la chaînedpapi.dll. -
Script de test de régression :
# Script de simulation pour validation de détection de SLEEPWALKER $targetDir = "C:UsersPublicDocumentsdpapi.dll" $exeName = "ERAAgent.exe" $exePath = Join-Path $targetDir $exeName # 1. Créer la structure de répertoire trompeuse if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force } # 2. Créer un exécutable factice pour simuler la porte dérobée # Nous utilisons une copie renommée de cmd.exe pour garantir qu'il s'agit d'un véritable exécutable Copy-Item "C:WindowsSystem32cmd.exe" -Destination $exePath -Force # 3. Exécuter la 'porte dérobée' pour déclencher la détection Write-Host "Exécution de la porte dérobée simulée : $exePath" Start-Process -FilePath $exePath -ArgumentList "/c echo SLEEPWALKER_TRIGGERED" -WindowStyle Hidden Write-Host "Exécution de la simulation terminée." -
Commandes de nettoyage :
# Script de nettoyage pour supprimer les artefacts de simulation $targetDir = "C:UsersPublicDocumentsdpapi.dll" if (Test-Path $targetDir) { Remove-Item -Path $targetDir -Recurse -Force } Write-Host "Nettoyage terminé. Artefacts supprimés."