Rastreamento de Campanhas de Malware com Material Reutilizado
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
Detecções
Comportamento Suspeito de Evasão de Defesa LOLBAS MSHTA pela Detecção de Comandos Associados (via process_creation)
Ver
Strings Suspeitas do Powershell (via powershell)
Ver
Download de Arquivo Suspeito Diretamente por IP (via proxy)
Ver
Processo Filho Suspeito do Editor de Equações (via cmdline)
Ver
Strings Suspeitas do Powershell (via cmdline)
Ver
IOCs (DestinationIP) a serem detectados: Rastreando Campanhas de Malware Com Material Reutilizado
Ver
IOCs (SourceIP) a serem detectados: Rastreando Campanhas de Malware Com Material Reutilizado
Ver
Detectar HTA Malicioso e Entrega de Carga de Imagem Base64 [Proxy]
Ver
Obtendo Carga do PowerShell com Técnica Codificada em Base64 [Windows Powershell]
Ver
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‑Expressionpara lançarcalc.exe) codificada em Base64. A carga está entre as stringsBaseStart-and-BaseEndpara 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_startande 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