
🔍 Usar o WPScan: encontrar vulnerabilidades do WordPress 2026
Atualizou os plugins, configurou HTTPS e definiu uma firewall. O seu site parece seguro. Mas como sabe se um dos plugins instalados não tem uma vulnerabilidade que está a ser explorada neste momento?
A verificação manual cruzada com bases de dados de vulnerabilidades demora horas. O WPScan fá-lo em meio minuto: um scanner de segurança WordPress de código aberto com interface de linha de comandos que, de acordo com as estatísticas da sua própria base de dados, monitoriza mais de 73 000 vulnerabilidades no core, plugins e temas. A seguir: instalação, token de API, análise básica e avançada, força bruta de palavras-passe.
💡 Visão geral rápida:
Instale o WPScan via Ruby gem, Docker ou Homebrew e atualize a base de dados de metadados com
wpscan --updateRegiste um token de API gratuito em wpscan.com: 25 pedidos por dia, sem o token o scanner não mostra dados de vulnerabilidades
Execute uma análise básica:
wpscan --url https://your-site.com --api-token YOUR_TOKENVerifique plugins e temas vulneráveis com os parâmetros
-e vpe-e vt, enumere utilizadores com-e uPara força bruta de palavras-passe, prepare um ficheiro de wordlist e passe-o com o parâmetro
--passwords
O que é o WPScan
O WPScan, um scanner de segurança WordPress gratuito para uso não comercial, é escrito em Ruby. O primeiro lançamento saiu em junho de 2011 e, desde então, a ferramenta tornou-se o padrão de facto para testes de penetração de sites WordPress.
O scanner cruza a versão do WordPress instalada, os plugins ativos e os temas com a WordPress Vulnerability Database em wpscan.com, mantida por uma equipa de especialistas em segurança. De acordo com as estatísticas da base de dados, documenta mais de 73 000 vulnerabilidades no core, plugins e temas. Cada entrada é verificada manualmente por uma equipa dedicada de especialistas em WordPress. Desde 2023, o WPScan é uma CVE Numbering Authority e atribui diretamente números CVE a vulnerabilidades no ecossistema WordPress.
Além das vulnerabilidades, o WPScan pode enumerar logins de utilizadores através da REST API e de feeds de autor, fazer força bruta de palavras-passe a partir de um dicionário, encontrar cópias de segurança expostas do wp-config.php, dumps de bases de dados e registos de erros abertos.
Uma nuance importante de licenciamento: a utilização gratuita do scanner CLI é permitida apenas para fins não comerciais. As agências que analisam sites de clientes precisam de uma subscrição paga. Os termos estão descritos no site oficial do WPScan.
Instalação e atualizações
O WPScan está disponível de três formas. Escolha a que se adequa ao seu fluxo de trabalho.
Ruby gem, opção universal para Linux, macOS e Windows com Ruby instalado:
1 gem install wpscan
Docker, ambiente isolado sem dependências:
1 docker pull wpscanteam/wpscan
Exemplo de execução com Docker:
1 docker run -it --rm wpscanteam/wpscan --url https://example.com -e u
Homebrew, para macOS:
1 brew install wpscanteam/tap/wpscan
Após a instalação, atualize primeiro a base de dados local de metadados. Esta contém informações sobre as versões mais recentes de plugins e temas, sem ela o scanner não consegue determinar se a versão instalada está desatualizada. As informações sobre vulnerabilidades são solicitadas separadamente via API em tempo real.
1 wpscan --update
A atualização demora alguns segundos. O output mostra a versão do WPScan e a confirmação de que a base de dados está atualizada. Repita o comando wpscan --update antes de cada auditoria: os programadores publicam atualizações de metadados várias vezes por semana.
Token de API: a chave para os dados de vulnerabilidades
O erro mais comum de principiante: executar wpscan --url site.com sem um token e perguntar-se porque é que o scanner está silencioso quanto a vulnerabilidades. Sem um token, o WPScan funciona em modo «apenas metadados». Vai reportar que um plugin está desatualizado, mas não dirá quais os CVE associados a ele.
Registe-se em wpscan.com, é gratuito e demora um minuto. O plano gratuito dá direito a 25 pedidos de API por dia. Um scan consome 1 pedido para a versão do WordPress, 1 pedido para cada plugin instalado e 1 pedido para cada tema. Um site WordPress típico tem mais de uma dúzia de plugins instalados, pelo que o limite gratuito é suficiente para um scan completo por dia.
O token é passado com a flag --api-token em cada execução:
1 wpscan --url https://example.com --api-token YOUR_TOKEN
Para evitar introduzir o token em todos os comandos, guarde-o no ficheiro de configuração ~/.wpscan/scan.yml:
1 api_token: YOUR_TOKEN
Depois disso, o WPScan irá detetar o token automaticamente.
Scan básico de sites
Comando mínimo de auditoria:
1 wpscan --url https://example.com --api-token YOUR_TOKEN
O scanner irá determinar a versão do WordPress, o tema ativo, detetar números de versão expostos e verificar problemas básicos de configuração: acessibilidade do wp-cron e do readme.html, o diretório de uploads, a capacidade de registo de utilizadores.
O output é estruturado com marcadores de cor: verde para mensagens informativas, amarelo para avisos, vermelho para vulnerabilidades encontradas. Cada vulnerabilidade é acompanhada por um link para a ficha na base de dados do WPScan com a descrição do vetor de ataque, versões afetadas e recomendações de remediação.
O scan básico demora normalmente menos de um minuto. O tempo exato depende do tamanho do site e da velocidade do alojamento.
Encontrar plugins vulneráveis
Os plugins são o principal vetor de ataque no WordPress. De acordo com as estatísticas do WPScan, mais de 90% das vulnerabilidades conhecidas estão em plugins. O comando de verificação:
1 wpscan --url https://example.com -e vp --api-token YOUR_TOKEN
A flag -e vp (enumerar plugins vulneráveis) lista apenas os plugins com vulnerabilidades conhecidas. Este é o modo mais rápido e prático: cruza os plugins instalados com a base de dados e reporta apenas aqueles com problemas documentados.
Por predefinição, o WPScan usa o modo de deteção passiva, analisando o HTML da página sem pedidos extra. Para obter a cobertura máxima, à custa de carga adicional no servidor, mude para o modo misto:
1 wpscan --url https://example.com -e vp --plugins-detection mixed --api-token YOUR_TOKEN
O modo mixed aplica primeiro a análise passiva e, em seguida, verifica de forma agressiva os caminhos conhecidos dos plugins para detetar instalações ocultas e inativas.
Se o scanner encontrou um plugin vulnerável, atualize-o para a versão mais recente. O programador quase de certeza que lançou uma correção. Se não houver atualização e o plugin estiver abandonado, remova-o e encontre uma alternativa. Deixar um plugin com uma vulnerabilidade conhecida num site de produção é inaceitável.
Encontrar temas vulneráveis
Os temas são verificados de forma semelhante aos plugins:
1 wpscan --url https://example.com -e vt --api-token YOUR_TOKEN
A flag -e vt (vulnerable themes) verifica o tema ativo e todos os temas instalados em busca de vulnerabilidades conhecidas. Os temas são atacados com menos frequência do que os plugins, mas ocorrem vulnerabilidades, especialmente em temas com construtores de páginas e sliders integrados.
O modo de deteção de temas predefinido é agressivo, uma vez que a análise passiva frequentemente ignora temas inativos. Se o servidor for fraco e a carga for crítica, limite ao modo passivo:
1 wpscan --url https://example.com -e vt --themes-detection passive --api-token YOUR_TOKEN
Quando for encontrado um tema vulnerável, atue segundo o mesmo princípio: atualize ou remova. Os temas filho herdam as vulnerabilidades do tema pai, verifique ambos.
Enumeração de utilizadores
Um atacante que conheça os logins de utilizadores do WordPress só precisa de adivinhar as palavras-passe. O WPScan mostra quais os logins visíveis a partir do exterior:
1 wpscan --url https://example.com -e u
O scanner itera através dos IDs de utilizador e extrai os logins da API REST, dos feeds de autor (/author/name/) e de outros endpoints públicos. O resultado tem este aspeto:
1 [i] User(s) Identified: 2 [+] admin 3 [+] editor 4 [+] serg
Idealmente, não deverá ver logins nenhuns. Se o WPScan encontrou utilizadores, tome medidas:
- Defina um nome de exibição diferente do login nas definições do perfil.
- Desative a API REST para visitantes não autorizados através de um plugin ou do
.htaccess. - Uma firewall ao nível do DNS, como a Sucuri ou a Cloudflare, bloqueará o scanner antes de ele chegar: verá um erro de timeout em vez de uma lista de utilizadores.

As versões atuais do WordPress limitam a enumeração via API REST, mas os temas e plugins podem abrir soluções alternativas. Depender apenas do núcleo é insuficiente.
Força bruta de palavras-passe
O WPScan suporta ataques de dicionário a palavras-passe. O scanner tenta autenticar-se como cada utilizador encontrado com cada palavra-passe de um ficheiro de lista. A operação consome muitos recursos, mas o resultado compensa: vai descobrir se algum administrador está a usar qwerty123.
Prepare um ficheiro de texto com as palavras-passe, uma por linha, e execute:
1 wpscan --url https://example.com -e u --passwords /path/to/passwords.txt
Listas de palavras prontas a usar estão disponíveis no Kali Linux (/usr/share/wordlists/) e em fontes abertas como o repositório SecLists no GitHub. Para uma verificação básica, um ficheiro com as 500 a 1000 palavras-passe mais comuns é suficiente.
O parâmetro --threads N controla o número de tentativas simultâneas. O valor predefinido é 5. Aumentar para 20 a 30 acelera a força bruta, mas gera uma carga notável no servidor e pode acionar a proteção do alojamento.
Antes de executar a força bruta, faça uma cópia de segurança do site e avise o fornecedor de alojamento: alguns bloqueiam IPs por múltiplas tentativas de login falhadas.
Funcionalidades adicionais
O WPScan faz mais do que auditorias básicas de plugins e utilizadores. Aqui ficam alguns cenários úteis.
Encontrar todos os plugins, não apenas os vulneráveis:
1 wpscan --url https://example.com -e ap --api-token YOUR_TOKEN
A flag -e ap (all plugins) enumera todos os plugins da base de dados do WPScan. A operação demora um tempo considerável. Use para auditorias completas, não para verificações regulares.
Detetar cópias de segurança e dumps:
1 wpscan --url https://example.com -e cb,dbe
As flags cb (config backups) e dbe (database exports) procuram cópias de segurança do wp-config.php e dumps SQL acessíveis publicamente, deixados acidentalmente por plugins de backup. Um ficheiro destes em acesso aberto é criticamente perigoso: um atacante obtém as credenciais da base de dados.
Scanning furtivo:
1 wpscan --url https://example.com --stealthy --api-token YOUR_TOKEN
A flag --stealthy adiciona atrasos aleatórios entre pedidos, mascarando a atividade do scanner como comportamento normal de um visitante. Útil se o servidor bane agressivamente atividades suspeitas.
Enumeração de ficheiros multimédia:
1 wpscan --url https://example.com -e m1-100
Verifica os IDs de ficheiros multimédia no intervalo especificado. Ajuda a descobrir documentos confidenciais acessíveis por link direto e cópias de segurança carregadas fora da biblioteca de multimédia.
Tutorial completo em vídeo do WPScan, da instalação a cenários avançados:
⁉️🤔 Perguntas frequentes
O WPScan é necessário se o Jetpack Protect ou o Wordfence já estiverem instalados?
Sim, é necessário. Os plugins de segurança funcionam a partir do interior do WordPress e bloqueiam ataques em tempo real. O WPScan observa o site do exterior, exatamente como um atacante. Encontra problemas que o plugin não vê: cópias de segurança expostas, enumeração de utilizadores através de vetores não padronizados, vulnerabilidades em plugins inativos mas não removidos. As duas abordagens em conjunto proporcionam uma verdadeira defesa em profundidade.
O WPScan é seguro para o meu site? Não vai fazer o servidor cair?
O scanner envia pedidos HTTP padrão, iguais aos de um visitante normal. No modo passivo, apenas analisa o HTML sem carga adicional. O modo agressivo com enumeração completa de plugins (
-e ap) gera centenas de pedidos e pode tornar lento um alojamento fraco. Para verificações regulares, use-e vp,vt,u, são umas poucas dezenas de pedidos, seguro para qualquer servidor.
O scanning pode ser automatizado?
Sim. Para programadores, um cron job que executa um contentor Docker uma vez por semana e envia um relatório por email funciona bem. Para todos os outros, o serviço WPScan.com faz scan automático dos sites de forma programada e envia notificações sobre novas vulnerabilidades. Frequência ideal: scan completo uma vez por semana, verificação de componentes de alta prioridade diariamente. Para auditorias manuais, a CLI gratuita é suficiente; para monitorização contínua, considere uma solução automatizada.
O que fazer se o WPScan encontrar uma vulnerabilidade e não houver atualização?
O plugin foi abandonado pelo programador. Algoritmo: (1) verifique se a vulnerabilidade está a ser explorada ativamente, a ficha na base de dados do WPScan contém essa informação; (2) se não houver ataques e o plugin for crítico para o negócio, restrinja temporariamente o acesso ao mesmo via
.htaccesse planeie a substituição; (3) se houver registo de ataques, remova o plugin imediatamente. Um compromisso entre funcionalidade e segurança é impossível aqui.
Em que é que o WPScan difere de outros scanners WordPress?
O WPScan é o único scanner com uma base de dados de investigação de vulnerabilidades dedicada, que existe há mais de dez anos. Alternativas como o WPSeku enumeram plugins a partir de uma lista estática, sem fichas CVE detalhadas. O WPScan é apoiado pela Automattic através de uma parceria com o Jetpack, o que garante o desenvolvimento do projeto a longo prazo.
O que escolher: CLI, Docker ou SaaS
A escolha depende das suas tarefas. Resumo rápido:
Opção | Para quem | Frequência | Vantagem |
|---|---|---|---|
Docker | Um site, auditoria pontual | Uma vez por mês | Sem dependências |
Ruby gem + cron | Vários sites | Semanal | Relatórios flexíveis |
WPScan SaaS | Agência, mais de 10 sites | Contínua | Notificações, dashboard |
- Se tem um site e precisa de uma verificação pontual, use Docker: um comando, zero dependências.
- Se tem mais de dez sites e precisa de relatórios regulares, a Ruby gem num cron job trata disso.
- Se é uma agência com uma centena de sites de clientes, uma subscrição do WPScan SaaS elimina a dor de cabeça da monitorização.
Não se esqueça do token da API, sem ele vê apenas metade do cenário. Comece com os três comandos do bloco «Visão geral rápida» acima. Meio minuto e sabe exatamente se o site tem vulnerabilidades abertas. Que ferramenta de segurança já o ajudou na prática, escreva nos comentários.



