Neste artigo, discutiremos os tipos mais comuns de invasões no WordPress, como identificá-las e os diferentes métodos para corrigi-las. Se você encontrar esse tipo de problema, recomendamos fortemente que entre em contato com um desenvolvedor web profissional para obter assistência adicional. Para mais orientações sobre como melhorar a segurança da sua conta de hospedagem, consulte este guia.
IMPORTANTE: Antes de fazer qualquer alteração, crie um backup completo do seu site.
ATENÇÃO: Para reduzir o risco de futuras invasões ao WordPress, faça varreduras regulares na sua conta de hospedagem com uma ferramenta antivírus, remova arquivos maliciosos ou suspeitos e mantenha todos os plugins e temas do seu site atualizados para as versões mais recentes.
Embora vários problemas diferentes possam levar ao desaparecimento ou alteração de arquivos padrão, a causa mais comum é a injeção de malware na sua instalação do WordPress. Felizmente, as ferramentas antivírus em nossos servidores Web e de Hospedagem podem detectar e colocar automaticamente em quarentena arquivos comprometidos.
Se os arquivos principais do WordPress forem infectados, você pode encontrar sintomas como:
Uma página em branco;
Um erro 500 Internal Server Error;
Um “Este site está enfrentando problemas técnicos” (erro introduzido no WordPress 5.2.2);
Ou outros erros semelhantes.
Para corrigir esse problema, basta seguir os passos abaixo.
Para identificar o que causou o problema no seu site, revise o arquivo error_log. Esse arquivo registra todos os erros críticos encontrados pelo seu site.
Você pode localizá-lo na sua conta cPanel > menu “Gerenciador de Arquivos” > diretório raiz da sua instalação do WordPress.
Depois de acessar a pasta raiz do domínio, procure pelo arquivo error_log. Se ele existir, siga estes passos:
Clique com o botão direito no arquivo e selecione Visualizar:

Dentro do log, você pode ver um erro como: “No such file or directory in…”, seguido pelo caminho do arquivo ausente. Isso indica que um arquivo necessário está ausente e está impedindo o funcionamento correto do site.
Por exemplo:/home/cPuser/public_html/wp-settings.php

Para restaurar o arquivo ausente, role até a seção "Como substituir os arquivos ausentes" deste guia.
Se o arquivo error_log não estiver disponível no diretório raiz do seu site, você pode ativar a opção display_errors do PHP na sua conta cPanel. Essa configuração permite que mensagens de erro apareçam diretamente no seu site, facilitando a identificação do problema.
Importante: Por motivos de segurança, certifique-se de desativar o display_errors assim que terminar o diagnóstico.
Você pode ativar a opção PHP das seguintes maneiras:
Via php.ini
Além do menu “Ajustes de PHP” do cPanel, você também pode ajustar certas configurações de um site diretamente através de um arquivo php.ini adicionando/editando as linhas correspondentes nele.
Para ativar a opção display_errors, você precisará adicionar a seguinte linha ao arquivo: display_errors=1
Você pode criar um novo arquivo php.ini na pasta raiz do site e adicionar a linha lá ou modificar o arquivo gerado pelo sistema seguindo os passos abaixo.
Acesse sua conta cPanel e vá ao menu “Gerenciador de Arquivos”.
Certifique-se de que a opção “Mostrar Arquivos Ocultos (dotfiles)” está ativada nas configurações:

Navegue até o seguinte diretório: /home/cPanel_user/.system-php/ini

Selecione a versão do PHP atribuída ao seu domínio e depois selecione o diretório do domínio. Por exemplo, o caminho completo pode ser:
/home/cPanel_user/.system-php/ini/7.0/testwebsite.com
Clique com o botão direito no arquivo php.ini e selecione Editar.
Adicione a seguinte linha ao arquivo: display_errors=1
Via .htaccess
Para ativar a opção display_errors do PHP via arquivo .htaccess, você precisará editar o arquivo dentro do diretório raiz do site no “Gerenciador de Arquivos” e adicionar a seguinte linha:php_value display_errors 1
Os passos detalhados para localizar o arquivo .htaccess podem ser encontrados neste artigo.
Após fazer suas alterações, clique em Salvar.
O WordPress utiliza uma estrutura de arquivos simples e organizada, o que torna relativamente fácil restaurar arquivos ausentes ou corrompidos. Recomenda-se fortemente substituir os arquivos principais padrão, pois isso garante que quaisquer arquivos comprometidos por malware sejam totalmente restaurados. No entanto, prossiga com cautela: substituir certos arquivos ou pastas pode resultar em perda de dados se não for feito corretamente.
Siga os passos abaixo para substituir arquivos ausentes do WordPress:
Acesse seu cPanel e vá até Softaculous Apps Installer.
Crie uma nova instalação do WordPress em um subdiretório temporário. Para isso, clique no ícone WordPress e depois selecione Instalar:

Você será redirecionado para a página de configurações da instalação. Lá, selecione o nome do domínio em questão no menu suspenso e insira o nome de uma subpasta no campo No Diretório.
Neste exemplo, usamos a subpasta ” fix” para a instalação do WordPress:

NOTA: Substituir todos os arquivos padrão atualizará sua instalação existente para a versão usada na instalação temporária “fix”, e misturar arquivos de versões diferentes pode causar conflitos no sistema e prejudicar a funcionalidade do site.
Se for importante manter a versão atual do WordPress ou se você planeja substituir apenas arquivos específicos, verifique a versão do seu site dentro do arquivo /wp-includes/version.php e certifique-se de que a nova instalação utilize a mesma versão do WordPress:

Você pode escolher a versão do WordPress para a nova instalação diretamente na janela de instalação:

Depois que todas as configurações estiverem feitas, clique em Instalação Rápida ou role até o final da página de instalação e clique em Instalar.
Após a conclusão da nova instalação do WordPress, os arquivos aparecerão no “Gerenciador de Arquivos” > diretório raiz do seu domínio. Abra a pasta dando um duplo clique nela:

Para substituir um arquivo ausente específico (por exemplo, wp-settings.php), localize esse arquivo dentro do diretório da nova instalação.
Depois disso, mova o arquivo para o diretório raiz atual do seu site clicando com o botão direito no arquivo > clique em Mover > insira o caminho para a pasta raiz do seu site > clique em Mover arquivo(s):

Depois de concluído, o arquivo ausente foi restaurado e seu site deve carregar corretamente.
No processo de substituição de todos os arquivos padrão do WordPress de um site, os passos 1-6 são os mesmos da seção “Como substituir arquivos ausentes do WordPress”.
Após esses passos serem concluídos e a nova instalação do WordPress criada, para substituir todos os arquivos padrão na pasta raiz do seu site, siga estes passos:
Abra a nova pasta raiz da instalação do WordPress:

Dentro da nova pasta de instalação, exclua os seguintes arquivos e pastas:

.htaccess
wp-config.php
wp-content
Esses arquivos e pastas contêm a configuração e o conteúdo do seu site e devem permanecer inalterados.
Em seguida, mova os arquivos restantes para o diretório raiz do seu site principal. Para isso, use o botão Selecionar Tudo > clique em Mover > insira o caminho para a pasta raiz do seu site > clique em Mover arquivo(s):

Seus arquivos principais do WordPress foram totalmente substituídos. Visite seu site para confirmar se tudo está carregando corretamente.
Se o site ainda exibir erros, verifique novamente o error_log. Na maioria dos casos, problemas adicionais são causados por arquivos de temas ou plugins ausentes.
Arquivos de tema ou plugin ausentes podem ocorrer por vários motivos, mas a causa mais comum é o malware que infecta e remove componentes essenciais da sua instalação do WordPress.
Se algum arquivo de plugin ou tema do WordPress estiver ausente, você pode encontrar:
Uma página em branco;
Um erro 500 Internal Server Error;
Um “Este site está enfrentando problemas técnicos” (erro introduzido no WordPress 5.2.2);
Uma página parcialmente carregada ou visualmente “quebrada”.
Para obter ajuda no diagnóstico do problema, consulte as seguintes seções deste artigo: Verifique o arquivo error_log do seu site e Ative a opção display_errors do PHP.
Você pode ver mensagens de erro semelhantes às seguintes no seu error_log ou diretamente no site:
PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...
Abaixo está um exemplo de erro causado por um arquivo de plugin corrompido ou ausente:

Para restaurar o arquivo ausente, basta reinstalar o tema ou plugin afetado.
NOTA: Arquivos functions.php ausentes em temas geralmente estão ligados ao malware wp-vcd.php, normalmente localizado no diretório /wp-includes. Antes de instalar um novo tema, remova wp-vcd.php se ele existir ou, se quiser garantir total segurança, substitua todos os arquivos padrão do WordPress conforme descrito anteriormente.
Em alguns casos, quando seu site é infectado por malware, ele pode começar a redirecionar visitantes para páginas suspeitas ou prejudiciais. Esse problema geralmente é causado por um plugin ou tema inseguro, que permite que invasores alterem URLs no banco de dados ou modifiquem arquivos do seu site.
NOTA: Nunca clique em nenhum dos links redirecionados. Fazer isso pode infectar seu computador pessoal com malware:

Para corrigir redirecionamentos maliciosos, siga os passos abaixo:
Localize um arquivo de configuração do banco de dados do seu site - wp-config.php no seu cPanel > Gerenciador de Arquivos > pasta raiz do site. Abra o arquivo e encontre o nome do banco de dados do site nele:

Depois, abra o banco de dados atribuído ao seu site no menu phpMyAdmin do seu cPanel clicando nele e navegue até a tabela wp_options (“wp_” é o prefixo padrão; o seu pode ser diferente):

Revise os valores dos campos siteurl e home e, caso veja URLs maliciosos ou suspeitos ali, substitua-os pelo nome real do seu domínio:

Faça uma varredura no restante do seu banco de dados em busca de URLs maliciosos semelhantes e substitua-os conforme necessário.
Substitua temporariamente seu .htaccess atual por uma versão padrão limpa. O ideal é renomear o arquivo existente (por exemplo, .htaccess_old) e criar um novo do zero.
Para renomear o arquivo, clique duas vezes nele > selecione Renomear na lista > insira um novo nome de arquivo > e pressione Renomear arquivo.
Depois disso, para criar um novo arquivo, clique em + Arquivo > nomeie como .htaccess > e selecione Criar Novo Arquivo.
Depois que o novo .htaccess for criado, edite-o clicando com o botão direito > selecione Editar na lista. Quando a janela de edição abrir, cole as regras padrão do WordPress a seguir no arquivo:# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress
Clique em Salvar Alterações.
Se o seu site continuar redirecionando, tente substituir todos os arquivos principais do WordPress.
Você também pode desativar temporariamente todos os plugins pelo painel do WordPress ou pelo banco de dados e tentar ativá-los um a um. Após ativar cada plugin, verifique o site para identificar qual deles está causando o redirecionamento malicioso.