SENTINELA WP WORDPRESS SECURITY Início
Voltar para o blog
4 min de leitura

Como remover malware do WordPress: passo a passo completo

Guia prático para limpar um WordPress hackeado: backup, senhas, núcleo, plugins, uploads, banco de dados, backdoors e hardening, com comandos do WP-CLI.

  • guia
  • malware
  • resposta-a-incidente

Este é o roteiro que eu sigo, de forma simplificada, para limpar um WordPress infectado. Ele serve para quem tem acesso por SSH e o WP-CLI e quer entender o processo. Sem SSH, os mesmos passos podem ser feitos por FTP e pelo painel, só que com mais trabalho manual.

Antes de começar: mexa com cuidado. Cada caso é diferente, e apagar a coisa errada pode derrubar o site. Se for uma loja virtual ou se você não se sente seguro, considere pedir ajuda.

1. Preserve o estado atual

Faça um backup completo dos arquivos e do banco de dados como estão. Ele serve de evidência e de rede de segurança.

wp db export backup-infectado.sql
tar -czf backup-infectado-arquivos.tar.gz .

Se o site está causando dano (redirecionando visitantes, enviando spam), coloque-o em modo de manutenção ou bloqueie o acesso enquanto trabalha.

2. Troque todas as credenciais

O invasor pode ter suas senhas. Troque, a partir de um computador limpo:

  • senha da hospedagem e do FTP/SFTP;
  • senha do banco de dados (e atualize o wp-config.php);
  • senhas de todos os usuários do WordPress, principalmente administradores;
  • as chaves de segurança do WordPress, que também encerram todas as sessões ativas:
wp config shuffle-salts

3. Revise usuários administradores

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

Remova contas que você não reconhece. Cuidado: confira antes se não é a conta de alguém da sua equipe ou de uma agência.

4. Verifique e reinstale o núcleo do WordPress

wp core verify-checksums
wp core download --force --skip-content

O segundo comando substitui os arquivos do núcleo por cópias limpas, sem tocar em wp-content. Depois, olhe a raiz do site. Arquivos .php que não fazem parte do WordPress (exceto o wp-config.php e arquivos seus que você reconhece) são suspeitos.

5. Plugins e temas

wp plugin list
wp plugin verify-checksums --all
  • Remova plugins que você não usa, está desatualizado há muito tempo ou não reconhece.
  • Reinstale os restantes a partir de fontes oficiais: wp plugin install nome-do-plugin --force.
  • Plugins premium: baixe de novo no site do fornecedor.
  • Plugins piratas (“nulled”) devem sair. Substitua pelo original ou por uma alternativa legítima.
  • Faça o mesmo com temas e confira o functions.php do tema ativo.

6. Procure o que não deveria existir

# PHP dentro de uploads
find wp-content/uploads -type f -name "*.php"

# Plugins "must-use", que carregam automaticamente
ls -la wp-content/mu-plugins

# Arquivos PHP modificados recentemente
find . -type f -name "*.php" -mtime -14

# Diretiva usada por malware para rodar antes de qualquer página
grep -rn "auto_prepend_file" . --include=".user.ini" --include=".htaccess" --include="php.ini"

Nem tudo que aparece é malicioso (atualizações recentes mudam arquivos). Analise cada achado.

7. Revise .htaccess e wp-config.php

Procure regras de redirecionamento que você não criou, código ofuscado e include/require de arquivos estranhos. O guia de redirecionamentos mostra um .htaccess padrão para comparar.

8. Banco de dados e tarefas agendadas

# Opções e posts com script embutido
wp db query "SELECT option_id, option_name FROM $(wp db prefix)options WHERE option_value LIKE '%<script%';"
wp db query "SELECT ID, post_title FROM $(wp db prefix)posts WHERE post_content LIKE '%<script%';"

# Tarefas agendadas (cron) do WordPress
wp cron event list

Tarefas agendadas desconhecidas são um meio comum de reinfectar o site depois da limpeza.

9. Descubra e feche a brecha

Essa é a etapa que mais pessoas pulam, e a que decide se o site será invadido de novo. Pergunte:

  • Havia algum plugin ou tema desatualizado com vulnerabilidade conhecida?
  • Havia plugin pirata?
  • A senha de algum usuário era fraca ou foi reutilizada?
  • Os logs de acesso da hospedagem mostram requisições suspeitas a algum arquivo ou plugin?

Atualize ou substitua o componente vulnerável. Se não achar a brecha, assuma que ela continua aberta.

10. Hardening e monitoramento

  • Desative a edição de arquivos pelo painel adicionando ao wp-config.php:
define( 'DISALLOW_FILE_EDIT', true );
  • Ative autenticação em dois fatores para administradores.
  • Limite tentativas de login.
  • Mantenha WordPress, plugins e temas atualizados (com backup antes).
  • Tenha backup automático e fora do servidor, e teste a restauração.
  • Use permissões corretas (em geral, diretórios 755 e arquivos 644, e o wp-config.php mais restrito).

11. Valide

  • Teste o site como visitante comum, no celular, chegando pelo Google.
  • Confira o site:seudominio.com.br e o Search Console.
  • Acompanhe por alguns dias: novos arquivos PHP, novos usuários, tarefas agendadas.

Se o site tinha aviso de segurança, veja como pedir a revisão ao Google.

Quando não vale fazer sozinho

  • Há mais de um site na mesma hospedagem (a infecção pode ter passado entre eles).
  • É uma loja virtual, com dados de clientes e pagamentos.
  • O malware volta mesmo depois de você limpar.
  • Você não tem acesso a SSH ou aos logs.

Nesses casos, o custo de errar é maior que o custo de pedir ajuda. Veja também quanto custa limpar um site WordPress hackeado.


Seu site está assim agora? Me manda o link no WhatsApp e eu confirmo o problema, o escopo e o valor antes de começar. Quer entender o processo antes? Veja como funciona a limpeza de malware.

Precisa de ajuda?

Seu site está com esses sintomas?

Me manda o link no WhatsApp. Eu confirmo o problema, o escopo e o valor antes de começar.

WhatsApp