Como limpar um site ou blog WordPress hackeado

Publicados: 2021-02-16

Se o seu site WordPress foi invadido e você está atualmente no controle de danos, ou se você está se preparando para o pior, este artigo irá guiá-lo através do processo de limpeza de um site WordPress invadido. O processo é documentado em um formato passo a passo fácil de seguir para ajudá-lo a realizar o seguinte:

  • Recupere o controle do seu site WordPress
  • Identifique a provável fonte da infecção
  • Encontre a infecção e o código malicioso
  • Remova qualquer malware, backdoors e web shells
  • Remova seu domínio de qualquer lista de malware, como o banco de dados do Google Safe Browsing
  • Prevenir uma recorrência

Seu site WordPress hackeado foi realmente hackeado?

Site WordPress hackeado

Às vezes, fica bem claro quando um site WordPress foi invadido, por exemplo, se seu site foi desfigurado. Em outros casos, pode não ser tão claro. Antes de embarcar em um processo de limpeza do WordPress, confirme se seu site WordPress foi realmente invadido e não é um problema técnico não relacionado. Leia o artigo como verificar se meu WordPress foi invadido para determinar se seu site ou blog foi invadido ou não.

Recupere o controle

A recuperação do controle começa dependendo de quanto acesso você pode ter perdido como resultado de um ataque. Por exemplo, ao obter acesso a um servidor, um invasor pode alternar credenciais para impedir que usuários legítimos acessem o servidor ou talvez alterar a senha de administrador do WordPress para impedir que um administrador do WordPress faça login.

Embora isso dependa muito da sua configuração, seu provedor de hospedagem provavelmente poderá ajudar a recuperar o acesso a um ambiente de hospedagem compartilhada ou a um servidor virtual privado (VPS) executando seu site. Se você perdeu o acesso ao administrador do WordPress, siga o guia oficial do WordPress sobre como redefinir sua senha de administrador.

Fazendo um backup

Mesmo se você tiver uma solução de backup do WordPress, faça um backup do site atual do WordPress. Fazer um backup do WordPress neste estágio é muito importante por vários motivos, incluindo o seguinte.

  • Um backup permite analisar a infecção em um estágio posterior,
  • Alguns provedores de hospedagem podem recorrer à exclusão de sites invadidos como medida de precaução para evitar que ele espalhe malware ou spam - dependendo do seu provedor de hospedagem, isso pode acontecer sem aviso prévio,
  • Se você não tiver uma estratégia de backup atualmente em vigor, poderá recuperar parte do conteúdo do site desse backup antes que as coisas piorem.

Além disso, se você estiver executando o WordPress em um servidor virtual privado (VPS), considere tirar um instantâneo de toda a máquina virtual, se possível (lembre-se de que isso geralmente está associado a um custo extra). Ao tirar instantâneos, lembre-se de que, se você estiver usando algum volume externo para hospedar sua instalação do WordPress (por exemplo, armazenamento conectado à rede), também deverá fazer uma cópia de todos os volumes que armazenam a instalação principal do WordPress, wp-content , seu banco de dados MySQL , bem como qualquer acesso ao servidor web e logs de erros.

Restaurando de um backup

Se você tem uma estratégia de backup, agora é a hora de colocá-la em ação. Supondo que você tenha acesso a um backup recente, a restauração pode ser a maneira mais rápida de voltar a ficar online - não se engane, embora a restauração de um backup do seu site WordPress possa remover uma infecção e permitir que você fique operacional novamente, não resolva por que você foi hackeado em primeiro lugar.

Se o seu site WordPress foi invadido como resultado de uma vulnerabilidade explorada ou falha de segurança, é um próximo passo essencial tentar descobrir o que aconteceu (se possível).

E se eu não tiver um backup ou não conseguir restaurar meu backup com sucesso?

Se você não tiver um backup, poderá restaurar com sucesso, dependendo da gravidade da situação, convém colocar seu site WordPress no modo de manutenção para permitir que você trabalhe na restauração do site, informando aos visitantes que devem verificar novamente mais tarde. Enquanto isso, continue seguindo o restante deste guia. Ao colocar seu site em modo de manutenção, através do uso do wp_maintenance() 1 função, o WordPress retornará um código de status HTTP 503. Um status 503 indica ao Google e a outros rastreadores que algo deu errado na página e eles devem verificar novamente mais tarde.

Uma resposta HTTP 503 é importante para SEO, pois evitará danos aos seus rankings de pesquisa no caso de seu site ficar temporariamente inativo. Para mais informações sobre o código de status HTTP 503 e sua importância no SEO, confira o artigo do Yoast sobre o assunto.

Identifique como o WordPress foi hackeado

Depois que seu site estiver de volta, a próxima coisa na agenda é descobrir o máximo possível sobre o que aconteceu, ou seja, qual falha de segurança o invasor explorou para obter acesso à sua instalação do WordPress.

Verificando os logs de atividade, servidor web e logs do servidor FTP

Se você mantiver um log de atividades do WordPress, este pode ser o melhor lugar para começar sua análise. Veja se você consegue identificar algum comportamento suspeito. Procure eventos de usuários recém-criados ou alterações de senha do usuário. Verifique também se algum WordPress, plugins ou arquivos de tema foram modificados.

Você também deve dar uma olhada no servidor web, servidor FTP e arquivos de log do sistema operacional para comportamento incomum ou suspeito. Embora isso possa ser um processo complicado, você deve começar verificando se há tráfego estranho vindo de um único endereço IP. Você pode fazer isso usando uma variedade de scripts de shell utilitários e um forro. Para uma visualização em tempo real dos logs do seu servidor web, o GoAccess pode ser útil.

Plugins e temas do WordPress não usados ​​e desatualizados

Verifique a lista de plugins instalados, tanto no painel do WordPress quanto no diretório /wp-content/plugins/ . Todos os plugins do WordPress estão sendo usados? Estão todos atualizados? Verifique os temas e o diretório de temas /wp-content/themes/ também. Você deve ter apenas um tema instalado, aquele que você está usando. Se você estiver usando um tema filho, terá dois diretórios.

Código e instalações do WordPress não utilizados

Código restante e não utilizado é outro problema comum. Às vezes, desenvolvedores e administradores de sistema atualizam arquivos diretamente no servidor e fazem um backup do arquivo original com uma extensão como .old , .orig ou .bak . Os invasores frequentemente tiram proveito dessa prática ruim e as ferramentas para procurar esses arquivos de backup estão amplamente e prontamente disponíveis.

A maneira como isso funciona é por um invasor tentando acessar arquivos como index.php.old . Normalmente, os arquivos .php são configurados para serem executados pelo interpretador PHP, mas ao adicionar uma extensão .old (ou outra) ao final do arquivo faz com que o servidor web forneça o arquivo ao usuário. Ao simplesmente adivinhar o nome de um arquivo de backup, um invasor pode baixar o código-fonte que pode conter informações confidenciais ou fornecer dicas sobre o que explorar.

Um problema semelhante é reter instalações antigas do WordPress. Quando os administradores de sistema reconstroem seus sites, às vezes deixam cópias de instalações antigas do WordPress em um subdiretório /old/ . Essas instalações antigas do WordPress normalmente ainda seriam acessíveis pela Internet e, portanto, um alvo interessante para um invasor explorar vulnerabilidades conhecidas em versões antigas do WordPress junto com qualquer plug-in.

É aconselhável remover qualquer código não utilizado, instalações do WordPress, plugins do WordPress, temas do WordPress e quaisquer outros arquivos antigos ou não utilizados (lembre-se de que você sempre pode recorrer ao seu backup se precisar restaurar algo que excluiu acidentalmente). Seu site deve conter apenas os arquivos necessários. Qualquer outra coisa extra ou não utilizada deve ser tratada como uma superfície de ataque adicional.

Usuários e funções do WordPress

Verifique se todos os usuários do WordPress são usados. Existem novos suspeitos? Verifique se todas as funções estão intactas. Se você seguir as diretrizes de usuários e funções do WordPress, deverá ter apenas um usuário com uma função de administrador do WordPress.

Provedores de hospedagem compartilhada

Se o seu WordPress estiver sendo executado em um provedor de hospedagem compartilhada, a fonte do hack pode ser outro site que estava sendo executado no mesmo servidor que o seu. Nesse caso, o cenário mais provável seria que o invasor conseguisse aumentar seus privilégios. Então, como consequência, obtenha acesso a todo o servidor e, por sua vez, ao seu site WordPress. Se você suspeitar que tal ataque ocorreu, o melhor recurso seria entrar em contato imediatamente com seu provedor de hospedagem, após fazer o backup do seu site.

arquivos .htaccess

Arquivos .htaccess (arquivos de configuração do Apache HTTP Server em nível de diretório) também são um alvo comum para hackers. Eles são normalmente usados ​​para redirecionar os usuários para outros sites de spam, phishing ou outros sites maliciosos. Verifique todos os arquivos .htaccess em seu servidor, mesmo aqueles que não estão sendo usados ​​pelo WordPress. Alguns dos redirecionamentos podem ser difíceis de detectar.

Preste atenção especial à configuração que redireciona solicitações HTTP com base em strings específicas do User Agent – ​​os invasores podem ter como alvo dispositivos específicos (por exemplo, usuários móveis) ou até mesmo se envolver em SEO black hat configurando seu servidor da web para responder de maneira diferente aos rastreadores de mecanismos de pesquisa.

Se possível, considere adotar a configuração global em vez de depender de arquivos .htaccess no Apache HTTP Server. Os arquivos .htaccess não apenas degradam o desempenho, mas abrem seu site WordPress para uma variedade de vulnerabilidades de segurança se um invasor estiver em condições de ler, ou pior ainda, escrever o conteúdo desses arquivos. De acordo com a documentação do Apache HTTP Server 2 , o uso de arquivos .htaccess pode ser completamente desabilitado definindo a diretiva AllowOverride como none no arquivo httpd.conf principal.

Verificando outro ponto de entradas

Existem vários outros pontos de entradas em um servidor web. Certifique-se de verificar todos eles, como servidores FTP, SSH, servidor web etc.

Encontre a infecção do WordPress e o código malicioso

Antes de começar : Um hack do WordPress normalmente envolve a inserção de código em um tema, plugin ou arquivo principal do WordPress. Portanto, para prosseguir com uma limpeza, você deve se sentir confortável em modificar o código. Se não estiver, contrate profissionais de segurança do WordPress.

Depois de identificar o ponto de entrada dos hackers, normalmente é relativamente fácil encontrar a infecção. Embora apenas no caso de você ainda não ter encontrado a infecção, existem vários métodos que você pode usar para encontrar a infecção. Aqui estão alguns.

Verificando quais arquivos foram modificados nos últimos dias

Idealmente, você deve usar um plug-in de monitoramento de arquivos do WordPress que monitore os arquivos em sua instalação do WordPress em busca de alterações e o alerte imediatamente. Se você não tiver um plug-in de Monitoramento de Integridade de Arquivos (FIM), terá que procurar as alterações de arquivo manualmente.

Se você tiver acesso SSH ao seu servidor, verifique quais arquivos em seu site WordPress foram alterados recentemente. Normalmente, seria aconselhável começar a procurar alterações nos últimos cinco dias após a descoberta do hack, ampliando sua pesquisa conforme necessário. Para fazer isso, navegue até o diretório onde seu site WordPress está localizado e use o comando find.

find .mtime -5 –ls

O comando acima lista (-ls) todos os arquivos que foram modificados (.mtime) nos últimos cinco dias (-5). Se a lista for muito longa, use o menos pager para navegar e pesquisar a lista com mais facilidade.

find .mtime -5 –ls | less

Se você atualizou recentemente um plug-in ou tema, qualquer alteração de arquivo relacionada aparecerá nos resultados da pesquisa. Logs, arquivos de depuração também são atualizados com frequência, então eles também aparecerão em seus resultados. Como resultado, você pode ter que fazer uma filtragem extensiva dos resultados para encontrar alterações de arquivo de interesse. Observe que plugins especializados, como o plugin WordPress File Changes Monitor para WordPress, são projetados especificamente para eliminar esses falsos positivos automaticamente. O plug-in foi criado propositadamente para o WordPress e pode identificar uma alteração de arquivo de um núcleo do WordPress, atualizações de plug-in ou tema, instalação ou desinstalação.

Verificando todos os arquivos HTML

No WordPress existem muito poucos arquivos HTML e os hackers gostam de aproveitá-los. Pesquise em seu site todos os arquivos HTML e analise seu conteúdo. Certifique-se de que todos os arquivos HTML que você tem em seu site são legítimos e você sabe para que eles são usados.

Uma maneira fácil de listar todos os arquivos HTML em seu diretório WordPress (e subdiretórios) é usar o seguinte comando.

 
find . -type f -name '*.html' 

Procurando por texto de infecção

Se o seu site foi desfigurado ou algum texto está aparecendo no seu site como resultado da infecção, procure-o com a ferramenta grep. Por exemplo, se você viu o texto “hackeado por”, navegue até o diretório raiz do site e emita o seguinte comando.

grep –Ril "hacked by"

O comando acima retornará uma lista de arquivos que incluem o conteúdo “hackeado por”. Depois de ter a lista de arquivos infectados, você pode analisar o código e remover a infecção.

O que significam os interruptores grep?

  • -R indica grep para pesquisar recursivamente (pesquisa em toda a estrutura de diretórios, incluindo todos os subdiretórios e links simbólicos).
  • -i indica ao grep que a pesquisa não deve diferenciar maiúsculas de minúsculas (ou seja, ignorar a capitalização do termo de pesquisa). Isso é muito importante em ambientes Linux/Unix, pois, diferentemente do Windows, os sistemas de arquivos Linux diferenciam maiúsculas de minúsculas.
  • -l indica ao grep que ele deve retornar o nome do arquivo, em vez do conteúdo do arquivo. Quando seu site WordPress é invadido, este é outro código malicioso a ser procurado.

Além da óbvia string “hackeada por”, abaixo está uma lista de códigos e frases de texto que são normalmente usadas em sites WordPress hackeados. Você pode usar a ferramenta grep para procurar o seguinte:

  • base64_decode
  • is_admin
  • avaliação
  • gzuncompress
  • passar através
  • executivo
  • shell_exec
  • afirmar
  • str_rot13
  • sistema
  • phpinfo
  • chmod
  • mkdir
  • fopen
  • fperto
  • readfile

Uma maneira rápida de conseguir isso usando grep é através do seguinte comando grep que procura por arquivos recursivamente (segue quaisquer links simbólicos), procura as strings que correspondem à expressão regular PCRE especificada 3 e retorna a correspondência de texto, bem como o número da linha em que a correspondência ocorreu.

grep -RPn "(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\("

NOTA : Alguns desses códigos também podem ser usados ​​em códigos legítimos, portanto, analise o código corretamente e entenda como ele está sendo usado antes de sinalizar algo como uma infecção ou hack.

Compare os arquivos com uma instalação original do WordPress

Este é um método da velha escola e, embora seja um pouco demorado, faz maravilhas. Compare os arquivos do seu site com os de um site não adulterado. Portanto, se você tiver uma cópia de backup do seu site, compare o site adulterado. Caso contrário, instale uma nova cópia do WordPress e os plugins que você possui no site infectado em um host diferente e compare-os.

Existem várias ferramentas que você pode usar para comparar arquivos. Neste exemplo, usamos uma ferramenta comercial chamada Beyond Compare, embora existam várias alternativas gratuitas. Abaixo estão algumas capturas de tela de uma comparação de amostra.

Ao comparar os diretórios raiz de dois sites WordPress, a ferramenta destaca a diferença no conteúdo do arquivo index.php , os novos arquivos .htaccess e wp-config.php e as diferenças nos subdiretórios.

Comparando o diretório raiz de dois sites WordPress

Clicando duas vezes no arquivo index.php podemos ver quais são as diferenças.

Index.php infectado no site WordPress

O que procurar em uma comparação de arquivos do WordPress?

Procure por arquivos que não fazem parte do núcleo do WordPress. A maioria das infecções adiciona arquivos à raiz da instalação do WordPress ou ao diretório wp-content . Se o hack for resultado de um plugin vulnerável, os arquivos do plugin podem ter sido modificados.

Limpe o hack do WordPress

É hora de começar a limpar seguindo o procedimento abaixo, depois de conhecer a fonte do hack do WordPress e encontrar a infecção.

Encontrando a infecção automaticamente com um serviço WordPress

Se o acima parece demais para lidar, não se desespere. Existem vários serviços e plugins de segurança do WordPress que você pode usar para verificar seu site em busca de malware e outras infecções. Recomendamos os Serviços de Segurança Malcare WordPress.

No entanto, observe que esses plug-ins têm uma lista limitada de assinaturas de malware que eles procuram. Como tal, se o ataque que afetou seu site WordPress não for tão comum, esses plugins podem não identificar a infecção. Não é inédito para nós receber feedback de administradores do WordPress cujo site WordPress foi vítima de um ataque que os plugins de malware do WordPress não identificaram nada de errado.

A conclusão aqui é que os controles de segurança eficazes envolvem várias camadas de defesas e detecção. Embora a análise manual seja quase sempre o melhor caminho a seguir, quando você pode fazê-lo; esses plugins também não devem ser subestimados – eles ainda podem ser usados ​​e serão úteis em algum momento.

Restaurando seu WordPress a partir do backup

Se você tiver um backup do seu site ou blog WordPress, restaure-o. É sempre muito mais fácil do que limpar manualmente o código.

Alterar todas as senhas, excluir usuários não utilizados e verificar as funções dos usuários do WordPress

Altere todas as senhas de todos os seus usuários e serviços, incluindo WordPress, CPanel, MySQL, FTP e seu próprio computador pessoal. Verifique a lista de usuários em seu FTP, WordPress, MySQL e qualquer outro serviço para confirmar se todos os usuários são legítimos. Se houver usuários que não estão mais sendo usados, exclua-os. Verifique se todos os usuários do WordPress têm as funções e permissões corretas.

Atualizando o núcleo do WordPress, plugins, temas e outros softwares

Verifique se você está executando a versão mais atualizada de todo o software necessário para executar seu site WordPress. Isso não se limita apenas ao próprio WordPress, mas também se estende a quaisquer plugins, temas, bem como patches do sistema operacional, PHP, MySQL e servidor web (por exemplo, Apache HTTP Server ou Nginx) e qualquer servidor FTP que você possa estar executando.

Fazendo backup do seu site WordPress

Backup do site WordPress

Uma vez nesta fase, antes de remover o código infectado real, faça um backup do seu site WordPress.

Remova o alerta de malware do Navegação segura do Google

Aviso de malware do Google

Se seu site foi negado pelo Google Safe Browsing, você pode solicitar uma análise de segurança para remover o alerta.

Depois de remover o hack do WordPress…

Processos de segurança do WordPress

Parabéns, você recuperou seu site WordPress de um hack. Agora você deve se certificar de que isso não aconteça novamente. Aqui estão algumas dicas sobre o que você deve fazer:

  1. Instale um plug-in de log de atividades do WordPress para acompanhar tudo o que está acontecendo no seu site WordPress.
  2. Se você não tiver uma solução de backup, obtenha uma.
  3. Use um serviço de verificação de segurança do WordPress.
  4. Gire o banco de dados e as senhas de administrador e force a segurança de senha forte do WordPress.
  5. Sempre mantenha seu WordPress, plugins WordPress, temas e qualquer outro software que você usa atualizado.
  6. Remova quaisquer arquivos não utilizados, como instalações antigas do WordPress, plugins e temas do WordPress não utilizados (incluindo temas padrão do WordPress não utilizados). Componentes e softwares não utilizados adicionam superfície de ataque desnecessária e devem ser removidos.
  7. Siga nosso guia de proteção de segurança do WordPress para garantir que você cuide de todos os possíveis problemas de segurança em seu site.

Referências usadas neste artigo [ + ]

Referências usadas neste artigo
1 https://developer.wordpress.org/reference/functions/wp_maintenance/
2 http://httpd.apache.org/docs/current/howto/htaccess.html#when
3 https://regexr.com/5lpf0