Outil Swarmer Évitant EDR Avec une Modification Discrète sur le Registre Windows pour la Persistance
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Swarmer est un utilitaire de persistance Windows de faible privilège qui crée une ruche de profil utilisateur obligatoire (NTUSER.MAN) et la modifie via l’API de registre hors ligne. Comme il ne repose pas sur les API Windows Reg* conventionnelles, il peut implanter une persistance de clé Run tout en réduisant la visibilité sur la télémétrie EDR réglée sur le comportement d’écriture de registre standard. La méthode abuse de la gestion des profils obligatoires pour transporter les entrées de démarrage à travers les connexions sans droits administratifs. Swarmer est disponible soit sous forme d’exécutable autonome, soit comme module PowerShell et peut être utilisé de manière à minimiser les artefacts sur disque.
Investigation
Le rapport décrit le flux complète de Swarmer : il exporte la ruche HKCU actuelle, modifie les données exportées pour inclure la persistance de démarrage, et reconstruit la ruche en utilisant les routines Offreg.dll telles que ORCreateHive et ORSetValue. La ruche reconstruite est ensuite placée en tant que NTUSER.MAN dans le chemin du profil utilisateur afin qu’elle soit appliquée lors de la connexion. L’exécution est contrôlée via des options en ligne de commande qui définissent la valeur de démarrage cible et l’emplacement de la charge utile à exécuter. Les auteurs ont validé la technique sur Windows 10 et Windows 11.
Atténuation
Surveiller la création de NTUSER.MAN dans des contextes utilisateur où les profils obligatoires ne sont pas attendus, et alerter sur le chargement de Offreg.dll par des processus inhabituels. Protéger et vérifier l’intégrité des répertoires utilisés pour les profils obligatoires, et établir une base de référence des opérations légitimes de registre hors ligne afin que les écarts soient évidents. Ajouter des détections pour les changements de ruche suspects qui prennent effet à la connexion plutôt qu’à l’exécution. Lorsque possible, restreindre la capacité d’un utilisateur à créer ou manipuler des artefacts de profil obligatoires.
Réponse
Si identifié, isoler le point de terminaison, acquérir la ruche NTUSER.MAN pour analyse, et énumérer toutes les entrées de clé Run injectées. Supprimer les valeurs de démarrage non autorisées et restaurer une ruche utilisateur de confiance pour éliminer la persistance. Effectuer un examen médico-légal plus large pour confirmer qu’aucune charge utile secondaire ou chemin de persistance alternatif n’a été établi, et rechercher dans toute la flotte le même motif d’écriture de ruche. Renforcer les contrôles de moindre privilège pour empêcher les utilisateurs de faible privilège de créer des profils obligatoires.
Flux d’attaque
Nous mettons encore à jour cette partie. Inscrivez-vous pour être averti
Prévenez-moiDétections
Tentative possible d’exécution de l’utilitaire Swarmer (via powershell)
Voir
Tentative possible d’exécution de l’utilitaire Swarmer (via cmdline)
Voir
Détection de la persistance du registre de l’outil Swarmer via NTUSER.MAN et API de registre hors ligne [Événement de registre Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle préliminaire de télémétrie & de base doit avoir réussi.
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 TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront un mauvais diagnostic.
-
Narratif d’attaque & Commandes :
L’attaquant a obtenu un point d’appui sur un hôte compromis et souhaite établir une persistance qui survit à la connexion utilisateur sans toucher les ruches de registre standard (pour échapper aux crochets EDR). En utilisant l’outil Swarmer , l’attaquant :- Détermine le répertoire de profil de l’utilisateur cible (
C:Usersvictim). - Crée un fichier de ruche malveillant (
NTUSER.MAN) contenant une clé Run qui lance une charge utile de porte dérobée lors de la connexion. - Écrit directement le fichier dans le profil de la victime en utilisant l’I/O de fichiers bas-niveau (contournant les appels de haut-niveau WinAPI).
- Appelle l’API de registre hors ligne pour charger la nouvelle ruche créée en mémoire, enregistre la clé Run, et finalement appelle
pour charger la nouvelle ruche créée en mémoire, enregistre la clé Run, et finalement appellepour persister les changements.pour persister les changements.Les deux actions génèrent :
– création de fichier se terminant par
- – création de fichier se terminant par – un processus (
NTUSER.MAN. - – un processus ( ) dont la ligne de commande contient
) dont la ligne de commande contient) whose command line containspour charger la nouvelle ruche créée en mémoire, enregistre la clé Run, et finalement appelle(ou un autre indicateur OR*).
- Détermine le répertoire de profil de l’utilisateur cible (
-
Script de test de régression :
#-------------------------------------------------------------- # Simulation de persistance de registre de type Swarmer (PowerShell) #-------------------------------------------------------------- # 1. Définir le chemin du profil de la victime $victimProfile = "$env:SystemDriveUsersvictim" $ntUserManPath = Join-Path $victimProfile "NTUSER.MAN" # 2. Créer un fichier de ruche minimal (conteneur binaire) # Dans une attaque réelle, cela serait une ruche de registre conçue. $hiveBytes = [byte[]] (0..255) # données factices [IO.File]::WriteAllBytes($ntUserManPath, $hiveBytes) # 3. Invoquer l'API de registre hors ligne via un exécutable d'assistance. # Supposons que swarmer_helper.exe soit un binaire compilé qui encapsule # les fonctions natives de registre hors ligne. $helper = "C:Toolsswarmer_helper.exe" $args = @( "ORCreateHive", "`"$ntUserManPath`"" "ORSetValue", "HKLMSoftwareMicrosoftWindowsCurrentVersionRunmyBackdoor", "`"C:Malwarebackdoor.exe`"" "ORSaveHive", "`"$ntUserManPath`"" ) & $helper $args #-------------------------------------------------------------- -
Commandes de nettoyage :
# Supprimer la ruche malveillante et la décharger si nécessaire Remove-Item -Path "$env:SystemDriveUsersvictimNTUSER.MAN" -Force # Si l'assistant a laissé des ruches en mémoire, déchargement forcé (exemple) & "$env:ProgramFilesWindows Kits10binx64reg.exe" unload "HKUTempHive"