SOC Prime Bias: Moyen

13 Fév 2026 13:56

WSL dans l’écosystème des malwares

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
WSL dans l’écosystème des malwares
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

L’article explique comment un JavaScript malveillant peut détecter le Windows Subsystem for Linux (WSL) sur un hôte pour inventorier les informations utilisateur Windows et les répertoires. L’exemple—ottercookie-socketScript-module-3.js—est attribué à la famille de voleurs d’informations Cryxos. Utilisant des variables d’environnement et des sondages de système de fichiers, le code recherche des marqueurs de WSL puis cartographie les données Windows exposées via des points de montage WSL (par exemple, les chemins d’utilisateur sous /mnt/c/Users). Ce document présente cela comme un usage abusif de WSL en tant que capacité de vivre-à-terre.

Investigation

L’analyse pointe vers deux fonctions, is_wsl() et get_wu(), qui recherchent des artefacts spécifiques à WSL et récupèrent le nom d’utilisateur Windows connecté. Si WSL est présent, le malware élargit son champ de collecte en ajoutant /mnt à ses cibles de balayage pour qu’il puisse traverser les disques d’hôte via les chemins montés et inventorier les répertoires utilisateur. Le hachage SHA256 de l’échantillon n’a pas été publié, mais le nom du fichier a été fourni pour la recherche et la corrélation.

Atténuation

Surveillez l’utilisation inhabituelle de WSL sur les points de terminaison de production, y compris les activités suspectes via les partages wsl$ et l’accès inattendu aux volumes d’hôte montés. Désactivez ou restreignez WSL où il est inutile, et détectez les scripts qui interrogent les variables d’environnement de WSL ou lisent /proc/version. Également, surveillez le lancement des environnements Javascript générant cmd.exe pour afficher %USERNAME% lors du profilage de l’hôte.

Réponse

Si détecté, isolez le point de terminaison, préservez les preuves judiciaires des montages WSL et des fichiers accédés, et effectuez une analyse complète des malwares. Supprimez ottercookie-socketScript-module-3.js et toutes charges utiles associées, puis vérifiez que les configurations WSL sont renforcées ou désactivées.

"graph TB %% Définition des classes classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef data fill:#ccffcc %% Action : Vérifier l’environnement WSL action_check_wsl["<b>Action</b> – Vérifier l’environnement WSL<br/><b>Technique</b> – T1497.002: Contournement des virtualisations/salles blanches : Vérifications de l’activité utilisateur<br/><b>Description</b> : L’adversaire inspecte l’environnement pour des artefacts de virtualisation ou de salles blanches basés sur l’activité utilisateur pour éviter l’analyse."] class action_check_wsl action %% Nœud de technique pour T1497.002 (optionnel, montré dans le texte d’action) %% Action : Récupérer le nom d’utilisateur Windows action_retrieve_username["<b>Action</b> – Récupérer le nom d’utilisateur Windows via cmd.exe et /mnt/c/Users<br/><b>Technique</b> – T1056.004: Capture d’entrée : Interception API d’identification<br/><b>Description</b> : L’adversaire capture l’entrée des informations d’identification en interceptant les API Windows pertinentes."] class action_retrieve_username action %% Action : Localiser les chemins de données du navigateur action_locate_browser["<b>Action</b> – Localiser les chemins de données du navigateur<br/><b>Technique</b> – T1555.003: Informations d’identification à partir des stockages de mots de passe : Informations d’identification des navigateurs web<br/><b>Description</b> : L’adversaire recherche les répertoires typiques de navigateur pour accéder aux informations d’identification web stockées."] class action_locate_browser action %% Action : Ajouter le point de montage /mnt aux répertoires prioritaires action_add_mount["<b>Action</b> – Ajouter le point de montage /mnt aux répertoires prioritaires<br/><b>Technique</b> – T1564.004: Masquer les artefacts : Attributs de fichier NTFS<br/><b>Description</b> : L’adversaire utilise les attributs NTFS pour masquer les points de montage et prioriser les emplacements malveillants."] class action_add_mount action %% Action : Collecter des fichiers à partir des disques Windows montés action_collect_files["<b>Action</b> – Collecter des fichiers à partir des disques Windows montés<br/><b>Techniques</b> – T1025: Données à partir de médias amovibles; T1091: Réplication via médias amovibles<br/><b>Description</b> : L’adversaire collecte des données et réplique des fichiers malveillants via des médias amovibles montés."] class action_collect_files action %% Action : Collecter des informations d’identification à partir des stockages de navigateurs action_harvest_credentials["<b>Action</b> – Collecter des informations d’identification à partir des stockages de navigateurs<br/><b>Technique</b> – T1555.003: Informations d’identification à partir des stockages de mots de passe : Informations d’identification des navigateurs web<br/><b>Description</b> : Extraction des mots de passe sauvegardés, des cookies et des jetons de session à partir des navigateurs."] class action_harvest_credentials action %% Action : Mouvement latéral potentiel via les données collectées action_lateral_movement["<b>Action</b> – Mouvement latéral potentiel via les données collectées<br/><b>Description</b> : Utilisez les informations d’identification et fichiers récoltés pour se déplacer latéralement au sein du réseau."] class action_lateral_movement action %% Connexions action_check_wsl –>|conduit à| action_retrieve_username action_retrieve_username –>|conduit à| action_locate_browser action_check_wsl –>|permet| action_add_mount action_add_mount –>|permet| action_collect_files action_locate_browser –>|permet| action_harvest_credentials action_collect_files –>|permet| action_lateral_movement action_harvest_credentials –>|soutient| action_lateral_movement "

Flux d’attaque

Exécution de simulation

Prérequis : Le contrôle de télémetrie et de base doit avoir réussi.

Raison : 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.

  • Récit d’attaque & commandes :

    L’attaquant a réussi à s’introduire initialement sur la machine de la victime et cherche à inventorier le nom d’utilisateur connecté pour personnaliser les charges utiles. Pour rester sous le radar, l’adversaire utilise un shell de commande Windows natif (Living-off-the-Land) et exécute exactement echo %USERNAME% commande, qui développe la variable d’environnement au nom de l’utilisateur actuel. Cette activité génère un événement de création de processus cmd.exe avec la ligne de commande echo %USERNAME%, correspondant à la signature de la règle de détection.

  • Script de test de régression :

    # Simulez le cheval de Troie Cryxos récupérant le nom d'utilisateur via cmd.exe
    $cmd = "cmd.exe"
    $args = "/c echo %USERNAME%"
    Write-Host "Exécution : $cmd $args"
    Start-Process -FilePath $cmd -ArgumentList $args -NoNewWindow -Wait
  • Commandes de nettoyage :

    # Aucun artefact persistant ne reste; assurez-vous que toutes instances restantes de cmd.exe sont terminées
    Get-Process -Name cmd -ErrorAction SilentlyContinue | Stop-Process -Force