Backdoor sobrevivendo mesmo após excluir arquivos — onde ele se esconde

É comum que, após limpar malware em um site WordPress, o invasor volte em poucos dias — mesmo com plugins removidos e arquivos aparentemente restaurados. Isso acontece porque existe um backdoor sobrevivendo mesmo após excluir arquivos, mantendo acesso persistente ao servidor ou ao CMS. Esse backdoor é projetado exatamente para resistir a limpezas superficiais e reinstalar códigos maliciosos sempre que você tenta recuperar o ambiente.


Por que backdoors sobrevivem mesmo depois da limpeza

Eles não ficam onde você espera

A maioria das pessoas procura no /public_html, em temas ou plugins. Backdoors robustos raramente ficam apenas lá.

Persistência planejada

Hackers instalam acesso redundante de forma que excluir arquivos visíveis não elimina a porta de entrada.


Onde backdoors costumam se esconder

1) Fora do diretório público

  • /home/user/
  • /tmp/
  • /var/
  • Pastas com nomes parecidos com sistemas legítimos (/logs/, /cache/, /backup/)

2) Em arquivos do core do WordPress alterados

  • wp-config.php
  • wp-settings.php
  • wp-load.php
  • class-wp.php renomeado com payload

3) No banco de dados

  • Funções serializadas em wp_options
  • Hooks com eval() ou chamada remota injetada
  • Jobs agendados via wp_cron para reinfecção

4) Em cron jobs do sistema

  • crontab -e
  • /etc/cron.daily/, /cron.hourly/
  • Tarefas invisíveis no painel cPanel ou Plesk

5) Em plugins e temas “limpos” após reinfecção

O invasor reinstala o código malicioso por script, não por manual. Por isso a alteração reaparece minutos após “limpeza”.


Como identificar um backdoor persistente

  • Reinfeção após restauração ou varredura
  • Arquivos recriados automaticamente
  • Conexões externas no log mesmo sem tráfego
  • Scripts off-domain carregados (“callback servers”)
  • Jobs no crontab executando PHP remoto
  • Funções comprimidas com base64, gzinflate, str_rot13, hex2bin etc.

Ferramentas comuns de antivírus WordPress não detectam backdoors quando mascarados ou criptografados.


Erro mais comum: limpar o sintoma, deixar a origem

Remover arquivos infectados em /wp-content/ e ignorar:

  • cron jobs
  • banco de dados
  • SSH/API keys
  • painel do provedor
  • arquivos de sistema
    significa apenas adiar a reinfecção.

Estratégia correta de eliminação de backdoor persistente

  1. Auditar o ambiente completo (não só o WordPress)
  2. Listar cron jobs e remover execuções suspeitas
  3. Comparar integridade de core WordPress (substituição total)
  4. Buscar payload em banco e hooks automatizados
  5. Revogar todos os acessos (SSH, FTP, DB, painel)
  6. Trocar senhas após a limpeza, não antes
  7. Habilitar WAF e bloqueios de escrita ou isolamento

Backdoors sofisticados só são erradicados quando a fonte de persistência é removida — não apenas o código visível.