SOC Prime Bias: Médio

13 Fev 2026 13:56

WSL no Ecossistema de Malware

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
WSL no Ecossistema de Malware
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo explica como um JavaScript malicioso pode detectar o Windows Subsystem for Linux (WSL) em um host e, em seguida, enumerar informações de usuários e diretórios do Windows. A amostra—ottercookie-socketScript-module-3.js—é atribuída à família de infostealers Cryxos. Utilizando variáveis de ambiente e sondagens no sistema de arquivos, o código busca por marcadores do WSL e mapeia dados do Windows expostos através de pontos de montagem do WSL (por exemplo, caminhos de usuários sob /mnt/c/Users). O artigo enquadra isso como o WSL sendo usado de forma indevida como uma capacidade de viver da terra.

Investigação

A análise aponta para duas funções, is_wsl() e get_wu(), que buscam artefatos específicos do WSL e recuperam o nome de usuário do Windows logado. Se o WSL estiver presente, o malware expande seu escopo de coleta adicionando /mnt aos seus alvos de verificação para que possa percorrer as unidades do host através dos caminhos montados e enumerar diretórios de usuários. O hash SHA256 da amostra não foi publicado, mas o nome do arquivo foi fornecido para caça e correlação.

Mitigação

Observe o uso incomum do WSL em endpoints de produção, incluindo atividade suspeita via compartilhamentos wsl$ e acesso inesperado a volumes do host montados. Desative ou restrinja o WSL onde não for necessário, e detecte scripts que consultem variáveis de ambiente do WSL ou leiam /proc/version. Além disso, monitore para runtimes de JavaScript iniciando cmd.exe para ecoar %USERNAME% durante o perfilamento do host.

Resposta

Se detectado, isole o endpoint, preserve evidências forenses de montagens e arquivos acessados do WSL, e execute uma varredura completa de malware. Remova o ottercookie-socketScript-module-3.js e quaisquer cargas relacionadas, depois verifique se as configurações do WSL estão fortalecidas ou desativadas.

"graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef data fill:#ccffcc %% Action: Check for WSL environment action_check_wsl["<b>Ação</b> – Verifique o ambiente WSL<br/><b>Técnica</b> – T1497.002: Evasão de Virtualização/Sandbox: Verificações Baseadas em Atividade do Usuário<br/><b>Descrição</b>: O adversário inspeciona o ambiente em busca de artefatos de virtualização ou sandbox com base na atividade do usuário para evitar análise."] class action_check_wsl action %% Technique node for T1497.002 (optional, shown within action text) %% Action: Retrieve Windows username action_retrieve_username["<b>Ação</b> – Recupere o nome de usuário do Windows via cmd.exe e /mnt/c/Users<br/><b>Técnica</b> – T1056.004: Captura de Entrada: Captura de API de Credencial<br/><b>Descrição</b>: O adversário captura a entrada de credenciais ao capturar APIs relevantes do Windows."] class action_retrieve_username action %% Action: Locate browser data paths action_locate_browser["<b>Ação</b> – Localizar caminhos de dados do navegador<br/><b>Técnica</b> – T1555.003: Credenciais de Armazenamento de Senhas: Credenciais de Navegadores da Web<br/><b>Descrição</b>: O adversário pesquisa em diretórios típicos de navegadores para acessar credenciais web armazenadas."] class action_locate_browser action %% Action: Add /mnt mount point to priority directories action_add_mount["<b>Ação</b> – Adicionar ponto de montagem /mnt a diretórios prioritários<br/><b>Técnica</b> – T1564.004: Ocultar Artefatos: Atributos de Arquivo NTFS<br/><b>Descrição</b>: O adversário usa atributos NTFS para ocultar pontos de montagem e priorizar locais maliciosos."] class action_add_mount action %% Action: Collect files from mounted Windows drives action_collect_files["<b>Ação</b> – Coletar arquivos de unidades Windows montadas<br/><b>Técnicas</b> – T1025: Dados de Mídia Removível; T1091: Reprodução por Mídia Removível<br/><b>Descrição</b>: O adversário coleta dados e replica arquivos maliciosos via mídia removível montada."] class action_collect_files action %% Action: Harvest credentials from browser stores action_harvest_credentials["<b>Ação</b> – Coletar credenciais dos armazenamentos de navegador<br/><b>Técnica</b> – T1555.003: Credenciais de Armazenamento de Senhas: Credenciais de Navegadores da Web<br/><b>Descrição</b>: Extraiu senhas salvas, cookies e tokens de sessão de navegadores."] class action_harvest_credentials action %% Action: Potential lateral movement via collected data action_lateral_movement["<b>Ação</b> – Movimento lateral potencial via dados coletados<br/><b>Descrição</b>: Use credenciais e arquivos colhidos para mover-se lateralmente dentro da rede."] class action_lateral_movement action %% Connections action_check_wsl –>|leads_to| action_retrieve_username action_retrieve_username –>|leads_to| action_locate_browser action_check_wsl –>|enables| action_add_mount action_add_mount –>|enables| action_collect_files action_locate_browser –>|enables| action_harvest_credentials action_collect_files –>|enables| action_lateral_movement action_harvest_credentials –>|supports| action_lateral_movement "

Fluxo de Ataque

Execução da Simulação

Pré-requisito: O Check de Pré-voo de Telemetria & Base deve ter passado.

Justificação: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa de Ataque & Comandos:

    O atacante ganhou uma posição inicial na máquina da vítima e busca enumerar o nome de usuário logado para personalizar as cargas úteis. Para permanecer despercebido, o adversário usa um shell de comando nativo do Windows (Living-off-the-Land) e executa o comando exato echo %USERNAME% comando, que expande a variável de ambiente para o nome do usuário atual. Essa atividade gera um evento de criação de processo cmd.exe com a linha de comando echo %USERNAME%, correspondendo à assinatura da regra de detecção.

  • Script de Teste de Regressão:

    # Simular o trojan Cryxos recuperando o nome de usuário via cmd.exe
    $cmd = "cmd.exe"
    $args = "/c echo %USERNAME%"
    Write-Host "Executando: $cmd $args"
    Start-Process -FilePath $cmd -ArgumentList $args -NoNewWindow -Wait
  • Comandos de Limpeza:

    # Nenhum artefato persistente resta; certifique-se de que quaisquer instâncias remanescentes de cmd.exe sejam encerradas
    Get-Process -Name cmd -ErrorAction SilentlyContinue | Stop-Process -Force