Segurança

Como os Hackers Encontram o Seu Site WordPress: Google Dorking, Shodan e Reconhecimento

04 de Maio de 2026

O vosso site não foi atacado porque alguém o escolheu. Foi atacado porque um bot o encontrou. Os ataques a WordPress são 97% automatizados — scanners que percorrem a internet continuamente, identificam instalações WordPress, verificam versões e plugins contra bases de dados de vulnerabilidades conhecidas, e passam à exploração em minutos. Compreender como estes sistemas de reconhecimento funcionam é o primeiro passo para retirar o vosso site do radar.

A Escala do Problema: 90.000 Ataques por Minuto

O WordPress alimenta 43,5% de todos os sites na internet (W3Techs, 2026) e 61,4% de todos os sites com CMS. O segundo maior CMS tem apenas 4,8% de quota de mercado. Esta concentração transforma o WordPress no alvo mais rentável que existe: desenvolver um scanner ou exploit para WordPress significa ter acesso imediato a dezenas de milhões de alvos potenciais com o mesmo esforço.

Os números resultantes são difíceis de assimilar: o Wordfence bloqueou 55 mil milhões de ataques por password em 2024 e mais de 100 mil milhões de tentativas de credential stuffing em 2023, provenientes de 74 milhões de IPs únicos. Estimativas independentes apontam para 13.000 sites WordPress hackeados por dia e 90.000 ataques por minuto contra a plataforma globalmente.

Um novo site WordPress é encontrado por scanners automáticos em horas. Segundo dados da Sophos, um site recebe mais de 2.000 tentativas de ataque automatizado nas primeiras 24 horas após entrar online — antes de qualquer campanha de marketing, antes de ter tráfego real, antes que o proprietário saiba que é um alvo.

Google Dorking: O Motor de Pesquisa Como Ferramenta de Reconhecimento

O Google indexa muito mais do que conteúdo para consumo humano. Indexa caminhos de ficheiros, versões de software, erros de configuração e dados técnicos que proprietários de sites nem sabem que estão expostos. Google Dorking é o uso de operadores de pesquisa avançados para encontrar exactamente esta informação — e não requer nenhuma ferramenta especial além do próprio Google.

A Google Hacking Database (GHDB), mantida pelo Exploit-DB, cataloga centenas de dorks verificados especificamente para WordPress. Alguns exemplos do que é possível encontrar:

  • inurl:wp-login.php — lista todas as páginas de login WordPress indexadas pelo Google, confirmando imediatamente que são instalações WordPress
  • inurl:"wordpress readme.html" — encontra o ficheiro readme.html que revela a versão exacta do WordPress em texto claro
  • "index of" inurl:wp-content/ — identifica sites com listagem de directórios activa; a Patchstack documentou 12 milhões de resultados para esta pesquisa, todos com os ficheiros internos expostos publicamente
  • inurl:"/wp-content/plugins/[nome-plugin]/" — identifica sites com plugins específicos instalados; cruzando com vulnerabilidades conhecidas, torna-se uma lista de alvos pré-qualificados
  • filetype:sql intext:wp_users — encontra dumps de bases de dados SQL com tabelas de utilizadores WordPress, incluindo hashes de passwords

A Patchstack conduziu um teste documentado em que utilizou Google Dorking para descarregar arquivos de backup WordPress de múltiplos servidores e extrair credenciais de base de dados diretamente dos ficheiros wp-config.php encontrados. Nenhum exploit foi necessário — os ficheiros estavam simplesmente acessíveis porque o servidor tinha listagem de directórios activa.

Shodan: O Motor de Pesquisa da Internet das Coisas

Enquanto o Google indexa páginas web para humanos, o Shodan indexa o que os servidores dizem sobre si próprios: cabeçalhos HTTP, versões de software, certificados SSL, banners de serviço. Escaneia activamente o espaço de endereços IPv4 e armazena respostas técnicas completas de cada servidor encontrado.

Uma pesquisa simples por “wordpress” no Shodan devolve 499.108 instalações identificáveis. Com filtros específicos, os resultados tornam-se listas de alvos muito precisas:

  • http.title:"WordPress › Installation" — instalações WordPress inacabadas, directamente exploráveis: um investigador que documentou esta query conseguiu completar a instalação e obter acesso de administrador
  • http.component:"WordPress" country:PT — todos os sites WordPress em Portugal identificados pelo Shodan
  • http.title:"Hacked by" — sites já comprometidos (cerca de 2.000 resultados documentados)

O Shodan não está sozinho. Plataformas como ZoomEye (1,2 mil milhões de dispositivos indexados), Censys e FOFA oferecem capacidades similares. O FOFA, em particular, pode devolver dezenas de milhares de instalações WordPress agrupadas por país e versão em segundos — com filtro por CVE para encontrar directamente sistemas afectados por vulnerabilidades específicas.

Quando investigadores analisaram comunicações internas do grupo de ransomware Black Basta, encontraram consultas sistemáticas a estas plataformas antes de cada campanha de ataque. O reconhecimento através de ferramentas públicas é parte do processo operacional de grupos criminosos organizados.

WPScan: A Ferramenta Construída Especificamente Para o WordPress

O WPScan é um scanner de vulnerabilidades open-source para WordPress, escrito em Ruby, pré-instalado no Kali Linux (o sistema operativo padrão de pentesters e atacantes). A sua base de dados tem 64.782+ vulnerabilidades catalogadas, actualizada diariamente. Em 2024 foram adicionadas 7.966 novas entradas; em 2025, 11.334.

O WPScan detecta automaticamente:

  • Versão do WordPress — via meta generator tag, parâmetros de versão em CSS/JS, readme.html e feed RSS
  • Plugins instalados e versões — testando URLs como /wp-content/plugins/[plugin]/readme.txt com uma wordlist de todos os plugins conhecidos; o campo “Stable tag” no readme.txt revela a versão exacta instalada
  • Temas instalados — método similar via style.css e readme.txt do tema
  • Usernames dos utilizadores — usando múltiplos métodos em paralelo (ver secção seguinte)
  • Ficheiros sensíveis expostos — backups de wp-config.php, dumps de bases de dados, ficheiros de debug

Com todos estes dados, o WPScan cruza automaticamente contra a sua base de dados de vulnerabilidades e apresenta uma lista de falhas exploráveis com classificação de severidade e links para exploits publicados. O processo completo demora minutos.

O Que o Vosso Site Revela Sem Que Saibam

A maioria dos sites WordPress expõe informação técnica sensível por defeito, sem qualquer configuração incorrecta da parte do proprietário — é simplesmente o comportamento standard da plataforma. Aqui estão os endpoints mais explorados:

/readme.html — Versão Exacta em Texto Claro

Criado automaticamente em cada instalação WordPress. Contém a versão exacta da plataforma em texto claro, sem qualquer autenticação. Um browser aponta para https://vossosite.pt/readme.html e a versão está imediatamente disponível. Cruzada com a base de dados WPScan, confirma em segundos se existe alguma vulnerabilidade conhecida para essa versão.

Meta Generator Tag — Versão no Código HTML

A tag <meta name="generator" content="WordPress 6.x.x"> aparece no <head> de todas as páginas de um site WordPress por defeito. Visível em “Ver código fonte” em qualquer browser. É esta tag que os Shodan, Censys e outros scanners usam para identificar e catalogar instalações WordPress à escala de toda a internet — incluindo a versão exacta.

/wp-json/wp/v2/users — Lista de Utilizadores Sem Autenticação

Endpoint da REST API activo por defeito desde WordPress 4.7. Basta abrir https://vossosite.pt/wp-json/wp/v2/users num browser para obter um JSON com todos os utilizadores do site: username, display name, slug e ID. O WordPress não considera usernames como informação privada — daí a ausência de restrição por defeito. Na prática, conhecer o username é metade do trabalho de um ataque de brute force.

/xmlrpc.php — A Porta de Amplificação de Ataques

Interface de acesso remoto activa por defeito em todas as instalações WordPress. O método system.multicall permite encapsular centenas de tentativas de login numa única chamada HTTP — uma amplificação de 100x ou mais face a ataques directos ao wp-login.php. Mais crítico: contorna completamente plugins de limitação de tentativas de login que monitorizam apenas o formulário standard. Um atacante que ignore o wp-login.php e use exclusivamente xmlrpc.php pode fazer brute force sem que a maioria das protecções activadas o detecte.

/wp-content/plugins/[plugin]/readme.txt — Versão de Cada Plugin

O ficheiro readme.txt standard de cada plugin contém o campo “Stable tag” com a versão exacta instalada. Acessível via URL directa sem autenticação. O WPScan testa sistematicamente estes URLs para todos os plugins conhecidos. Resultado: lista completa de plugins instalados e versões, cruzada com vulnerabilidades conhecidas.

/wp-content/debug.log — Logs de Erro Expostos

Quando o modo debug está activo em produção (configuração comum em sites que tiveram problemas e nunca foram limpos), o WordPress escreve um ficheiro de log em /wp-content/debug.log — publicamente acessível por defeito. O conteúdo típico inclui caminhos completos de ficheiros no servidor, erros de queries SQL com nomes de tabelas, e stack traces com estrutura interna da aplicação.

Em 2024, a vulnerabilidade CVE-2024-44000 do LiteSpeed Cache demonstrou o pior cenário possível: o plugin escrevia cookies de sessão no debug.log, permitindo account takeover sem qualquer autenticação — bastava descarregar o ficheiro de log e usar o cookie. Scanners automáticos testam sistematicamente /wp-content/debug.log em todas as instalações WordPress que encontram.

Como Remover as Pistas

Nenhuma destas exposições é inevitável. Todas têm correção — e a maioria é simples.

Remover a versão WordPress exposta

Eliminar o readme.html via gestor de ficheiros do hosting (atenção: pode ser recriado em actualizações — verificar após cada update). Para a meta generator tag e a versão no RSS, adicionar ao functions.php do tema:

remove_action('wp_head', 'wp_generator');

Para remover parâmetros de versão em CSS/JS (os ?ver=6.x.x nos URLs de estilos e scripts), é necessário código adicional no functions.php ou um plugin específico como Remove WordPress Version.

Bloquear a enumeração de utilizadores

Para desactivar o endpoint REST API de utilizadores para visitantes não autenticados, adicionar ao functions.php:

add_filter('rest_endpoints', function($endpoints) {
    if (!is_user_logged_in()) {
        unset($endpoints['/wp/v2/users']);
        unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
    }
    return $endpoints;
});

Bloquear também a enumeração via ?author=1 (que faz redirect para o URL do autor, revelando o username).

Desactivar ou restringir xmlrpc.php

Para a grande maioria dos sites que não usam Jetpack nem clientes de publicação remota, o xmlrpc.php pode ser completamente bloqueado via .htaccess:

<Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

Se usam Cloudflare, uma regra WAF simples — URI igual a /xmlrpc.php → Block — resolve o problema antes de o tráfego chegar ao servidor.

Cloudflare como primeira linha de defesa

O plano gratuito do Cloudflare oferece 5 regras WAF personalizadas — suficientes para cobrir os principais vectores. A vantagem crítica é que o Cloudflare bloqueia o tráfego antes de chegar ao servidor WordPress: scanners como o WPScan e botnets ficam impedidos de sequer contactar os endpoints sensíveis. Com regras simples é possível bloquear xmlrpc.php, colocar em desafio o acesso ao wp-login.php para IPs suspeitos, e bloquear pedidos ao endpoint de utilizadores REST API.

Plugins de hardening

Plugins como Wordfence, Solid Security ou Sucuri aplicam muitas destas configurações de forma automatizada e com interface acessível. Uma configuração correcta deve incluir: remoção da meta generator tag, bloqueio da listagem de utilizadores, restrição do xmlrpc.php, limitação de tentativas de login, e desactivação do editor de ficheiros no painel de administração.

Uma nota importante sobre o Wordfence: 58.848 sites com o Wordfence instalado foram comprometidos em 2024. O plugin é uma camada de defesa valiosa, mas não substitui uma configuração correcta. O WAF gratuito do Wordfence tem regras com 30 dias de atraso face à versão premium — vulnerabilidades recentes ficam cobertas apenas para subscritores pagos.

O Conceito Fundamental: Reduzir a Superfície de Reconhecimento

Nenhuma medida de segurança torna um site completamente indetectável ou invulnerável. O objectivo é diferente: aumentar o custo do ataque ao ponto em que o bot passa para o próximo alvo na lista. Quando o seu site não expõe a versão WordPress, não lista utilizadores, bloqueia o xmlrpc.php e tem limitação de tentativas de login activa, a maioria dos scanners automáticos não encontra pontos de entrada fáceis e segue em frente.

Os ataques são indiscriminados e automatizados. A selecção do alvo é feita por critérios de facilidade, não de valor. Remover as pistas que os scanners procuram é remover o vosso site da lista de alvos óbvios.


Quer saber o que o vosso site está a revelar aos scanners automáticos? Na OnePixel fazemos auditorias de segurança WordPress que incluem análise de exposição de informação técnica, configuração de hardening e implementação das protecções correctas. Fale connosco para uma análise sem compromisso.

← Artigo anterior
Ataques Supply Chain ao WordPress: Como 400.000 Sites Foram Comprometidos
Artigo seguinte →
Full Site Editing no WordPress 6.x: Block Themes, Patterns e Site Editor

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *