Site WordPress Comprometido: Guia de Recuperação Passo a Passo

Descobrir que um site WordPress foi comprometido é uma das situações mais stressantes para uma agência ou proprietário de negócio. O pânico leva a decisões precipitadas que podem agravar o problema. Este guia apresenta o processo de recuperação na ordem correcta, minimizando danos e garantindo que o ataque não se repete.

Passo 1: Confirmar o comprometimento e avaliar o impacto

Antes de agir, confirme o que aconteceu exactamente. Os sinais mais comuns de comprometimento:

  • Google Safe Browsing a marcar o site como perigoso (visível na SERP com aviso vermelho)
  • Hosting a suspender a conta por actividade maliciosa ou spam
  • Redirecionamentos automáticos para sites de phishing ou farmácias ilegais
  • Conteúdo estranho (páginas de casino, links spam) injectado em páginas existentes
  • Utilizadores administradores desconhecidos no painel WordPress
  • Ficheiros PHP não reconhecidos em wp-content/uploads/

Ferramentas para diagnóstico inicial: Sucuri SiteCheck (gratuito), Google Search Console (secção de segurança), e a ferramenta de transparência de segurança do Google.

Passo 2: Colocar o site em modo de manutenção

Antes de qualquer limpeza, o site deve estar inacessível para visitantes. Isto impede que utilizadores legítimos sejam expostos a malware e que os motores de busca continuem a indexar conteúdo comprometido.

Via .htaccess ou via hosting, restringir o acesso ao IP da equipa técnica. Mantenha o acesso ao painel admin disponível para a limpeza.

Passo 3: Fazer um backup do estado comprometido

Contra-intuitivo, mas importante: faça backup do site comprometido antes de limpar. Porquê? Porque permite análise forense posterior (como entrou o atacante?), e porque se a limpeza correr mal, há um ponto de partida. Guarde este backup separado dos backups limpos.

Passo 4: Restaurar a partir de backup limpo (se disponível)

Se existir um backup anterior ao comprometimento e souber aproximadamente quando ocorreu, restaurar o backup limpo é mais rápido e mais fiável do que limpar manualmente. Após o restauro, o Passo 6 (corrigir vulnerabilidades) continua a ser obrigatório — caso contrário, o site será comprometido novamente.

Passo 5: Limpeza manual quando não há backup limpo

Se não houver backup limpo, a limpeza é feita ficheiro a ficheiro:

  • Reinstalar WordPress de base (descarregar ficheiros frescos de wordpress.org, substituir todos excepto wp-content/ e wp-config.php)
  • Reinstalar todos os plugins e temas a partir de fontes originais
  • Verificar wp-content/uploads/ para ficheiros PHP injectados — não devem existir ficheiros .php nesta pasta
  • Usar Wordfence ou MalCare para scan de malware nos ficheiros restantes
  • Verificar a tabela wp_options na base de dados para valores suspeitos em siteurl e home, e para scripts injectados em widgets

Passo 6: Identificar e corrigir a vulnerabilidade de entrada

Limpar sem corrigir a entrada é inútil — o site será reinfectado em horas ou dias. As entradas mais comuns:

  • Plugin ou tema desactualizado com vulnerabilidade conhecida — verificar WPScan ou Patchstack para CVEs recentes
  • Credenciais comprometidas — password do admin fraca ou reutilizada noutros serviços
  • Temas ou plugins nulled (pirateados) — frequentemente contêm backdoors propositados
  • Vulnerabilidade no hosting — outros sites no mesmo servidor comprometidos ("cross-site contamination")

Passo 7: Reforçar a segurança pós-limpeza

Após a limpeza, um conjunto de acções preventivas obrigatórias:

  • Mudar todas as passwords: admin WordPress, FTP/SFTP, painel de hosting, base de dados
  • Actualizar todas as secret keys no wp-config.php (usar o gerador oficial do WordPress)
  • Activar autenticação de dois factores no admin WordPress
  • Instalar um plugin de segurança activo com WAF (Wordfence ou Solid Security)
  • Restringir acesso ao wp-login.php por IP ou com password adicional via .htaccess

Passo 8: Pedir remoção das listas negras

Após confirmar que o site está limpo, solicitar remoção manual das listas negras:

  • Google Safe Browsing — via Google Search Console, secção "Problemas de segurança" → "Pedir revisão"
  • McAfee SiteAdvisor / Norton Safe Web — formulários próprios nos respectivos sites
  • Sucuri blacklist — formulário em sucuri.net

A remoção do Google demora tipicamente 24 a 72 horas após a solicitação.

Tempo médio de recuperação

Com backup limpo disponível: 2 a 4 horas. Sem backup limpo (limpeza manual): 6 a 12 horas dependendo da complexidade do site. Sites com WooCommerce ou muitos dados personalizados podem demorar mais. A diferença entre ter e não ter um parceiro técnico neste momento é a diferença entre 2 horas e um fim de semana de trabalho em stress.

Precisa de resposta a incidente agora?

A Vuvo oferece limpeza urgente de malware WordPress e remoção de blacklist, com tempo de resposta inferior a 4 horas em dias úteis.

Contactar suporte urgente