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/ewp-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.phpnesta pasta - Usar Wordfence ou MalCare para scan de malware nos ficheiros restantes
- Verificar a tabela
wp_optionsna base de dados para valores suspeitos emsiteurlehome, 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.phppor 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