SOC Prime Bias: Crítico

18 Fev 2026 16:42

Rastreamento de Campanhas de Malware com Material Reutilizado

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
Rastreamento de Campanhas de Malware com Material Reutilizado
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Esta campanha reutiliza uma imagem “transportadora” JPEG que esconde uma carga maliciosa entre as tags BaseStart- e -BaseEnd. O acesso inicial ocorre através da exploração do Microsoft Equation Editor (CVE-2017-11882) em um anexo manipulado, que faz o download de um HTA. O HTA executa PowerShell para recuperar um .NET estágio binário. A reutilização da mesma imagem em muitos samples sugere que o operador depende de componentes repetíveis.

Investigação

O pesquisador observou TELERADIO_IB_OBYEKTLRIN_BURAXILIS_FORMASI.xIs contendo a exploração do Equation Editor. A cadeia busca um HTA de um IP malicioso, que executa PowerShell para baixar uma segunda carga hospedada em outro IP. O estágio final é um binário .NET embutido na transportadora JPEG e recuperado pelos delimitadores BaseStart/-BaseEnd. Imagens transportadoras semelhantes foram encontradas em dezenas de submissões no VirusTotal.

Mitigação

Patch CVE-2017-11882 e mantenha o Office atualizado. Bloqueie ou restrinja a execução de HTA, confira a assinatura de scripts PowerShell e use filtragem de URL/IP para negar acesso à infraestrutura de hospedagem.

Resposta

Detecte e coloque em quarentena o anexo e a fase do HTA, e alerte sobre a atividade de download do PowerShell para os IPs identificados. Isole hosts afetados e realize análises forenses de memória para localizar e remover a carga .NET na memória.

graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ffcc99 %% Nodes node_phishing[“<b>Ação</b> – <b>T1566.001 Phishing: Anexo Spearphishing</b><br/><b>Descrição</b>: Arquivo .xls malicioso explorando CVEu20112017u201111882 enviado por e-mail.”] class node_phishing action node_user_exec[“<b>Ação</b> – <b>T1204.002 Execução pelo Usuário</b><br/><b>Descrição</b>: A vítima abre o anexo malicioso.”] class node_user_exec action node_exploit_client[“<b>Ação</b> – <b>T1203 Exploração para Execução no Cliente</b><br/><b>Descrição</b>: Vulnerabilidade do Editor de Equações dispara download de conteúdo malicioso.”] class node_exploit_client action node_mshta[“<b>Ação</b> – <b>T1218.005 Execução Proxy de Binário do Sistema: Mshta</b><br/><b>Descrição</b>: Arquivo HTA baixado e executado via mshta.”] class node_mshta action node_powershell[“<b>Ação</b> – <b>T1059.001 Interpretador de Comando e Script: PowerShell</b><br/><b>Descrição</b>: Script PowerShell obtido de servidor remoto e executado.”] class node_powershell action node_web_comm[“<b>Ação</b> – <b>T1102.003 Serviço Web: Comunicação Unidirecional</b><br/><b>Descrição</b>: Script busca uma imagem PNG de um servidor remoto.”] class node_web_comm action node_stego[“<b>Ação</b> – <b>T1027.003 Arquivos ou Informações Ofuscadas: Esteganografia</b><br/><b>Descrição</b>: PNG contém payload Base64 delimitado pelos marcadores BaseStart e BaseEnd.”] class node_stego action node_dotnet[“<b>Ação</b> – <b>Execução</b><br/><b>Descrição</b>: Payload binário .NET embutido é executado no host.”] class node_dotnet process %% Connections node_phishing –>|leva a| node_user_exec node_user_exec –>|leva a| node_exploit_client node_exploit_client –>|leva a| node_mshta node_mshta –>|executa| node_powershell node_powershell –>|baixa| node_web_comm node_web_comm –>|recupera| node_stego node_stego –>|contém| node_dotnet

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Telemetria & Cheque de Pré-vôo deve ter sido aprovado.

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 as TTPs identificadas e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa de Ataque & Comandos:
    Um adversário explorou uma vulnerabilidade no lado do cliente que serve um arquivo HTA malicioso. O HTA lança PowerShell com uma linha de comando que incorpora uma carga maliciosa (por exemplo, Invoke‑Expression para lançar calc.exe) codificada em Base64. A carga está entre as strings BaseStart- and -BaseEnd para que o atacante possa extraí-la confiavelmente em tempo real. O comando executado no host comprometido é:

    powershell.exe -NoProfile -Command "$b='BaseStart-$( [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) )-BaseEnd'; $payload=$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($payload)))"

    Esta linha de comando satisfaz ambas as condições selection_base_start and e selection_base_end, fazendo com que a regra dispare. condições, fazendo com que a regra seja acionada.

  • Script de Teste de Regressão: O seguinte script PowerShell autônomo reproduz o comportamento malicioso e pode ser executado em qualquer host Windows com a telemetria habilitada acima.

    # Script de Teste de Regressão – aciona a regra de detecção
    # 1. Construir carga codificada em Base64 (lançar calc.exe)
    $payload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe'))
    
    # 2. Montar a linha de comando completa com delimitadores
    $cmd = "BaseStart-$payload-BaseEnd"
    
    # 3. Executar PowerShell com a linha de comando criada
    $fullCommand = "powershell.exe -NoProfile -Command `"& {`$b='$cmd'; `$payload=`$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$payload)))`""
    
    # 4. Executar o comando (isso iniciará o calc.exe)
    Invoke-Expression $fullCommand
  • Comandos de Limpeza: Remova quaisquer artefatos e finalize o processo gerado, se necessário.

    # Limpeza – feche a Calculadora se ainda estiver em execução e limpe o histórico de comandos
    Get-Process calc -ErrorAction SilentlyContinue | Stop-Process -Force
    # Opcionalmente, limpe o histórico do PowerShell (apenas para a sessão atual)
    Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue