Hushfort

Como fazer um teste de segurança do que o meu site WordPress expõe?

Por Eureka Studio · Atualizado em

Resposta rápida

Teste seu site de fora, com requisições reais e sem estar conectado: abra /wp-login.php, /xmlrpc.php, /wp-json/wp/v2/users, /?author=1 e /wp-sitemap-users-1.xml. Cada uma mostra se uma porta de login está aberta ou se um nome de usuário vaza. Você pode rodá-las no navegador ou com curl, ou deixar que um plugin de varredura as rode e aponte o que encontrar.

Passo a passo

  1. 1Passo 1

    Abra uma janela anônima ou um terminal

    Teste como um estranho, não como você mesmo. Requisições de quem está conectado veem mais do que o público vê, então sempre verifique sem estar conectado.

    Cinco requisições que um bot faria
    curl -sI https://yoursite.com/wp-login.phpcurl -s  https://yoursite.com/xmlrpc.phpcurl -s  https://yoursite.com/wp-json/wp/v2/userscurl -sI https://yoursite.com/?author=1curl -sI https://yoursite.com/wp-sitemap-users-1.xml
  2. 2Passo 2

    Verifique as portas de login

    Se o wp-login.php mostra um formulário de login, o login padrão é público. Se o xmlrpc.php responde "accepts POST requests only", uma segunda porta de login também está aberta.

    seusite.com/xmlrpc.php respondendo: XML-RPC server accepts POST requests only
  3. 3Passo 3

    Procure nomes de usuário vazados

    Uma lista JSON em /wp/v2/users, um redirecionamento de ?author=1 para /author/nome/ ou um sitemap de usuários revelam nomes de login.

    A lista pública de usuários da REST mostrando o nome de login demo-admin
  4. 4Passo 4

    Rode a Varredura de Superfície para ter o quadro completo

    No Hushfort, abra a Visão geral e clique em Verificar novamente, em Varredura de Superfície. Ela envia requisições reais ao seu site e aponta cada nome de usuário que encontrar.

    Varredura de Superfície com 3 pontos abertos: XML-RPC aberto, lista de usuários da REST e varredura de autores expondo demo-admin
  5. 5Passo 5

    Feche o que encontrou e verifique de novo

    Ative a Blindagem de Superfície e clique em Verificar novamente. As portas que estavam vermelhas agora mostram um sinal verde; o que restar fica marcado como Atenção, com uma sugestão de correção.

    Varredura de Superfície após a Blindagem de Superfície: XML-RPC, lista de usuários da REST, varredura de autores e lista de autores no sitemap fechados

Por que isso importa

A maioria dos conselhos de segurança fala de botões: ative isto, desative aquilo. Mas um botão diz o que você pediu, não o que aconteceu. Uma camada de cache pode servir uma resposta antiga. Uma regra da CDN pode bloquear um arquivo antes de o WordPress sequer ver a requisição. Um plugin pode reabrir algo que outro fechou. A única resposta honesta para "o que o meu site expõe?" é perguntar a ele do jeito que um estranho perguntaria.

A boa notícia: a lista do que vale verificar no lado do login é curta. Os bots procuram o mesmo punhado de endereços em todo site WordPress:

Endereço O que revela quando está aberto
/wp-login.php, /wp-admin O formulário de login padrão
/xmlrpc.php Uma segunda porta de login, com adivinhação em massa via system.multicall
/wp-json/wp/v2/users Uma lista de autores e seus slugs de login
/?author=1 Um redirecionamento para /author/nome-de-login/
/wp-sitemap-users-1.xml URLs dos arquivos de autor, que contêm os slugs de login

Nenhum desses é um desastre sozinho. Juntos, eles entregam a um bot uma lista de nomes e duas portas para testá-los. Saber quais estão abertos permite fechá-los na ordem certa: primeiro as portas, depois os nomes.

Erros comuns

  • Testar estando conectado. O WordPress mostra mais para usuários conectados. Use uma janela anônima ou o curl.
  • Testar a página em cache. Se você acabou de mudar uma configuração, limpe antes o cache de página e o cache da CDN, ou verá a resposta antiga.
  • Parar no primeiro sinal verde. Fechar o formulário de login enquanto o XML-RPC continua aberto é a meia-solução mais comum que vemos.
  • Esperar uma auditoria de segurança completa. Estas verificações tratam das portas de entrada. Elas não dizem nada sobre malware, alterações de arquivos ou plugins desatualizados.

Sem plugin

Os cinco comandos curl do passo 1 são o método manual, e vale a pena conhecê-los. Leia os resultados assim:

  • HTTP/2 200 no wp-login.php: o login padrão é público. 404: ele está oculto.
  • XML-RPC server accepts POST requests only. no xmlrpc.php: o endpoint está ativo. Para saber se o login é aceito, você teria de enviar uma chamada wp.getUsersBlogs com uma conta de teste.
  • Um array JSON em /wp/v2/users com campos "slug": os nomes de usuário são públicos. 401 ou um array vazio: fechado.
  • Location: /author/name/ em ?author=1: um vazamento. Repita com 2, 3 e assim por diante para ver quantos usuários um bot conseguiria coletar.
  • 200 no sitemap de usuários: as URLs dos autores estão listadas.

A desvantagem é o tempo e a interpretação. Você precisa repetir tudo depois de cada mudança, e testar direito o login via XML-RPC significa montar o XML na mão.

Se algo der errado

  • A varredura diz "aberto", mas você desativou. Limpe os caches de página e da CDN e verifique de novo. Se continuar aberto, outro plugin ou uma regra do servidor pode estar sobrepondo a configuração.
  • A varredura não consegue alcançar o seu site. Algumas hospedagens impedem que um site faça requisições a si mesmo (loopback). Peça à sua hospedagem para liberar as requisições de loopback ou use o método curl de fora.
  • Um nome de usuário ainda vaza depois da blindagem. Confira a caixa de autor do seu tema e o sitemap de autores de qualquer plugin de SEO. Mude o nome de exibição do autor se o tema o mostrar.

Com o Hushfort

A Varredura de Superfície fica no painel Blindagem de Superfície do Hushfort Security, o plugin de segurança gratuito para WordPress. Ela mede o que o seu site realmente expõe com requisições reais, assim como o método manual, e lista pelo nome os usuários que encontrar. Cada achado corresponde a uma camada do Hushfort que o fecha:

Criamos a Varredura de Superfície depois que uma loja continuou recebendo tentativas de senha pelo XML-RPC mesmo com a página de login oculta. A configuração parecia certa; só uma requisição real mostrou a porta aberta.

Perguntas frequentes

É legal fazer uma varredura no meu próprio site WordPress?

Sim, enviar requisições normais ao seu próprio site não tem problema. Teste apenas sites que são seus ou que você tem permissão para testar.

Por que testar com requisições reais em vez de ler as configurações?

As configurações podem dizer uma coisa enquanto um cache, uma regra da CDN, outro plugin ou um tema faz outra. Uma requisição real mostra o que o visitante realmente recebe.

Essa verificação encontra malware ou plugins vulneráveis?

Não. Ela verifica as portas e os vazamentos de nomes de usuário. A busca por malware e por vulnerabilidades conhecidas exige outra ferramenta; o Hushfort não faz isso.

Com que frequência devo verificar?

Depois de instalar ou remover plugins, trocar de tema, mudar de hospedagem ou alterar regras da CDN. Esses são os momentos em que a exposição muda sem ninguém perceber.

Relatar um erro ou pedir um recurso

Sua mensagem vai direto para a equipe que desenvolve o Hushfort.

Sobre o que é?

Usado apenas para responder a você.

Usamos esses dados apenas para responder a você. Privacidade