Saltar para o conteúdo
Cloaking avançado em WordPress: malware que só “mostra a cara” ao Googlebot com validação por IP (ASN/CIDR)
Hannah Turing
Hannah Turing 2026. January 13. · 9 min read

Cloaking avançado em WordPress: malware que só “mostra a cara” ao Googlebot com validação por IP (ASN/CIDR)

Nos incidentes de segurança em WordPress, há um padrão que se repete: quando a infeção é “barulhenta” (popups, redirecionamentos, scripts estranhos), alguém acaba por notar rapidamente. O problema é que os atacantes estão a apostar cada vez mais no oposto: malware seletivo, que entrega a carga maliciosa apenas a quem interessa — tipicamente crawlers de motores de busca — e mantém o site aparentemente normal para visitantes humanos e para o próprio dono.

Um caso recente analisado pela Sucuri mostrou exatamente isso: uma modificação no index.php do WordPress que atua como um gatekeeper (porteiro) e decide, request a request, se vai carregar o WordPress “limpo” ou se vai injetar conteúdo remoto especificamente para o Googlebot, com verificação forte baseada em IP.

Diagrama de lógica condicional com verificação de IP para servir conteúdo diferente ao Googlebot
Exemplo de cloaking com lógica condicional baseada em IP. — Forrás: Sucuri Blog

O que foi encontrado: injeção seletiva no index.php

Durante a investigação, o ponto de entrada principal estava no index.php (ficheiro raiz típico de instalações WordPress). Em vez de fazer o fluxo normal — bootstrap do WordPress e render do tema — o ficheiro foi adulterado para avaliar a “identidade” do visitante.

Na prática, o index.php comprometido tinha dois caminhos:

  • Se o visitante aparentar ser infraestrutura do Google (não só pelo User-Agent, mas também pelo IP), o script busca um payload remoto e imprime esse conteúdo na resposta.
  • Para utilizadores normais, o site continua a servir a versão legítima, reduzindo drasticamente a probabilidade de deteção manual.
Captura de ecrã a mostrar conteúdo diferente indexado pelo Google em comparação com o site normal
O site parecia normal para visitantes, mas o Google via conteúdo injetado. — Forrás: Sucuri Blog

O “twist” técnico: não é só User-Agent — é ASN + CIDR + bitwise (com IPv6)

Cloaking via HTTP_USER_AGENT (a string que o browser/crawler envia em cada pedido) é uma técnica antiga. O que chama a atenção aqui é o nível de rigor: o malware não confiava apenas em “contém Googlebot”. Ele carregava uma lista grande (hardcoded) de ranges de IP associados ao Google, identificados via ASN (Autonomous System Number) e expressos em CIDR.

ASN do Google: o que significa na prática

Um ASN (Autonomous System Number) funciona como uma “identidade” de rede na Internet: agrupa blocos de IP sob controlo de uma organização. Ao validar que o IP de origem pertence a ranges associados ao ASN do Google, o atacante reduz falsos positivos e evita que alguém a testar manualmente (ou um scanner simples) consiga ver o conteúdo escondido apenas falsificando o User-Agent.

CIDR: a forma compacta de representar ranges de IP

CIDR (Classless Inter-Domain Routing) é uma notação para descrever blocos de endereços IP sem listar IP a IP. Por exemplo, 192.168.1.0/24 cobre 192.168.1.0 até 192.168.1.255, sendo que o /24 define o tamanho do bloco.

Exemplo ilustrado de um range em CIDR e a explicação do prefixo
Representação de ranges em CIDR. — Forrás: Sucuri Blog

Validação com operações bitwise e suporte IPv6

Em vez de fazer comparações por strings ou listas frágeis, o script fazia validação matemática para confirmar se um IP “cai” dentro de um bloco CIDR — e ainda tinha suporte explícito para IPv6, que muitos scripts de cloaking mais antigos ignoram.

A lógica central para IPv4 descrita na análise usa uma operação bitwise AND com a netmask do bloco para comparar o IP do visitante com o range:

// Conceito ilustrativo do match por rede (IPv4)
// Se (IP & netmask) == (range & netmask) então o IP pertence ao bloco.
($ip_decimal & $netmask_decimal) == ($range_decimal & $netmask_decimal);
Diagrama a explicar a validação de IP por operações bitwise para corresponder a blocos CIDR
Validação de IP por bitwise para garantir match exato com a rede. — Forrás: Sucuri Blog

Porque isto é perigoso: impacto direto em SEO e reputação

Este tipo de infeção é menos sobre roubo direto (ex.: skimmers) e mais sobre abuso de confiança do motor de busca. O site passa a servir conteúdos que não existem para humanos, e o Google pode indexar páginas/payloads que o proprietário nunca publicou.

  • Blacklisting e queda de reputação do domínio.
  • Deindexação ou perda significativa de rankings por spam/cloaking.
  • “Resource hijacking”: o teu domínio vira veículo para conteúdo remoto de terceiros.
  • Deteção tardia, porque a navegação normal não revela o problema.

Sinais práticos de alerta (especialmente para equipas técnicas)

Se estiveres a investigar um WordPress que “parece normal”, mas há suspeitas de SEO spam/cloaking, estes sinais tendem a aparecer mais cedo ou mais tarde:

  • Resultados estranhos no Google (títulos/snippets que não correspondem ao site).
  • Ficheiros core ou de entrada recentemente alterados (especialmente index.php).
  • URLs suspeitos em código, logs ou histórico de deploy.
  • Logs inesperados (incluindo mensagens de erro criadas pelo próprio malware para medir sucesso/falhas).

Indicador observado na campanha

Na análise, o domínio malicioso usado para servir o payload remoto foi amp-samaresmanor[.]pages[.]dev (apresentado como hxxps na documentação para evitar cliques acidentais).

Como o malware decide o que servir: a cadeia de decisão

O comportamento descrito segue uma sequência em camadas, desenhada para minimizar exposição e maximizar indexação:

1) Verificação em múltiplas camadas (User-Agent + IP real)

Primeiro, o script inspeciona o HTTP_USER_AGENT. Como isto é fácil de falsificar, entra a segunda camada: validação do IP contra ranges do Google (ASN em CIDR) com bitwise.

Fluxo de verificação de identidade combinando User-Agent e validação de IP
O script valida primeiro o User-Agent e depois confirma o IP por rede. — Forrás: Sucuri Blog

2) Filtragem abrangente de User-Agents do ecossistema Google

Outro detalhe interessante: não é um filtro inocente por “Googlebot”. O malware inclui vários identificadores associados a ferramentas de verificação/inspeção e crawlers de APIs do Google, para aumentar as hipóteses de o conteúdo malicioso ser visto e confirmado por diferentes serviços.

Trecho ilustrativo de filtragem de User-Agent com vários identificadores relacionados ao Google
Filtragem de User-Agent com múltiplos identificadores do Google. — Forrás: Sucuri Blog

3) Execução de payload remoto via cURL (injeção na resposta)

Quando o visitante passa nas verificações, o script usa cURL para fazer fetch de conteúdo remoto e imprime diretamente na resposta do site. Para o crawler, aquilo parece conteúdo “nativo” do domínio.

// Comportamento descrito na análise:
// após validar bot + IP, faz fetch remoto e imprime na resposta
// hxxps://amp-samaresmanor[.]pages[.]dev
Diagrama mostrando o malware a buscar conteúdo remoto via cURL e a imprimir na página
O payload é carregado remotamente e devolvido ao crawler. — Forrás: Sucuri Blog

4) Lógica condicional com logging e “failsafes”

O script também inclui tratamento de erro e logging (registo) para monitorizar se o payload remoto está a carregar. Se falhar, em vez de devolver uma página quebrada ao Google, pode redirecionar para /home/ para manter a aparência de normalidade.

E quando alguém tenta fazer spoof do Googlebot (User-Agent falso), mas o IP não bate certo, o malware regista algo do género “Fake GoogleBot detected” e redireciona para a home legítima.

Fluxograma com decisões: bot legítimo, bot falso e utilizador normal, com redirecionamentos e logging
Motor de decisão do malware: valida, serve payload, redireciona e regista eventos. — Forrás: Sucuri Blog

Porque mexer em ficheiros core do WordPress ajuda o atacante

Alterar o index.php dá ao atacante uma vantagem: é um ponto de entrada garantido e executado em praticamente todos os requests na raiz. A análise também descreve como o malware tira proveito de ficheiros do core para manter o site funcional enquanto injeta o comportamento malicioso.

  • wp-load.php: ao fazer require_once __DIR__ . '/wp-load.php', o script inicializa (bootstraps) o ambiente WordPress, incluindo acesso à config e base de dados.
  • wp-blog-header.php: faz parte do fluxo normal do index.php legítimo, normalmente requerido no final do ficheiro. O atacante pode manter este comportamento para não “partir” o site para utilizadores comuns.

Remediação: o que vale a pena fazer numa limpeza a sério

Como em qualquer caso de malware em WordPress, a limpeza não é só apagar uma linha. O objetivo é remover o payload, fechar o vetor de entrada e reduzir a probabilidade de reinfeção.

  • Remover ficheiros/pastas desconhecidos (qualquer coisa que não reconheças tu ou a tua equipa).
  • Auditar utilizadores WordPress e remover contas “de apoio”/admins suspeitos.
  • Trocar credenciais (admin, FTP/SFTP, hosting/painel, base de dados).
  • Verificar o teu próprio computador (scan completo de malware), para evitar reinfeções por credenciais roubadas.
  • Atualizar WordPress core, temas e plugins (e remover componentes abandonados).
  • Colocar um WAF (Web Application Firewall) para bloquear tráfego malicioso e dificultar uploads/exploits e comunicação com infraestruturas conhecidas.

Controlo que faz diferença neste tipo de caso

File Integrity Monitoring (monitorização de integridade de ficheiros) ajuda a detetar alterações não autorizadas em ficheiros core como index.php, onde este tipo de campanha costuma viver sem chamar atenção.

O takeaway para quem gere WordPress em produção

O aspeto mais desconfortável deste caso é que ele explora um “ponto cego” operacional: o site pode parecer perfeito para humanos, enquanto o motor de busca indexa conteúdo completamente diferente. Ao combinar filtro de User-Agent com validação rigorosa por ASN/CIDR (incluindo IPv6) e bitwise, o atacante eleva a fasquia da deteção manual.

Na prática, além de hardening e updates, vale a pena tratar o index.php (e outros ficheiros core) como superfície crítica: monitorização de alterações, auditoria regular e revisão do que o Google está efetivamente a indexar via Search Console são medidas que reduzem muito o tempo entre infeção e descoberta.

Hannah Turing

Hannah Turing

Desenvolvedora WordPress e redatora técnica na HelloWP. Ajudo desenvolvedores a criar melhores sites com ferramentas modernas como Laravel, Tailwind CSS e o ecossistema WordPress. Apaixonada por código limpo e experiência do desenvolvedor.

Todos os posts

Junte-se à comunidade HelloWP!

Converse conosco sobre WordPress, desenvolvimento web e compartilhe experiências com outros desenvolvedores.

- membros
- online
Participar

We use cookies to improve your experience. By continuing, you agree to our Cookie Policy.