SOC Prime Bias: Médio

31 Mar 2026 16:57

Laboratórios de Segurança Elastic revelam BRUSHWORM e BRUSHLOGGER

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
Laboratórios de Segurança Elastic revelam BRUSHWORM e BRUSHLOGGER
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Elastic Security Labs descobriu duas famílias de malware personalizadas, BRUSHWORM e BRUSHLOGGER, usadas contra uma instituição financeira no sul da Ásia. BRUSHWORM é um backdoor modular que mantém persistência através de uma tarefa agendada, propaga-se via mídias removíveis e rouba arquivos de uma ampla gama de extensões. BRUSHLOGGER é um keylogger carregado lado a lado com DLL que captura sequências de teclas junto com o contexto da janela ativa e salva os logs em forma criptografada por XOR. Ambas as amostras de malware parecem ter um nível de sofisticação relativamente baixo e mostram sinais de desenvolvimento em andamento de tentativa e erro.

Investigação

Durante a investigação, os analistas recuperaram o executável backdoor paint.exe e o DLL de keylogger carregado lado a lado libcurl.dll, depois examinaram seus métodos de persistência, lógica de configuração, comportamento de propagação USB e diretórios de estagiamento de dados. Compilações de desenvolvimento mais antigas, como V1.exe, V2.exe e V4.exe, também foram encontradas no VirusTotal, onde estavam ligadas a uma infraestrutura de DNS dinâmica gratuita para comando e controle. O relatório também documentou as tarefas agendadas do malware, o mutex e as convenções de caminho de arquivo.

Mitigação

Os defensores devem impedir a execução de binários desconhecidos nos caminhos ProgramData e Público, monitorar a criação de tarefas agendadas nomeadas MSGraphics ou MSRecorder e detectar o mutex Windows-Updates-KB852654856. As organizações também devem desativar ou restringir o autorun de mídias removíveis e inspecionar nomes de arquivo do tipo isca suspeitos. O registro e a inspeção do tráfego WinHTTP para o domínio C2 identificado devem ser aplicados.

Resposta

Se for detectada atividade do BRUSHWORM ou BRUSHLOGGER, isole o endpoint, preserve as amostras paint.exe e libcurl.dll, capture evidências de tarefas agendadas e remova arquivos maliciosos de todos os diretórios de usuários e públicos. Os investigadores também devem examinar unidades removíveis em busca de binários do tipo isca, excluir a pasta de exfiltração preparada, redefinir credenciais afetadas e monitorar qualquer recuperação adicional de carga útil do servidor C2.

"graph TB %% Class definitions section classDef technique fill:#cfe2f3 %% Node definitions exec_check["<b>Técnica</b> – T1497.002 Evasão de Virtualização/Sandbox:<br/>Verifica atividade do usuário, resolução de tela, nome de usuário, nome do computador, strings de CPUID do hipervisor e movimentos do mouse para abortar em ambientes de análise."] class exec_check technique persistence_task["<b>Técnica</b> – T1053 Tarefa Agendada/Job:<br/>Cria uma tarefa agendada no Windows chamada MSGraphics que executa o backdoor a cada logon do usuário."] class persistence_task technique c2_contact["<b>Técnica</b> – T1071 Protocolo de Camada de Aplicação:<br/>O backdoor contata seu servidor C2 sobre HTTPS usando WinHTTP."] class c2_contact technique encrypted_channel["<b>Técnica</b> – T1573 Canal Criptografado:<br/>Estabelece um canal criptografado para baixar módulos adicionais."] class encrypted_channel technique shared_module["<b>Técnica</b> – T1129 Módulos Compartilhados:<br/>Baixa uma carga de DLL (Recorder.dll) do servidor C2."] class shared_module technique second_task["<b>Técnica</b> – T1053 Tarefa Agendada/Job:<br/>Cria uma segunda tarefa agendada que inicia Recorder.dll via rundll32.exe."] class second_task technique dll_side["<b>Técnica</b> – T1574.001 Carregamento Lateral de DLL:<br/>A libcurl.dll maliciosa é carregada lateralmente para sequestrar o fluxo de execução."] class dll_side technique keylogging["<b>Técnica</b> – T1056.001 Keylogging:<br/>DllMain instala um hook de teclado de baixo nível para capturar teclas digitadas, títulos de janelas e timestamps."] class keylogging technique obfuscation["<b>Técnica</b> – T1027 Arquivos ou Informações Ofuscados:<br/>Arquivos de log são criptografados por XOR; dados de configuração são escritos em texto claro e depois deletados."] class obfuscation technique local_staging["<b>Técnica</b> – T1074.001 Estagiamento Local de Dados:<br/>Arquivos coletados são copiados para C:UsersPublicSysteminfo e um log de hash é mantido para evitar exfiltração duplicada."] class local_staging technique usb_propagation["<b>Técnica</b> – T1092 Comunicação Através de Mídia Removível:<br/>Quando a Internet é acessível, o malware se copia para unidades USB anexadas usando nomes de arquivos do tipo isca."] class usb_propagation technique usb_data_exfil["<b>Técnica</b> – T1025 Dados de Mídia Removível:<br/>Continua o roubo de arquivos das unidades USB."] class usb_data_exfil technique physical_exfil["<b>Técnica</b> – T1052.001 Exfiltração Por Meio Físico:<br/>Se não houver Internet, arquivos roubados são copiados para mídia removível para exfiltração física."] class physical_exfil technique %% Connections showing flow exec_check –>|aciona| persistence_task persistence_task –>|executa| c2_contact c2_contact –>|estabelece| encrypted_channel c2_contact –>|baixa| shared_module shared_module –>|cria| second_task second_task –>|inicia| dll_side dll_side –>|carrega| keylogging keylogging –>|produz| obfuscation obfuscation –>|armazena| local_staging local_staging –>|copia para| usb_propagation usb_propagation –>|exfiltra de| usb_data_exfil local_staging –>|usa para| physical_exfil "

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-vôo de Telemetria e Linha de Base deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica (TTP) do adversário 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 e Comandos de Ataque:
    Um atacante obteve um DLL malicioso (evil.dll) que, quando executado via rundll32.exe, solta uma carga de ransomware e grava dados criptografados em uma unidade USB. Para evitar suspeitas, o atacante usa primeiro paint.exe para criar uma imagem de aparência inofensiva na mídia removível, depois usa rundll32.exe para carregar o DLL malicioso escondido no mesmo diretório. Ambas as ações geram eventos de criação de processo que correspondem à regra Sigma.

  • Script de Teste de Regressão:

    # ------------------------------
    # Simulação de abuso de Paint + Rundll32
    # ------------------------------
    
    # 1. Criar um diretório de trabalho temporário
    $workDir = "$env:TEMPPaintRundllSim"
    New-Item -ItemType Directory -Path $workDir -Force | Out-Null
    
    # 2. Copiar uma imagem legítima para o USB (simulado por $workDir)
    $imagePath = Join-Path $workDir "innocent.png"
    Invoke-WebRequest -Uri "https://via.placeholder.com/150" -OutFile $imagePath
    
    # 3. Iniciar o Paint para abrir a imagem (uso benigno – ainda corresponde à regra)
    Start-Process -FilePath "$env:WINDIRsystem32mspaint.exe" -ArgumentList "`"$imagePath`"" -PassThru | Out-Null
    
    # 4. Soltar um DLL malicioso (simulado; carga real seria oculta)
    $dllPath = Join-Path $workDir "evil.dll"
    $dllBytes = [byte[]] (0x4D,0x5A,0x90,0x00) # Cabeçalho PE mínimo de exemplo
    [IO.File]::WriteAllBytes($dllPath, $dllBytes)
    
    # 5. Executar o DLL via Rundll32 (este é o passo malicioso)
    Start-Process -FilePath "$env:WINDIRsystem32rundll32.exe" `
                 -ArgumentList "`"$dllPath`,EntryPoint`"" -PassThru | Out-Null
    
    # 6. Pausar para permitir a ingestão em SIEM
    Write-Host "Simulação executada. Aguardar ~30s para logs aparecerem em SIEM."
  • Comandos de Limpeza:

    # Remover arquivos temporários e processos
    Stop-Process -Name mspaint -ErrorAction SilentlyContinue
    Stop-Process -Name rundll32 -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPPaintRundllSim" -Recurse -Force
    Write-Host "Limpeza concluída."