ErrTraffic: Dentro de um Crescente Framework de Distribuição de Malware ClickFix
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
ErrTraffic é uma estrutura maliciosa em JavaScript oferecida por meio de um modelo de malware como serviço. Ela é principalmente injetada em sites WordPress comprometidos para entregar páginas de engenharia social no estilo ClickFix e cargas de malware subsequentes. A estrutura também usa a técnica EtherHiding para descobrir infraestrutura de comando e controle através de contratos inteligentes em blockchain.
Investigação
Pesquisadores do Sekoia TDR identificaram dois clusters de atividade separados, referidos como o cluster “Analytics” e o cluster “Beer”. A investigação revelou vários caminhos de implantação, incluindo backdoors em PHP no WordPress, ataques de preenchimento de credenciais para acesso inicial e campanhas de malvertising que imitaram plataformas de IA. A análise forense também mostrou diferenças claras no estilo de codificação, uso de comandos e padrões de infraestrutura entre os dois clusters.
Mitigação
As organizações devem impor uma forte higiene de credenciais e autenticação multifator para reduzir o risco de comprometimento de administradores do WordPress. Mudanças regulares de plugins do WordPress também são essenciais, especialmente para falhas conhecidas como a CVE-2020-25213. Os defensores devem monitorar comportamentos suspeitos do PowerShell e tráfego de saída incomum para serviços RPC em blockchain ou domínios de nível superior incomuns.
Resposta
Se forem detectados indicadores do ErrTraffic, os servidores web afetados devem ser isolados imediatamente e todas as contas do WordPress devem ser revisadas para acesso administrativo não autorizado. Deve-se realizar um exame forense completo para identificar MU-plugins ocultos e arquivos PHP não autorizados. Credenciais potencialmente expostas devem ser revogadas e todas as chaves de API e segredos administrativos devem ser rotacionados.
graph TB %% Definição das classes classDef reconnaissance fill:#f9f,stroke:#333,stroke-width:2px classDef execution fill:#ff9,stroke:#333,stroke-width:2px classDef persistence fill:#9f9,stroke:#333,stroke-width:2px classDef command_control fill:#9cf,stroke:#333,stroke-width:2px classDef delivery fill:#f96,stroke:#333,stroke-width:2px %% Seção de reconhecimento e acesso inicial recon_cred[“<b>Técnica</b> – <b>T1589.001 Coleta de Informações de Identidade da Vítima: Credenciais</b><br/>Descrição: Uso de credenciais de administrador roubadas<br/>para acessar sites WordPress.”] class recon_cred reconnaissance recon_drive_by[“<b>Técnica</b> – <b>T1189 Comprometimento por Navegação</b><br/>Descrição: Uso de publicidade maliciosa para direcionar usuários<br/>a sites que imitam plataformas de IA como ChatGPT.”] class recon_drive_by reconnaissance %% Seção de execução exec_clickfix[“<b>Técnica</b> – <b>T1204.004 Execução pelo Usuário: Cópia e Colagem Maliciosa</b><br/>Descrição: Uso da técnica ClickFix com mensagens de erro falsas<br/>como BSOD ou reCAPTCHA para induzir usuários a executar comandos PowerShell.”] class exec_clickfix execution %% Seção de persistência e C2 pers_webshell[“<b>Técnica</b> – <b>T1505.003 Componente de Software do Servidor: Web Shell</b><br/>Descrição: Implantação de backdoors PHP como<br/>session-manager.php MU-Plugin ou Responsive Webshell.”] class pers_webshell persistence pers_valid_acc[“<b>Técnica</b> – <b>T1078 Contas Válidas</b><br/>Descrição: Mantém acesso através do painel administrativo WordPress comprometido<br/>usando credenciais legítimas.”] class pers_valid_acc persistence c2_etherhiding[“<b>Técnica</b> – <b>EtherHiding</b><br/>Descrição: Facilita a comunicação com a infraestrutura C2<br/>usando contratos inteligentes blockchain como Dead Drop Resolver.”] class c2_etherhiding command_control %% Seção de entrega de payload e acesso a credenciais del_ingress[“<b>Técnica</b> – <b>T1105 Transferência de Ferramentas de Entrada</b><br/>Descrição: Uso de PowerShell para baixar e extrair<br/>binários maliciosos utilizando 7z.”] class del_ingress delivery acc_cred_access[“<b>Técnica</b> – <b>T1539 Acesso a Credenciais</b><br/>Descrição: Famílias de malware realizam exfiltração de credenciais roubadas,<br/>cookies de sessão web e dados sensíveis do WooCommerce.”] class acc_cred_access delivery malware_stealer[“<b>Malware</b> – <b>Vidar ou Stealc</b><br/>Descrição: Infostealers usados para exfiltrar dados<br/>para domínios controlados por atacantes.”] class malware_stealer delivery %% Fluxo de conexões recon_cred –>|leva_a| exec_clickfix recon_drive_by –>|leva_a| exec_clickfix exec_clickfix –>|aciona| pers_webshell exec_clickfix –>|aciona| pers_valid_acc pers_webshell –>|facilita| c2_etherhiding pers_valid_acc –>|facilita| c2_etherhiding c2_etherhiding –>|comanda| del_ingress del_ingress –>|implanta| malware_stealer malware_stealer –>|executa| acc_cred_access
Fluxo de Ataque
Execução de Simulação
Pré-requisito: A Verificação Pré-voo de Telemetria & Linha de Base deve ter passado.
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. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa & Comandos de Ataque: Um atacante enganou com sucesso um usuário para clicar em um botão “Fix” em um site malicioso. Isso aciona um comando PowerShell projetado para baixar e descriptografar uma carga. Para evitar detecções simples baseadas em strings, o script usa descriptografia XOR. O adversário usa o cabeçalho específico ErrTraffic
<# Verificação de Código: 656560395146 #>para contornar certas verificações internas ou como um marcador para sua própria estrutura. O script usa[convert]::ToInt32para processar as chaves XOR e o-bxoroperador para descriptografar os bytes da carga. -
Script de Teste de Regressão:
# Simulação da rotina de descriptografia da carga PowerShell ErrTraffic ClickFix $header = "<# Verificação de Código: 656560395146 #>" $encodedPayload = @(10, 20, 30, 40) $key = [convert]::ToInt32("5") Write-Host "Inicializando descriptografia da carga..." $decrypted = foreach ($byte in $encodedPayload) { $byte -bxor $key } Write-Host "Descriptografia concluída." -
Comandos de Limpeza:
# Nenhuma alteração permanente é feita pelo script de simulação. # Apenas limpe o console. Clear-Host