Encontrar backdoor no WordPress exige cruzar varredura de arquivos, banco de dados e logs antes de remover qualquer linha de código. Segundo o NVD (2020), a CVE-2020-35489 (CVSS 10.0) no Contact Form 7 permitia upload arbitrario de arquivo. Funções como eval() e base64_decode() sinalizam ofuscacao na maior parte dos casos. Comece pela auditoria, não pela exclusão.
Encontrar backdoor no WordPress significa localizar o trecho de código escondido que devolve acesso ao invasor mesmo depois de você trocar senhas. Um backdoor é uma porta dos fundos: um arquivo PHP, uma função em um plugin ou uma linha no banco de dados que reabre a invasão. Diferente do malware visível, ele não quer ser notado, e por isso a varredura precisa ser metódica. Este guia faz parte do hub de guias de segurança WordPress da FULL e mostra como agir sem derrubar o site. Se o seu site já mostra redirecionamentos ou spam, o problema quase sempre tem uma porta dos fundos por trás, como detalha o guia sobre o que é backdoor em WordPress.
Diagnóstico rápido: Sinais de backdoor no WordPress
Sete sinais aparecem em quase todo site comprometido, e reconhecê-los economiza horas de varredura às cegas. Em boa parte dos tickets de invasão que chegam ao suporte da FULL, o dono percebe o problema tarde demais: o backdoor já recriou 1 ou mais usuários admin e injetou redirecionamentos de spam.
Antes de começar a encontrar backdoor no WordPress, registre os sintomas abaixo, porque eles guiam onde varrer primeiro e separam um simples malware visível de uma porta dos fundos persistente.
| Sintoma | Causa provável | Onde investigar |
|---|---|---|
| Usuário admin desconhecido | Backdoor recria conta via banco | Tabela wp_users e wp_usermeta |
| Redirecionamento para spam | Injeção em wp-config ou .htaccess | Arquivos raiz e tema ativo |
| Arquivos .php em /uploads | Upload arbitrário de arquivo | wp-content/uploads |
| Plugin que não instalei | mu-plugin malicioso | wp-content/mu-plugins |
| Picos de tráfego noturno | Shell PHP em execução | Logs de acesso do servidor |
Legenda: a varredura cruza arquivos e banco antes de qualquer exclusão, evitando falso positivo.
Passo a passo: Encontrar backdoor no WordPress e remover
O processo tem 6 passos e funciona melhor na ordem abaixo, porque limpar antes de mapear costuma deixar o backdoor recriar a infecção em minutos. Em ambientes com mais de 30 plugins, a porta dos fundos costuma aparecer em um must-use plugin que carrega antes de qualquer hook de segurança.
Por isso, para encontrar backdoor no WordPress de forma definitiva, isole o site, faça backup forense e só depois remova. O All in One Security ajuda na varredura agendada e no bloqueio de execução PHP em uploads.
Passo 1: Isole o site e faça backup forense
Encontrar backdoor no WordPress começa antes da varredura: coloque o site em manutenção e gere um backup completo, incluindo banco de dados, antes de tocar em qualquer arquivo. Esse backup não serve para restaurar: serve como evidência para comparar versões e rastrear o ponto de entrada. Use o UpdraftPlus ou o painel da hospedagem. Um firewall ativo nesse momento corta novas requisições do invasor enquanto você trabalha, segundo a documentação oficial do plugin.
Passo 2: Compare arquivos com o Core original
Baixe o WordPress da fonte oficial e compare hash a hash com a sua instalação. Qualquer arquivo modificado no diretório /wp-admin ou /wp-includes é suspeito, porque o core raramente muda fora de uma atualização. Ferramentas como Wordfence e WPScan automatizam esse diff. A FULL, como única CNA brasileira sob a CISA desde maio de 2022, cataloga CVEs reais que indicam quais versões de plugin trazem o vetor de entrada.
Passo 3: Procure funções de ofuscação no código
Busque por eval(), base64_decode(), gzinflate() e str_rot13() em todo o wp-content. Essas funções, combinadas, executam código remoto sem aparecer no log de acesso, e são a assinatura mais comum de backdoor. Use grep via SSH ou a varredura do hardening. Nem todo eval() é malicioso, então confirme o contexto antes de apagar, para não quebrar um plugin legítimo que usa a função de forma controlada.
Passo 4: Audite o banco de dados e os usuários
Verifique a tabela wp_users por contas admin que você não criou e a wp_options por scripts injetados em campos como siteurl. Um backdoor avançado guarda o payload no banco, não em arquivo, e por isso a limpeza só de arquivos falha. Rode consultas SQL filtrando por base64 e por nonce ausente em requisições suspeitas. Remova usuários fantasmas e force logout global de todas as sessões ativas.
Passo 5: Inspecione mu-plugins, uploads e .htaccess
Abra wp-content/mu-plugins, wp-content/uploads e o .htaccess da raiz, os três esconderijos preferidos do invasor. Arquivos .php dentro de /uploads nunca deveriam existir: o diretório guarda imagens. Backdoor em uploads com servidor sem bloqueio de execução PHP gera reinfecção automática mesmo após limpar o tema. Bloqueie execução PHP nessa pasta via configuração do servidor, conforme recomenda a documentação do All in One Security.
Passo 6: Remova, troque chaves e valide
Apague o código confirmado, troque todas as senhas, regenere as chaves de autenticação do wp-config.php e revalide com uma segunda varredura. Credencial de admin vazada sem 2FA recria o backdoor minutos após a remoção, então ative proteção do wp-config e dois fatores no mesmo dia. Rode o Sucuri SiteCheck externo para confirmar que o Google não lista mais o domínio como inseguro.
Ferramentas reais para encontrar backdoor no WordPress
Quatro ferramentas cobrem a maior parte dos casos de detecção, cada uma com uma função distinta e complementar. Para encontrar backdoor no WordPress sem depender de um único fornecedor, combine varredura interna de arquivos, scanner externo e base de CVEs num mesmo fluxo de trabalho objetivo.
O All in One Security faz varredura de integridade de arquivos; o Wordfence compara assinaturas conhecidas; o Sucuri SiteCheck audita pelo lado de fora; o WPScan cruza a versão dos seus plugins com vulnerabilidades catalogadas. Nenhuma delas substitui a auditoria manual de funções ofuscadas, mas juntas reduzem o tempo de investigação de horas para minutos.
Você não precisa de plugin pago para começar. O FULL Scan roda um diagnóstico instantâneo sem instalação, cruzando o seu site com a base global de CVEs oficiais. Para histórico completo, consulte o repositório de vulnerabilidades com mais de 12 mil registros. Quem prefere automatizar a defesa pode ver o passo a passo de como configurar o Wordfence para prevenção de malware.
Cves reais: Como uma vulnerabilidade vira backdoor
A maioria dos backdoors entra por uma vulnerabilidade conhecida e não corrigida, não por força bruta no login. O exemplo mais didático é a CVE-2020-35489 (CVSS 10.0, crítica) no Contact Form 7 anterior à versão 5.3.2: ela permitia upload arbitrário de arquivo.
Na prática, o invasor subia um shell PHP direto para o servidor, e esse é o vetor clássico que termina em backdoor. Por isso, encontrar backdoor no WordPress começa por mapear qual CVE abriu a brecha. Já a CVE-2018-20979 (CVSS 9.8) no mesmo plugin expunha caminho de arquivo, abrindo a fase de reconhecimento.
Vale a distinção técnica: essas duas CVEs já foram corrigidas há anos. Pelo perfil público do WPVulnerability, o Contact Form 7 hoje está seguro, sem falhas críticas sem patch. O risco real não é a CVE antiga, é o site que nunca atualizou. Como a FULL atribui IDs CVE oficiais na condição de CNA, a leitura aqui é de quem cataloga a falha, não de quem só a comenta. Manter plugins atualizados fecha o vetor antes do backdoor.
Por que o backdoor volta e como impedir a reinfecção
A reinfecção acontece em boa parte dos casos limpos só pela metade, porque o backdoor deixa réplicas espalhadas. Uma porta dos fundos raramente é um arquivo único: ela planta cópias em /uploads, no banco e às vezes em 1 cron job agendado que recria tudo.
Se você remove uma cópia e ignora as outras, em minutos o site recria o admin malicioso. Por isso, encontrar backdoor no WordPress não termina na exclusão: termina no fechamento do vetor de entrada e na troca de toda credencial. Quem trata encontrar backdoor no WordPress como evento único, e não como rotina, costuma repetir a limpeza poucas semanas depois.
O caminho durável combina três camadas: atualização imediata de tudo, dois fatores no login e hardening do servidor. Ative autenticação de dois fatores no WordPress para barrar a recriação de contas e siga o roteiro de hardening de segurança. Se o estrago já foi grande, o guia de como limpar e recuperar um site hackeado cobre a restauração completa sem perder SEO.
A camada FULL: Defesa contínua por r$85 o site
Encontrar backdoor no WordPress uma vez é trabalho; impedir o próximo é estratégia de defesa. O plano PRO da FULL custa R$849,90 por ano e inclui o All in One Security e mais 16 plugins premium, o que dá cerca de R$85 por site quando você gerencia uma carteira de 10 sites.
Em vez de comprar licença avulsa de cada plugin de segurança, você ativa o bundle inteiro em 1 clique. A gente vê no suporte que quem centraliza a defesa reinfecta muito menos. Veja os planos da FULL e compare com o custo de uma única limpeza emergencial.
Monitoramento contínuo: Como detectar o backdoor antes da reinfecção
Encontrar backdoor no WordPress uma vez resolve o incidente; monitorar de forma contínua é o que impede a próxima porta dos fundos de passar despercebida. A detecção precoce depende de três sinais que você deve vigiar todo dia: alteração inesperada de arquivo do core, criação de usuário admin fora do seu controle e requisição POST estranha nos logs de acesso do servidor.
Na prática, a varredura de integridade de arquivos é o alarme mais confiável. Ela compara o hash de cada arquivo com o original e dispara assim que uma linha muda em wp-admin, wp-includes ou no tema ativo. Combinada ao monitoramento de novas contas em wp_users, ela pega o backdoor no momento em que ele tenta se replicar, não semanas depois, quando o spam já apareceu no Google.
O log de acesso fecha o ciclo. Uma porta dos fundos quase sempre é acionada por uma URL específica, então filtrar o log por requisições a arquivos .php em /uploads ou por padrões base64 na query string revela o ponto exato de entrada. Agende uma varredura semanal, ative alerta por e-mail e trate cada alerta como uma auditoria curta: confirme o arquivo, valide o contexto e só então decida remover. Para consolidar a rotina, o FULL Academy reúne os guias de segurança num só lugar.
Perguntas frequentes sobre encontrar backdoor no WordPress
Por que o backdoor volta mesmo depois de eu apagar o arquivo?
O backdoor volta porque quase nunca é um arquivo único. Uma porta dos fundos planta réplicas em wp-content/uploads, no banco de dados e às vezes em um cron job agendado. Apagar uma cópia e ignorar as outras deixa o site recriar o admin malicioso em minutos. A remoção só é definitiva quando você fecha o vetor de entrada, troca todas as senhas e regenera as chaves do wp-config.php.
É possível encontrar backdoor no WordPress sem plugin pago?
Sim, é possível encontrar backdoor no WordPress sem plugin pago. O FULL Scan roda um diagnóstico externo gratuito, e o Sucuri SiteCheck audita o site de fora sem instalação. Via SSH, o comando grep localiza funções como eval() e base64_decode() de graça. O plugin pago acelera e automatiza a varredura agendada, mas a auditoria manual de arquivos e banco cobre os casos mais comuns sem custo.
Qual a diferença entre malware e backdoor no WordPress?
Malware é qualquer código malicioso, e backdoor é um tipo específico dele: o acesso oculto que devolve o controle ao invasor. É por isso que encontrar backdoor no WordPress exige mais que um antivírus simples. O malware visível redireciona ou injeta spam e quer ser notado para gerar tráfego. O backdoor faz o oposto: fica silencioso para garantir reentrada mesmo após você trocar a senha. Por isso, remover o malware visível sem caçar o backdoor costuma resultar em reinfecção em poucos dias.
Quanto tempo leva para limpar um backdoor de um site WordPress?
Encontrar backdoor no WordPress e limpá-lo por completo leva de 1 a 4 horas em um site médio, segundo o padrão de tickets de invasão da FULL. O tempo depende do número de plugins e de quantas réplicas o backdoor plantou. Sites com mais de 30 plugins e backdoor em mu-plugins levam mais, porque exigem diff arquivo a arquivo. A fase de validação, com segunda varredura e troca de chaves, costuma somar mais 30 minutos.
O que é a função eval() e por que ela indica backdoor?
A função eval() executa uma string como se fosse código PHP, e é por isso que indica backdoor quando aparece com base64_decode(). Essa dupla decodifica e roda um payload escondido sem aparecer no log de acesso, a assinatura mais comum de porta dos fundos. Nem todo eval() é malicioso: alguns plugins legítimos a usam de forma controlada. Por isso, confirme o contexto antes de apagar, para não quebrar uma função válida.
Próximos passos para blindar seu WordPress
Encontrar backdoor no WordPress é só o primeiro movimento de uma rotina de segurança contínua. O backdoor de hoje entrou por uma falha que já tinha patch ontem, então o hábito que mais protege é atualizar tudo, ativar dois fatores e manter uma varredura agendada rodando. Trate cada limpeza como uma auditoria: documente o ponto de entrada, feche o vetor e revalide por fora. Quem transforma resposta a incidente em prevenção contínua para de viver o mesmo susto a cada três meses, e devolve o servidor à operação normal com confiança.
















