WordPress hackeado: como limpar e recuperar seu site

Seu site está redirecionando para páginas estranhas, o Google mostrou um aviso de malware ou você simplesmente perdeu o acesso ao painel. Primeiro: respire. A maioria dos sites WordPress hackeados pode ser recuperada sem recriar tudo do zero.

Este guia mostra exatamente o que fazer, na ordem correta, para limpar o site, restaurar o controle e evitar que a invasão se repita.

Antes de começar: se você mantém backups regulares, como explicamos no nosso guia sobre backup do WordPress na nuvem, o processo de recuperação será muito mais rápido.

Checklist rápido: os 5 primeiros passos

Se você precisa agir agora, execute estas etapas imediatamente e volte ao guia completo depois:

  1. Faça backup do estado atual (mesmo infectado) — você pode precisar das evidências.
  2. Troque a senha do admin do WordPress e de todos os usuários com perfil administrador.
  3. Escaneie o site com o Sucuri SiteCheck (gratuito, online).
  4. Verifique os usuários admin no painel e remova qualquer conta desconhecida.
  5. Entre no Google Search Console e veja se há alertas na seção “Problemas de segurança”.

Agora, vamos detalhar cada etapa.

Como confirmar que o WordPress foi hackeado

Nem toda invasão é óbvia. Alguns sinais comuns de que o site foi comprometido:

  • Redirecionamentos para sites desconhecidos — ao acessar o site, o visitante é enviado para outra página.
  • Aviso do navegador — Chrome, Firefox ou Edge mostram “Este site pode estar comprometido” ou “Conexão não segura”.
  • Conteúdo alterado — textos, imagens ou links que você não adicionou aparecem nas páginas.
  • Queda repentina de tráfego — o Google Analytics mostra queda abrupta, que pode indicar desindexação.
  • Estranhos com perfil admin — novos usuários administradores aparecem no painel.
  • Arquivos modificados recentemente — ao verificar via FTP ou gerenciador de arquivos, arquivos do core do WordPress foram alterados sem você ter feito atualização.
  • E-mails de spam enviados pelo servidor — sua hospedagem notifica sobre envio de spam ou o IP foi listado em blacklist.
  • Painel do WordPress inacessível — erro ao tentar logar ou redirecionamento ao carregar /wp-admin.
  • Scripts maliciosos no código-fonte — ao visualizar o código-fonte da página (Ctrl+U no navegador), aparecem iframes, scripts ou links estranhos.

Se você identificou um ou mais desses sinais, provavelmente o site foi invadido. Vamos agir.

Primeiros passos: contenção imediata

Antes de tentar limpar qualquer coisa, contenha a situação:

1. Faça backup do estado atual

Pode parecer contraintuitivo, mas faça backup de tudo como está agora — arquivos e banco de dados. Você pode precisar desse backup para analisar o que aconteceu ou como evidência. Salve em um diretório separado, claramente marcado como “infectado”.

Se você tem backups anteriores à invasão, identifique-os. Eles serão úteis na etapa de restauração.

2. Coloque o site em modo manutenção (opcional)

Se o site está exibindo conteúdo malicioso publicamente, considere colocar em modo manutenção enquanto trabalha na limpeza. Isso protege os visitantes e evita que o Google indexe o conteúdo comprometido. Você pode usar um plugin de manutenção ou, se o acesso ao painel estiver bloqueado, criar um arquivo .maintenance na raiz do WordPress via FTP.

Nota: o WordPress remove automaticamente o arquivo .maintenance após 10 minutos. Se precisar prolongar o modo manutenção, recrie o arquivo ou use um plugin.

3. Notifique sua hospedagem

Entre em contato com o suporte da hospedagem. Muitas oferecem ferramentas de scanner próprias e podem ajudar com:

  • Restauração de backup do servidor.
  • Identificação de arquivos comprometidos.
  • Bloqueio de IPs de ataque.
  • Verificação de listas negras de IP.

Se a hospedagem oferece backup automático, pergunte qual é o backup mais recente anterior à invasão.

Escaneamento: encontrando o malware

Depois de conter a situação, é hora de identificar exatamente o que foi comprometido.

Sucuri SiteCheck (gratuito, online)

O Sucuri SiteCheck é uma ferramenta gratuita que escaneia o site remotamente. Basta digitar a URL e clicar em “Scan Website”. Ele verifica:

  • Malware conhecido.
  • Blacklists (Google, Norton, McAfee, etc.).
  • Erros do site.
  • Software desatualizado.

Limitação: o Sucuri SiteCheck faz uma análise superficial — ele verifica o que é visível externamente, não os arquivos do servidor. Para uma análise mais profunda, use um plugin de scanner instalado no WordPress.

Importante: não confunda o Sucuri SiteCheck (scanner gratuito online) com o serviço Sucuri (pago, que inclui firewall e remoção profissional de malware). O scanner gratuito é apenas uma primeira triagem.

Wordfence (plugin gratuito)

O Wordfence é um plugin de segurança para WordPress que inclui scanner de arquivos. Na versão gratuita:

  1. Instale e ative o plugin (se o painel estiver acessível).
  2. Vá em Wordfence → Scan.
  3. Clique em Start New Scan.
  4. Aguarde a conclusão — pode levar vários minutos dependendo do tamanho do site.

O Wordfence compara os arquivos do seu WordPress com a versão oficial do repositório e identifica:

  • Arquivos do core modificados.
  • Arquivos suspeitos que não fazem parte do WordPress, temas ou plugins.
  • Alterações em temas e plugins.
  • URLs e código malicioso conhecido.

Ferramentas da hospedagem

Verifique o painel da sua hospedagem. Muitas oferecem:

  • Scanner de malware (ex.: Imunify360 da Hostinger, SiteLock da Hostgator).
  • Visualizador de arquivos com ordenação por data de modificação — útil para encontrar arquivos alterados recentemente.
  • Logs de acesso — permitem identificar de onde veio o ataque.

Atenção: alguns scanners de hospedagem (como SiteLock) podem gerar alertas exagerados como estratégia de venda. Use como referência, mas valide com ferramentas independentes como o Wordfence.

O que procurar manualmente

Mesmo com scanners automáticos, uma verificação manual complementa a análise. Acesse os arquivos do site via FTP ou Gerenciador de Arquivos da hospedagem e procure:

  • Arquivos PHP na raiz que não fazem parte do core — o WordPress legítimo tem wp-config.php, wp-login.php, wp-settings.php, index.php, xmlrpc.php, wp-cron.php, wp-comments-post.php, wp-activate.php, wp-blog-header.php, wp-links-opml.php, wp-load.php, wp-mail.php, wp-signup.php, wp-trackback.php e wp-links.php (entre outros). Qualquer arquivo PHP suspeito adicional merece investigação.
  • Arquivos com nomes aleatórios — como x7k9.php, config.bak.php, wp-conf.php (note o nome quase igual ao original).
  • Código ofuscado — strings longas de caracteres aleatórios, funções eval(), base64_decode() ou gzinflate() em arquivos que não deveriam ter esse código.
  • Arquivos em diretórios de uploads — a pasta wp-content/uploads/ não deveria conter arquivos PHP.
  • Modificações recentes — ordene os arquivos por data de modificação e verifique os alterados nas últimas semanas.

Verificação do banco de dados

A invasão pode ter atingido o banco de dados, não apenas os arquivos. Verifique:

Usuários suspeitos

  1. Acesse o phpMyAdmin pelo painel da hospedagem.
  2. Abra o banco de dados do WordPress.
  3. Vá na tabela wp_users (o prefixo pode ser diferente se você alterou durante a instalação).
  4. Verifique se há usuários que você não reconhece. As capacidades de administrador ficam armazenadas em wp_usermeta (chave wp_capabilities), não no campo user_level (obsoleto desde o WordPress 3.0).

Injeções de código em posts

  1. Na tabela wp_posts, procure por conteúdo que contenha <script>, <iframe> ou URLs estranhas no campo post_content.
  2. Uma busca SQL rápida: SELECT * FROM wp_posts WHERE post_content LIKE '%<script%' (ajuste o prefixo da tabela se necessário).

Opções do site alteradas

  1. Na tabela wp_options, verifique se siteurl e home estão corretos.
  2. Verifique a opção widget_text e sidebars — atacantes costumam injetar código em widgets de texto.
  3. Procure por opções com nomes desconhecidos, especialmente na coluna option_name.

Aviso: editar o banco de dados diretamente é arriscado. Se você não tem experiência, faça apenas a verificação e documente o que encontrou para um profissional tratar.

Verificação de usuários admin

Esta etapa é crítica e frequentemente esquecida:

  1. No painel do WordPress, vá em Usuários → Todos os usuários.
  2. Filtre por perfil Administrador.
  3. Remova ou rebaixe qualquer conta que você não reconhece.
  4. Se não conseguir remover pelo painel (o atacante pode ter protegido a conta), remova diretamente pelo banco de dados na tabela wp_users e wp_usermeta.

Atacantes frequentemente criam contas admin disfarçadas com nomes como “wpadmin”, “support”, “system” ou variações de nomes comuns. Verifique todas.

Troca completa de senhas

A troca de senha do admin não é suficiente. Troque todas as senhas relacionadas ao site:

Senhas do WordPress

  • Todos os administradores — peça a cada um que troque a senha ou faça pelo painel (Usuários → editar → nova senha).
  • Autores e editores — se o site tem múltiplos usuários, troque ou solicite a troca.

Senhas de acesso ao servidor

  • FTP/SFTP — altere a senha de FTP no painel da hospedagem.
  • Painel da hospedagem (cPanel, Plesk, etc.) — altere a senha de acesso ao painel de controle.
  • SSH — se você usa SSH, altere as chaves e senhas.

Senhas do banco de dados

  • Altere a senha do usuário do MySQL no painel da hospedagem.
  • Atualize o arquivo wp-config.php com a nova senha (campo DB_PASSWORD).

Outras senhas

  • E-mail do admin — se o atacante pode ter acesso ao e-mail, troque a senha do e-mail também.
  • Chaves de API — se o site usa APIs (Google, redes sociais, gateways de pagamento), revogue e gere novas chaves.
  • Salt keys do wp-config.php — gere novas em https://api.wordpress.org/secret-key/1.1/salt/ e substitua no wp-config.php.

Dica: use senhas fortes

Gere senhas longas (16+ caracteres) com letras maiúsculas, minúsculas, números e símbolos. Use um gerenciador de senhas. Evite reutilizar senhas entre serviços.

Restauração a partir de backup

Se você tem um backup limpo anterior à invasão, a restauração costuma ser o caminho mais rápido e confiável:

Quando restaurar

  • O backup é anterior à invasão (verifique as datas).
  • Você tem certeza de que o backup está limpo.
  • A invasão é extensa demais para limpeza manual (muitos arquivos e tabelas comprometidos).

Como restaurar

  1. Com plugin de backup: se você usou UpdraftPlus, BlogVault ou similar, acesse o painel (se acessível) e inicie a restauração. Se o painel estiver inacessível, muitos plugins permitem restauração via arquivo de backup no servidor — consulte a documentação do plugin.
  2. Pela hospedagem: muitas hospedagens oferecem restauração de backup pelo painel de controle (cPanel → Backup, Plesk → Backup Manager, etc.).
  3. Manualmente: substitua os arquivos do site pelos do backup via FTP e importe o backup do banco de dados via phpMyAdmin.

Após a restauração

  • Aplique todas as atualizações do WordPress, temas e plugins imediatamente.
  • Troque todas as senhas (sim, de novo — o backup pode ter senhas antigas).
  • Verifique novamente os usuários admin.
  • Escaneie o site restaurado para garantir que está limpo.

Importante: se você restaura um backup mas não corrige a vulnerabilidade que permitiu a invasão, o site será hackeado novamente. A restauração resolve o sintoma; a prevenção resolve a causa.

Revisão de segurança no Google Search Console

Se o Google identificou malware ou phishing no seu site, ele pode ter adicionado um aviso nos resultados de busca (“Este site pode estar comprometido”) ou removido o site do índice.

Como verificar

  1. Acesse o Google Search Console.
  2. Verifique a seção Problemas de segurança (anteriormente chamada “Segurança e ações manuais”).
  3. Se houver alertas, o Google listará o que encontrou (malware, engenharia social, conteúdo enganoso, etc.).

Como pedir revisão

Depois de limpar completamente o site:

  1. Na mesma seção de segurança do Search Console, clique em Solicitar análise (ou “Request Review”).
  2. Descreva o que você fez para resolver o problema (limpeza de malware, troca de senhas, atualização de plugins, etc.).
  3. Aguarde — a revisão pode levar de dias a semanas.

Se o site foi desindexado

Após a revisão aprovada, o Google reindexará o site, mas isso pode levar tempo. Para acelerar:

  • Envie um sitemap atualizado pelo Search Console.
  • Use “Inspecionar URL” → “Solicitar indexação” para páginas importantes.
  • Certifique-se de que o robots.txt não está bloqueando o Google (às vezes atacantes modificam esse arquivo).

Prevenção: como evitar ser hackeado novamente

A recuperação só termina quando você implementa medidas para evitar a reincidência:

Mantenha tudo atualizado

  • WordPress core: atualize assim que versões de segurança são lançadas.
  • Plugins: atualize regularmente. Desative e remova plugins que não usa.
  • Temas: atualize o tema ativo. Remova temas inativos (eles também podem ter vulnerabilidades).

Use senhas fortes e autenticação em dois fatores

  • Senhas longas e únicas para todos os usuários admin.
  • Ative autenticação em dois fatores (2FA) — plugins como Wordfence ou Two Factor Authentication facilitam a configuração.

Instale um plugin de segurança

  • Wordfence — firewall e scanner na versão gratuita.
  • Sucuri Security — auditoria, monitoramento de integridade e hardening.

Nota: o plugin Sucuri Security (gratuito) é diferente do serviço Sucuri (pago, com firewall e remoção de malware). O plugin gratuito oferece auditoria e monitoramento; o serviço pago inclui firewall e limpeza profissional.

Faça backups regulares

  • Configure backups automáticos diários ou semanais.
  • Armazene backups em local externo ao servidor (Google Drive, Amazon S3, Dropbox).
  • Teste a restauração periodicamente — backup sem teste é aposta.

Use HTTPS

Se seu site ainda não usa HTTPS, habilite agora. HTTPS não impede invasões diretamente, mas protege a transmissão de dados (incluindo senhas) e é um sinal de credibilidade para visitantes e buscadores. Veja nosso guia sobre como configurar HTTPS no WordPress.

Escolha uma hospedagem com foco em segurança

Hospedagens de qualidade oferecem firewall de servidor, scanner de malware, backups automáticos e atualizações forçadas do PHP. Se sua hospedagem atual não oferece nenhum desses recursos, considere migrar. Veja nosso guia sobre como escolher hospedagem WordPress.

Limite tentativas de login

  • Use um plugin de limite de login para bloquear força bruta.
  • Altere a URL de login do padrão /wp-admin para uma URL personalizada (plugins como WPS Hide Login fazem isso).
  • Considere bloquear acesso ao xmlrpc.php se não usa funcionalidades que dependam dele (Jetpack, aplicativos móveis).

Monitore o site

  • Configure alertas de downtime (UptimeRobot é gratuito).
  • Acompanhe o Google Search Console regularmente.
  • Verifique logs de acesso periodicamente para identificar padrões suspeitos.

Quando contratar um profissional

Nem toda invasão é simples de resolver. Considere contratar um profissional quando:

  • O site é uma loja virtual com dados de pagamento (PCI DSS exige conformidade).
  • Você não consegue identificar a origem da invasão após tentar o processo completo.
  • O site foi hackeado mais de uma vez.
  • O banco de dados está extensivamente comprometido.
  • Você não tem backup limpo e a limpeza manual é complexa.
  • O site precisa voltar ao ar urgentemente e você não tem tempo para aprender o processo.

Serviços profissionais de limpeza de malware (Sucuri, SiteLock, MalCare) cobram valores variados — verifique os preços atuais diretamente nos sites dos provedores. Algumas hospedagens oferecem o serviço como parte do suporte.

FAQ

Meu site foi hackeado e eu não tenho backup. O que fazer?

Ainda é possível recuperar. Siga o processo de escaneamento e limpeza manual descrito neste guia. Verifique se a hospedagem mantém backups próprios (muitas mantêm por 7 a 30 dias). Se não houver backup em nenhum lugar, a limpeza manual dos arquivos e do banco de dados é o único caminho.

O Google bloqueou meu site. Quanto tempo leva para voltar?

Após limpar completamente o site e solicitar revisão no Search Console, o Google pode levar de 3 a 30 dias para revisar e remover o aviso. Em casos urgentes, a revisão costuma ser mais rápida (3 a 7 dias). A reindexação completa pode levar mais tempo.

Posso simplesmente reinstalar o WordPress por cima?

Sim, reinstalar o core do WordPress (painel → Atualizações → “Reinstalar agora”) substitui os arquivos do core. Mas isso não limpa malware em temas, plugins, uploads ou no banco de dados. A reinstalação do core é uma etapa útil, mas não suficiente sozinha.

O Sucuri SiteCheck disse que meu site está limpo, mas ainda vejo problemas. Por quê?

O Sucuri SiteCheck faz uma análise superficial — ele verifica o que é visível externamente. Malware escondido em arquivos profundos ou no banco de dados pode não ser detectado. Use também o Wordfence ou o scanner da hospedagem para uma análise mais profunda.

Meu site redireciona para outro site. É malware?

Provavelmente sim. Redirecionamentos não autorizados são um dos tipos mais comuns de infecção. Verifique os arquivos .htaccess na raiz do WordPress e em diretórios pais. Atacantes frequentemente adicionam regras de redirecionamento nesse arquivo. Também verifique as configurações de URL nas opções do banco de dados (siteurl e home na tabela wp_options).

Como sei se o hacker deixou uma “porta dos fundos”?

Backdoors são arquivos ou código que permitem ao atacante reentrar mesmo após a limpeza. Procure:

  • Arquivos PHP com funções eval(), base64_decode(), assert() ou preg_replace() com modificador /e (em versões antigas de PHP; a partir do PHP 7.0, o modificador /e foi removido, mas backdoors podem tentar usá-lo).
  • Arquivos em diretórios inesperados (uploads, cache, tmp).
  • Usuários admin desconhecidos no banco de dados.
  • Cron jobs maliciosos (verifique wp_options pela chave cron).
  • Modificações no wp-config.php.

O Wordfence detecta muitos backdoors conhecidos, mas backdoors customizados podem passar. Se o site for hackeado novamente após a limpeza, provavelmente há um backdoor não identificado.

A hospedagem bloqueou meu site. O que fazer?

Entre em contato com o suporte da hospedagem e peça detalhes sobre o bloqueio. Geralmente, a hospedagem bloqueia sites comprometidos para proteger o servidor. Depois de limpar o site (usando os arquivos de backup ou fazendo download via FTP para limpar localmente), solicite o desbloqueio. Algumas hospedagens permitem acesso ao painel mesmo com o site bloqueado para facilitar a limpeza.

Conclusão

Ser hackeado é assustador, mas a recuperação é possível — e a maioria dos sites WordPress consegue voltar ao normal sem recriar tudo do zero.

O mais importante é agir rápido e na ordem certa: conter, escanear, limpar, trocar senhas, restaurar (se necessário) e prevenir. Pular etapas — especialmente a troca de senhas ou a verificação de backdoors — quase garante que a invasão vai se repetir.

Depois de recuperar o site, invista em prevenção: atualizações regulares, senhas fortes, backups automáticos e um plugin de segurança. São minutos de configuração que podem evitar dias de crise.

Para aprofundar sua proteção, veja também nosso guia sobre hospedagem WordPress e como configurar HTTPS no WordPress.


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *