Descobrir que seu site WordPress foi infectado por malware e uma experiencia estressante. O site pode estar redirecionando visitantes para paginas suspeitas, exibindo anuncios indesejados, enviando spam ou ate mesmo sendo usado para atacar outros sites.
A boa noticia: e possivel limpar o site e recupera-lo completamente. Neste guia, vamos percorrer todo o processo, desde a identificacao da infeccao ate a prevencao de futuros ataques.
Sinais de Que Seu WordPress Tem Malware
Antes de comecar a limpeza, e importante confirmar que o site esta realmente infectado. Estes sao os sinais mais comuns:
Redirecionamentos Estranhos
O sinal mais obvio. Quando voce ou seus visitantes acessam o site, sao redirecionados para paginas de apostas, farmacias, conteudo adulto ou outras paginas maliciosas. O redirecionamento pode acontecer:
- Em todas as paginas ou apenas em algumas
- Apenas para visitantes vindos do Google (nao afeta acessos diretos)
- Apenas em dispositivos moveis
- De forma intermitente (nem sempre acontece)
Conteudo Spam no Site
Paginas ou posts que voce nao criou aparecem no site, geralmente com conteudo em ingles sobre produtos farmaceuticos, cassinos online ou emprestimos. Isso e conhecido como "SEO spam" ou "pharma hack".
Avisos do Google
O Google pode exibir alertas como:
- "Este site pode prejudicar seu computador"
- "Site enganoso a frente"
- "Este site pode ter sido invadido"
Voce tambem pode receber notificacoes no Google Search Console sobre problemas de seguranca.
Site Extremamente Lento
Malware consome recursos do servidor. Se o site ficou lento de repente sem motivo aparente, pode ser que um script malicioso esteja rodando em segundo plano, usando CPU e memoria para enviar spam, minerar criptomoedas ou realizar ataques.
Arquivos Desconhecidos
Arquivos com nomes estranhos aparecem no servidor, especialmente nas pastas:
- wp-content/uploads/
- wp-includes/
- Raiz do site
Exemplos de nomes suspeitos: wp-tmp.php , wp-feed.php , class.api.php , db_session.php .
Usuarios Administradores Desconhecidos
Contas de administrador que voce nao criou aparecem no painel. Hackers criam usuarios administradores para manter acesso ao site mesmo apos a limpeza.
Consumo Anormal de Recursos
A hospedagem avisa que o site esta consumindo mais recursos que o normal, ou suspende a conta por uso excessivo.
Como o Malware Entra no WordPress?
Entender como a infeccao aconteceu ajuda a prevenir futuros ataques:
Plugins e Temas Desatualizados
Esta e a causa numero um de infeccoes. Vulnerabilidades conhecidas em plugins e temas desatualizados sao exploradas por bots automatizados que varrem a internet procurando sites vulneraveis.
Plugins e Temas Piratas (Nulled)
Temas e plugins premium "gratuitos" baixados de sites nao oficiais quase sempre contem backdoors e malware embutido. Nunca use software pirata no seu site.
Senhas Fracas
Senhas como "admin123", "senha123" ou o nome do site sao facilmente descobertas por ataques de forca bruta. Isso vale para o painel do WordPress, FTP, banco de dados e painel da hospedagem.
Hospedagem Comprometida
Em hospedagens compartilhadas, se outro site no mesmo servidor for comprometido, o malware pode se espalhar para os demais sites. Isso acontece quando o provedor nao isola adequadamente as contas.
Permissoes de Arquivo Incorretas
Permissoes muito abertas (como 777) permitem que qualquer processo no servidor modifique seus arquivos.
Ferramentas de Escaneamento
Antes de comecar a limpeza manual, use ferramentas automatizadas para identificar os arquivos infectados.
Wordfence (Plugin WordPress)
O Wordfence e o scanner de malware mais completo para WordPress:
- Instale e ative o plugin Wordfence Security
- Acesse Wordfence > Scan
- Clique em Start New Scan
- Aguarde a conclusao (pode levar varios minutos em sites grandes)
- Revise os resultados, prestando atencao em:
- Arquivos do core modificados
- Arquivos desconhecidos na pasta do WordPress
- Codigo malicioso detectado em temas e plugins
- URLs maliciosas no banco de dados
O Wordfence compara seus arquivos com os originais do WordPress.org e identifica qualquer modificacao.
Sucuri SiteCheck (Online)
Para uma verificacao rapida sem instalar nada:
- Acesse sitecheck.sucuri.net
- Digite a URL do seu site
- O Sucuri analisa o site externamente e identifica:
- Malware visivel no front-end
- Blacklisting (Google, Norton, McAfee, etc.)
- Erros no site
- Software desatualizado
Limitacao : o Sucuri SiteCheck analisa apenas o que e visivel externamente. Malware escondido em arquivos internos pode nao ser detectado.
MalCare (Plugin WordPress)
O MalCare e outra opcao que escaneia o site em seus proprios servidores, reduzindo o impacto na performance:
- Instale o plugin MalCare Security
- Conecte ao servico (requer cadastro gratuito)
- Execute o escaneamento
- Revise os arquivos identificados como infectados
A limpeza automatica requer a versao paga, mas o escaneamento gratuito ajuda a identificar o problema.
Remocao Manual de Malware: Passo a Passo
Se voce prefere fazer a limpeza manualmente (ou os plugins nao resolveram), siga este processo:
Passo 1: Fazer Backup Antes de Tudo
Antes de qualquer alteracao, faca um backup completo do site no estado atual:
# Via SSH mysqldump -u usuario -p banco_wordpress > backup-infectado.sql tar -czf backup-infectado.tar.gz /home/usuario/public_html/
Sim, e um backup do site infectado. Ele serve como ponto de restauracao caso algo de errado durante a limpeza.
Passo 2: Identificar Arquivos Infectados
Procure por padroes comuns de malware nos arquivos:
# Buscar funcoes PHP comumente usadas por malware
grep -r "eval(base64_decode" /home/usuario/public_html/ --include="*.php"
grep -r "eval(gzinflate" /home/usuario/public_html/ --include="*.php"
grep -r "eval(str_rot13" /home/usuario/public_html/ --include="*.php"
grep -r "eval(gzuncompress" /home/usuario/public_html/ --include="*.php"
# Buscar funcoes de ofuscacao
grep -r "preg_replace.*\/e" /home/usuario/public_html/ --include="*.php"
grep -r "assert(" /home/usuario/public_html/ --include="*.php"
grep -r "str_replace.*chr(" /home/usuario/public_html/ --include="*.php"
# Buscar shells e backdoors
grep -r "FilesMan\|WSO\|c99\|r57\|webshell" /home/usuario/public_html/ --include="*.php"
# Buscar arquivos modificados recentemente (ultimos 7 dias)
find /home/usuario/public_html -name "*.php" -mtime -7 -type f
Passo 3: Substituir os Arquivos do Core
A forma mais segura de limpar os arquivos do WordPress core e substitui-los por copias originais:
# Baixar uma copia limpa do WordPress (mesma versao) wp core download --version=6.4 --force --skip-content # Isso substitui todos os arquivos do core sem tocar na pasta wp-content
Se voce nao tem WP-CLI, baixe o WordPress do site oficial e substitua manualmente todas as pastas, exceto wp-content :
- wp-admin/ (substituir inteira)
- wp-includes/ (substituir inteira)
- Arquivos na raiz (exceto wp-config.php e .htaccess )
Passo 4: Limpar a Pasta wp-content
Esta e a parte mais delicada, pois wp-content contem seus temas, plugins e uploads.
Plugins:
- Anote todos os plugins ativos e suas versoes
- Delete a pasta wp-content/plugins/ inteira
- Reinstale cada plugin a partir do WordPress.org ou do site do desenvolvedor
- Nao reative todos de uma vez. Ative um por um e teste
Temas:
- Delete todos os temas que voce nao usa
- Para o tema ativo, baixe uma copia limpa do desenvolvedor
- Compare os arquivos (use diff ou um editor com comparacao) para identificar modificacoes
- Se voce fez customizacoes no tema, revise cada arquivo manualmente
Uploads:
A pasta wp-content/uploads/ contem imagens e arquivos de midia. Malware costuma se esconder aqui como arquivos PHP:
# Encontrar arquivos PHP na pasta de uploads (nao deveria ter nenhum) find /home/usuario/public_html/wp-content/uploads -name "*.php" -type f # Remover arquivos PHP encontrados (revise antes de deletar) find /home/usuario/public_html/wp-content/uploads -name "*.php" -type f -delete
Atencao : verifique cada arquivo antes de deletar. Alguns plugins legitimos colocam arquivos PHP na pasta de uploads (como plugins de cache), mas isso e raro.
Passo 5: Limpar o Banco de Dados
Malware tambem pode se esconder no banco de dados, especialmente em:
- Posts e paginas (codigo JavaScript malicioso injetado no conteudo)
- Tabela wp_options (URLs de redirecionamento, scripts injetados)
- Usuarios (contas de administrador criadas pelo hacker)
-- Verificar conteudo suspeito em posts
SELECT ID, post_title FROM wp_posts
WHERE post_content LIKE '%<script%'
OR post_content LIKE '%eval(%'
OR post_content LIKE '%base64%';
-- Verificar opcoes suspeitas
SELECT option_name, option_value FROM wp_options
WHERE option_value LIKE '%<script%'
OR option_value LIKE '%eval(%';
-- Verificar usuarios administradores
SELECT user_login, user_email, user_registered FROM wp_users
WHERE ID IN (
SELECT user_id FROM wp_usermeta
WHERE meta_key = 'wp_capabilities'
AND meta_value LIKE '%administrator%'
);
Passo 6: Verificar e Remover Usuarios Suspeitos
- Acesse Usuarios > Todos os Usuarios no painel
- Filtre por "Administrador"
- Delete qualquer usuario que voce nao reconheca
- Verifique tambem usuarios com outros perfis, pois hackers podem criar editores ou autores
Passo 7: Remover Backdoors
Backdoors sao trechos de codigo que permitem ao hacker recuperar o acesso ao site mesmo apos a limpeza. Locais comuns:
- Arquivos wp-config.php (linhas adicionadas no final)
- Arquivo functions.php do tema (codigo adicionado)
- Arquivo .htaccess (regras de redirecionamento)
- Arquivos com nomes similares aos do WordPress (ex: wp-page.php , class-wp.php )
- Pasta wp-content/mu-plugins/ (plugins must-use, carregados automaticamente)
Verifique cada um desses locais e remova qualquer codigo que nao pertenca ali.
# Verificar mu-plugins (plugins carregados automaticamente) ls -la /home/usuario/public_html/wp-content/mu-plugins/ # Verificar se ha tarefas cron maliciosas wp cron event list
Checklist Pos-Limpeza
Apos remover o malware, siga esta lista para garantir que o site esta seguro:
Alterar Todas as Senhas
- [ ] Senha do painel WordPress (todos os usuarios)
- [ ] Senha do banco de dados (e atualizar no wp-config.php)
- [ ] Senha do FTP/SFTP
- [ ] Senha do painel da hospedagem (cPanel, Plesk)
- [ ] Senha do e-mail associado ao site
Atualizar Tudo
- [ ] WordPress para a versao mais recente
- [ ] Todos os plugins para as versoes mais recentes
- [ ] Tema ativo e temas inativos
- [ ] Versao do PHP no servidor (recomendado: 8.1 ou superior)
Regenerar Chaves de Seguranca
As chaves de seguranca no wp-config.php (AUTH KEY, SECURE AUTH _ KEY, etc.) devem ser regeneradas. Isso invalida todos os cookies de sessao, forcando o logout de todos os usuarios (inclusive o hacker, caso tenha uma sessao ativa).
Gere novas chaves em: api.wordpress.org/secret-key/1.1/salt/
Substitua as chaves no seu wp-config.php :
define('AUTH_KEY', 'coloque-um-valor-unico-aqui');
define('SECURE_AUTH_KEY', 'coloque-um-valor-unico-aqui');
define('LOGGED_IN_KEY', 'coloque-um-valor-unico-aqui');
define('NONCE_KEY', 'coloque-um-valor-unico-aqui');
define('AUTH_SALT', 'coloque-um-valor-unico-aqui');
define('SECURE_AUTH_SALT', 'coloque-um-valor-unico-aqui');
define('LOGGED_IN_SALT', 'coloque-um-valor-unico-aqui');
define('NONCE_SALT', 'coloque-um-valor-unico-aqui');
Fortalecer a Seguranca
- [ ] Instalar e configurar um plugin de seguranca (Wordfence ou Sucuri)
- [ ] Ativar autenticacao de dois fatores (2FA) para todos os administradores
- [ ] Limitar tentativas de login
- [ ] Desativar edição de arquivos pelo painel:
// Adicionar ao wp-config.php
define('DISALLOW_FILE_EDIT', true);
- [ ] Proteger o wp-config.php com permissoes 640
- [ ] Adicionar cabecalhos de seguranca no .htaccess:
# Cabecalhos de seguranca
<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
Solicitar Revisao ao Google
Se o Google marcou seu site como perigoso:
- Acesse o Google Search Console
- Va em Seguranca e acoes manuais > Problemas de seguranca
- Revise os problemas listados
- Apos a limpeza, clique em Solicitar revisao
- O Google verificara o site em 1 a 3 dias e removera o aviso se estiver limpo
Configurar Backup Automatico
Se voce nao tinha backup antes da infeccao, configure agora:
- Use o UpdraftPlus para backups automaticos
- Configure backups diarios do banco de dados e semanais dos arquivos
- Armazene os backups em local externo (Google Drive, Dropbox, Amazon S3)
- Teste a restauracao periodicamente
Prevencao: Como Evitar Futuras Infeccoes
Mantenha tudo atualizado
Ative atualizacoes automaticas para o WordPress core e plugins de seguranca. Para os demais plugins, atualize manualmente pelo menos uma vez por semana.
Use senhas fortes
Todas as senhas devem ter no minimo 16 caracteres, com letras maiusculas, minusculas, numeros e caracteres especiais. Use um gerenciador de senhas como Bitwarden ou 1Password.
Remova o que nao usa
Plugins e temas inativos ainda podem ser explorados. Se voce nao esta usando, delete.
Escolha uma hospedagem segura
Provedores de qualidade oferecem isolamento entre contas, firewall no nivel do servidor, escaneamento de malware e backups automaticos.
Monitore o site
Configure alertas para ser notificado quando algo mudar:
- Wordfence envia alertas por e-mail sobre mudancas em arquivos
- Google Search Console notifica sobre problemas de seguranca
- Servicos como UptimeRobot avisam quando o site fica fora do ar
Leia Tambem
Seu WordPress Foi Hackeado? A HOSTWP Resolve.
Limpar malware do WordPress exige experiencia e atencao a detalhes. Um arquivo malicioso esquecido, e o site e reinfectado em dias.
Na HOSTWP , nosso time de seguranca WordPress faz a limpeza completa do site, remove backdoors, fortalece a seguranca e monitora para evitar reinfeccoes. Do servidor ao site, a gente cuida de tudo.
Fale com a HOSTWP e recupere seu site com seguranca.