Faux Site de Support Windows Livre un Logiciel Malveillant Voleur de Mots de Passe
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un site web en typosquattage se faisant passer pour le support de Microsoft pousse une fausse mise à jour Windows MSI. Une fois installé, le MSI déploie une application basée sur Electron qui déclenche un lanceur VBS, lance un interpréteur Python renommé, et charge des modules de vol d’informations d’identification. Les données volées sont routées par Render, Cloudflare Workers et GoFile, tandis que la persistance est établie via une valeur de registre Run et un raccourci de démarrage. L’activité est adaptée aux utilisateurs francophones.
Enquête
Les chercheurs ont obtenu WindowsUpdate 1.0.0.msi et ont confirmé qu’il dépose une enveloppe Electron (WindowsUpdate.exe) ainsi qu’un lanceur VBS (AppLauncher.vbs). Le processus Electron génère ensuite un environnement d’exécution Python caché (_winhost.exe), qui importe des bibliothèques communes de vol d’informations pour collecter les identifiants de navigateurs, tokens Discord et données de paiement. La télémétrie réseau montre un profilage initial de l’hôte vers www.myexternalip.com et ip-api.com, suivi d’un trafic C2 vers datawebsync-lvmv.onrender.com et sync-service.system-telemetry.workers.dev, avec exfiltration observée vers store8.gofile.io. La persistance est établie en créant une valeur SecurityHealth sous HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun et en plaçant Spotify.lnk dans le dossier de démarrage de l’utilisateur.
Atténuation
Supprimez la valeur Run SecurityHealth et supprimez Spotify.lnk du dossier de démarrage de l’utilisateur. Supprimez le répertoire WindowsUpdate sous AppDataLocalPrograms et retirez le dossier temporaire WinGettools. Réinitialisez les mots de passe stockés, activez le MFA/2FA, et effectuez une analyse complète avec des protections anti-malware mises à jour.
Réponse
Si des alertes sont déclenchées sur le MSI suspect, l’exécution VBS ou la création de la clé Run, isolez l’hôte, capturez les données volatiles, et effectuez une analyse forensique des chemins AppData pertinents. Bloquez les domaines C2 identifiés et suivez le trafic vers les services de reconnaissance listés. Retirez les artefacts de persistance et renforcez les workflows de mise à jour sûrs pour empêcher l’exécution répétée.
graph TB classDef action fill:#99ccff classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef collection fill:#ffd580 classDef credential fill:#ffb3ba classDef defense fill:#d9d9d9 classDef c2 fill:#ffeb99 classDef exfil fill:#c2c2f0 action_user_click[« Action – phishing: clic sur un lien malveillant »] class action_user_click action process_msiexec[« Processus – exécution MSI via msiexec »] class process_msiexec process process_vbs[« Processus – VBScript exécuté »] class process_vbs process process_electron[« Processus – application Electron déguisée »] class process_electron process process_python[« Processus – Python déguisé »] class process_python process persistence_registry[« Persistance – clés Run du registre »] class persistence_registry persistence persistence_shortcut[« Persistance – raccourci de démarrage »] class persistence_shortcut persistence collection_ip[« Collecte – adresses IP »] class collection_ip collection credential_browser[« Identifiants – mots de passe navigateur »] class credential_browser credential credential_discord[« Identifiants – tokens Discord »] class credential_discord credential defense_terminate[« Évasion – arrêt des processus de sécurité »] class defense_terminate defense defense_obfuscation[« Évasion – JavaScript obfusqué »] class defense_obfuscation defense c2_communicate[« C2 – communication HTTP »] class c2_communicate c2 exfil_cloud[« Exfiltration – envoi vers le cloud »] class exfil_cloud exfil action_user_click –> process_msiexec process_msiexec –> process_vbs process_vbs –> process_electron process_electron –> process_python process_python –> persistence_registry process_python –> persistence_shortcut process_python –> collection_ip process_python –> credential_browser process_python –> credential_discord process_python –> defense_terminate process_python –> defense_obfuscation defense_obfuscation –> c2_communicate c2_communicate –> exfil_cloud
Flux du Attaque
Détections
Infiltration/Exfiltration de données possibles / C2 via des services/outils tiers (via proxy)
Voir
Tentative de communication de domaine de recherche d’IP possible (via dns)
Voir
Infiltration/Exfiltration de données possibles / C2 via des services/outils tiers (via dns)
Voir
Binaire/scrips suspects dans l’emplacement d’autodémarrage (via file_event)
Voir
LOLBAS WScript / CScript (via process_creation)
Voir
Points de persistance possibles [ASEPs – Hive Software/NTUSER] (via registry_event)
Voir
IOCs (HashSha256) à détecter : Ce faux site de support Windows distribue des logiciels malveillants voleurs de mots de passe
Voir
Connexions réseau suspectes liées au malware voleur de mots de passe [Connexion réseau Windows]
Voir
Faux site de support Windows distribue un malware voleur de mots de passe [Création de processus Windows]
Voir
Persistance dans le registre via une entrée de santé de sécurité Windows fausse [Événement de registre Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de télémétrie et de base doit avoir réussi.
Rationale : 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 visent à générer la télémétrie exacte attendue par la logique de détection.
-
Narration et commandes d’attaque :
Un adversaire a obtenu une emprise sur le poste de travail de l’utilisateur et souhaite maintenir la persistance entre les redémarrages tout en évitant une inspection occasionnelle. Ils déposent une charge utile malveillante nommée WindowsUpdate.exe dans le dossier AppData de l’utilisateur, puis créent une clé Run nommée SecurityHealth qui pointe vers cette charge utile, imitant délibérément le service légitime “Windows Security Health”. Comme la règle surveille exactement ce chemin de clé, l’activité devrait être signalée.powershell # 1. Déposez la charge utile malveillante (simulée avec un fichier texte inoffensif pour les tests) $payloadPath = "$env:APPDATAMicrosoftWindowsUpdateWindowsUpdate.exe" New-Item -ItemType Directory -Path (Split-Path $payloadPath) -Force | Out-Null Set-Content -Path $payloadPath -Value "Ceci est un exécutable malveillant factice pour les tests." -Encoding ASCII # 2. Créez la clé Run malveillante qui se fait passer pour SecurityHealth $runKey = 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun' New-ItemProperty -Path $runKey -Name 'SecurityHealth' -Value $payloadPath -PropertyType String -Force -
Script de test de régression :
powershell # ------------------------------------------------- # Test de régression – Mascarade de persistance dans le registre # ------------------------------------------------- # Objectif : Reproduire la télémétrie exacte que la règle Sigma attend. # Fonctionne sur Windows 10/11 avec des privilèges administratifs. # Définir l'emplacement de la charge utile $payload = "$env:APPDATAMicrosoftWindowsUpdateWindowsUpdate.exe" # Assurez-vous que le répertoire existe if (-not (Test-Path (Split-Path $payload))) { New-Item -ItemType Directory -Path (Split-Path $payload) -Force | Out-Null } # Créez un exécutable factice (dans un vrai test, il s'agirait du binaire malveillant) Set-Content -Path $payload -Value "EMPLACEMENT_BINAIRE_MALVEILLANT" -Encoding ASCII # Enregistrez la clé Run avec un nom masqué $runKeyPath = 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun' New-ItemProperty -Path $runKeyPath -Name 'SecurityHealth' -Value $payload -PropertyType String -Force Write-Host "Clé Run malveillante créée. Attendez une alerte de détection sous peu." # ------------------------------------------------- -
Commandes de nettoyage :
powershell # Supprimez la clé Run malveillante Remove-ItemProperty -Path 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun' -Name 'SecurityHealth' -ErrorAction SilentlyContinue # Supprimez le fichier de charge utile factice et son dossier $payloadDir = Split-Path "$env:APPDATAMicrosoftWindowsUpdateWindowsUpdate.exe" Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue Write-Host "Nettoyage terminé."