Site hackeado é um daqueles momentos em que o tempo joga contra você. Cada hora que o site fica infectado, o estrago aumenta: Google marca o domínio como “site enganoso” e perde tráfego orgânico, hospedagem suspende a conta por abuso, clientes que entram são contaminados ou redirecionados, e o invasor pode estar usando seu servidor pra atacar outros alvos.
A primeira reação certa é agir rápido — mas com método. Limpar mal é pior que não limpar: o malware volta em horas, e dessa vez mais escondido. Esse guia é a sequência que profissionais usam pra recuperar WordPress invadido sem deixar resíduo.
Como saber se o site foi hackeado
Sinais claros de infecção:
- Google mostra “Este site pode ser perigoso” no resultado de busca
- Site redireciona pra páginas estranhas (cassinos, pílulas, sites em russo ou chinês)
- Páginas novas que você não criou aparecem no site
- Conta de hospedagem foi suspensa por “envio de spam” ou “atividade maliciosa”
- Volume estranho de tráfego, especialmente de países onde você não atua
- Arquivos novos no servidor que você não reconhece
- WordPress não permite mais login no admin
- Aparecem usuários administradores que você não criou
Sinais mais sutis:
- HTML do site tem
<script>no final apontando pra domínios estranhos - Resultado do Google mostra textos em japonês ou chinês embaixo dos seus links (Japanese SEO Spam — ataque clássico)
- Hospedagem alerta que o uso de CPU ou rede subiu sem explicação
- Plugin de segurança aponta arquivos modificados sem motivo
Se algum desses sintomas aparece, trata como se fosse hackeado. Confirmar leva minutos, ignorar pode custar a operação inteira.
ANTES de mexer em qualquer coisa: pare e isole
Erro número um é começar a apagar arquivos suspeitos no afobamento. Você acaba apagando coisa errada, deixa rastros do invasor pra trás, ou pior: o invasor tem porta dos fundos e volta a atacar enquanto você “limpa”.
Antes de qualquer ação:
- Coloca o site em modo manutenção ou redireciona temporariamente pra uma página estática. Isso para o estrago em visitantes e dá tempo pra trabalhar.
- Tira um snapshot completo do estado atual, mesmo infectado. Isso vai servir de evidência pra forense depois e backup de emergência se algo der ainda mais errado.
- Avisa a hospedagem — alguns provedores ajudam, e se a conta for suspensa enquanto você trabalha, é mais fácil destravar avisando antes.
Passo a passo da limpeza
1. Identifique a porta de entrada
Antes de limpar, descubra como entraram. Sem isso, vai limpar e ser invadido de novo amanhã.
Causas mais comuns, em ordem de frequência:
- Plugin desatualizado com vulnerabilidade conhecida (a #1 disparado)
- Tema pirata ou comprado em fonte duvidosa com backdoor já embutido
- Senha fraca de admin quebrada por força bruta
- Hospedagem compartilhada onde outro site infectado contaminou o seu
- wp-config.php exposto ou com permissões erradas
- Arquivo
xmlrpc.phpaberto sem proteção contra ataque de amplificação - Versão antiga do PHP ou WordPress (raro mas acontece)
Olha os logs de acesso da hospedagem — geralmente identifica o IP atacante e o caminho exato que ele usou. Plugins como Wordfence, iThemes Security ou Sucuri Security mostram histórico de tentativas e arquivos modificados.
2. Mude todas as senhas
Antes de limpar arquivos:
- Senha do painel da hospedagem
- Senha do FTP/SFTP
- Senha do banco de dados (atualiza no
wp-config.phpdepois) - Senha de todos os usuários administradores do WordPress
- Chave secreta do
wp-config.php(as 8 chaves geradas em api.wordpress.org/secret-key)
Toda sessão ativa é invalidada com a troca das chaves. Se o invasor tinha sessão aberta, perde o acesso.
3. Restaure de backup limpo (se possível)
Se você tem backup anterior à infecção, esse é o caminho mais rápido e mais seguro. Restaurar backup limpo + atualizar tudo + fechar a porta de entrada resolve quase todo caso.
Importante: o backup precisa ser anterior à infecção. Se você descobriu o ataque há 3 dias, mas o backup tem 2 dias, ele já tá infectado também. Vai pra um mais antigo.
Se não tem backup limpo, vai pro passo 4.
4. Limpeza manual de arquivos
Sem backup limpo, a limpeza é mais cirúrgica.
a) Reinstala o core do WordPress. Baixa a versão atual em wordpress.org e sobrescreve todos os arquivos do core (mantendo wp-content/). Isso elimina malware injetado em arquivos do núcleo, que é onde mais se esconde.
b) Reinstala todos os plugins ativos a partir do repositório oficial. Não confie no que está no servidor. Apaga a pasta de cada plugin e reinstala da fonte oficial. Plugins descontinuados ou abandonados — descarte e procura substituto mantido.
c) Reinstala o tema. Mesma lógica. Se o tema é premium, baixa direto do desenvolvedor original. Se é tema customizado, restaura do controle de versão (se você tem). Se não tem, vai precisar de auditoria de código por linha.
d) Procura arquivos suspeitos no wp-content/:
- Arquivos
.phpem pastas que não deveriam ter PHP (ex:wp-content/uploads/) - Arquivos com nomes ofuscados (
a1b2c3.php,index_old.php) - Arquivos com data de modificação estranha
- Funções perigosas em qualquer arquivo:
eval(,base64_decode(,gzinflate(,str_rot13(
Comando útil em SSH pra encontrar PHP onde não deveria existir:
find /caminho/do/site/wp-content/uploads -name "*.php"
Qualquer resultado aí é suspeito. Avalia e remove.
5. Limpa o banco de dados
Malware também infecta o banco. Pontos comuns:
- Tabela
wp_options, especialmente a opçãositeurlehome(alterados pra redirecionar) eactive_plugins(com plugins ocultos ativados) - Tabela
wp_users: usuários novos com permissão de admin que você não criou - Tabela
wp_posts: posts compost_status = 'publish'mas com conteúdo estranho ou tipos diferentes - Trigger SQL ou stored procedure maliciosa (mais raro, mas existe)
Roda um scan no banco com Sucuri (gratuito) ou Wordfence Premium. Manualmente, exporta o .sql e procura por eval, base64, URLs suspeitas, scripts inline.
6. Atualize tudo
WordPress core, todos os plugins, tema, e PHP do servidor pra versão mais recente compatível. Vulnerabilidade não corrigida = porta aberta.
7. Instale proteção contínua
Antes de tirar o modo manutenção:
- Plugin de segurança ativo (Wordfence, Sucuri, iThemes Security ou similar)
- Firewall de aplicação (WAF) — Cloudflare gratuito já ajuda muito
- 2FA obrigatório em todos os usuários admin
- Limite de tentativas de login (bloqueio após 5 tentativas)
- Desativa edição de arquivos pelo painel (
define('DISALLOW_FILE_EDIT', true);nowp-config.php) - Backup automático diário em destino externo
8. Tire o site da blacklist do Google
Se o Google marcou seu site, depois da limpeza:
- Vai no Google Search Console
- Seção “Problemas de segurança”
- Solicita revisão após confirmar que está limpo
A reanálise leva de algumas horas a alguns dias. Marca falsa, o Google libera rápido. Marca confirmada e depois limpa, pode demorar.
O que NÃO fazer
- Não apaga “tudo” sem identificar a entrada. Limpa, deixa o problema voltar — e dessa vez você não enxerga porque já apagou os rastros.
- Não confia em “limpa-malware grátis” achado em fórum. Muitos são malware mascarado de antivírus.
- Não conta com plugin de segurança como única defesa. Plugin é uma camada, não a solução.
- Não esquece dos e-mails da empresa. Se a conta de hospedagem foi suspensa, e-mails que estão lá podem ter sido perdidos. Verifica e migra pra Google Workspace ou Microsoft 365 se ainda não migrou.
- Não ignora o problema “porque o site voltou”. Site funcionando é diferente de site limpo. Backdoor pode estar lá quietinho esperando o próximo aviso.
Perguntas frequentes
Em quanto tempo um site WordPress hackeado é recuperado? Casos simples (malware conhecido, com backup recente) resolvem em 4-6 horas. Casos complexos (sem backup, infecção profunda no banco, blacklist do Google) podem levar 1-3 dias úteis.
Vou perder dados na limpeza? Conteúdo (posts, páginas, mídias) raramente se perde, porque o ataque costuma adicionar coisa, não apagar. Configurações personalizadas e customizações em código de tema podem se perder se não houver backup.
O site fica fora do ar durante a limpeza? Idealmente sim, em modo manutenção controlado, pra não contaminar visitantes. O tempo varia com a complexidade.
Vai acontecer de novo? Não, se a porta de entrada for fechada e a proteção contínua for instalada. Sites profissionalmente atendidos com manutenção mensal raramente são reinvadidos.
Quanto custa limpar um site WordPress hackeado? Limpeza simples começa em R$ 800-1.500. Casos com banco infectado, blacklist do Google ou múltiplos sites na mesma conta de hospedagem podem chegar a R$ 2.500-4.000. Atendimento de emergência (fim de semana, madrugada) tem taxa adicional.
