Como encontrar um Backdoor em um site de WordPress interrompido e corrigi-lo

Uma e outra vez, ajudamos os usuários a corrigir seus sites hackeados do WordPress. Na maioria das vezes, quando eles chegam até nós, eles já limparam o site, e o hacker conseguiu voltar. Isso acontece se você não o limpou corretamente, ou você não sabia o que estava procurando . Na maioria dos casos, encontramos um backdoor criado pelo hacker, o que permitiu que eles ignorassem a autenticação normal. Neste artigo, vamos mostrar-lhe como encontrar um backdoor em um site hackeado do WordPress e corrigi-lo.

O que é um Backdoor?

Backdoor é referido a um método de ignorar autenticação normal e ganhar a capacidade de acessar remotamente o servidor enquanto permanece não detectado. A maioria dos hackers inteligentes sempre carrega o backdoor como a primeira coisa. Isso permite que eles recuperem o acesso mesmo depois de encontrar e remover o plugin explorado. Backdoors muitas vezes sobrevivem às atualizações, então seu site é vulnerável até você limpar essa bagunça.

Algumas portas traseiras simplesmente permitem que os usuários criem o nome de usuário escondido do administrador. Enquanto as portas traseiras mais complexas podem permitir que o hacker execute qualquer código PHP enviado pelo navegador. Outros têm uma UI de pleno direito que lhes permite enviar e-mails como seu servidor, executar consultas SQL e tudo o que eles querem fazer.

Screenshot do Backdoor

Onde este Código está oculto?

Backdoors em uma instalação do WordPress são mais comumente armazenados nos seguintes locais:

  1. Temas – Provavelmente não está no tema atual que você está usando. Os hackers querem o código para sobreviver às principais atualizações. Então, se você tem o antigo tema Kubrick sentado no seu diretório de temas ou outro tema inativo, então os códigos provavelmente estarão lá. É por isso que recomendamos excluir todos os temas inativos.
  2. Plugins – Os plugins são um ótimo lugar para o hacker esconder o código por três razões. Um porque as pessoas realmente não as olham. Dois porque as pessoas não gostam de atualizar seus plugins, então eles sobrevivem às atualizações (as pessoas as mantêm atualizadas). Três, existem alguns plugins mal codificados que provavelmente têm suas próprias vulnerabilidades para começar.
  3. Diretório de Uploads – Como blogueiro, você nunca verifica seu diretório de uploads. Por que você? Você apenas carrega a imagem e usa-a na sua postagem. Você provavelmente tem milhares de imagens na pasta de carregamentos dividida por ano e mês. É muito fácil para o hacker fazer upload de uma porta traseira na pasta de carregamentos, porque ele se esconderá entre milhares de arquivos de mídia. Além disso, você não verifica regularmente. A maioria das pessoas não tem um plugin de monitoramento como o Sucuri. Por último, o diretório de carregamentos é gravável, então ele pode funcionar do jeito que é suposto. Isso torna um ótimo alvo. Muitas portas traseiras que encontramos estão lá.
  4. wp-config.php – Este também é um dos arquivos altamente segmentados pelos hackers. É também um dos primeiros lugares em que a maioria das pessoas é dita para olhar.
  5. Inclui pasta – / wp-includes / folder é outro lugar onde encontramos backdoors. Alguns hackers sempre deixarão mais de um arquivo de backdoor. Uma vez que eles carregam um, eles adicionarão outro backup para garantir seu acesso. Inclui pasta é outra onde a maioria das pessoas não se preocupa olhando.

Em todos os casos que encontramos, o backdoor estava disfarçado para se parecer com um arquivo do WordPress.

Por exemplo: em um site que limpávamos, o backdoor estava na pasta wp-includes e chamou wp-user.php (isso não existe na instalação normal). Há user.php, mas não wp-user.php na / wp-includes / folder. Em outra instância, encontramos um arquivo php chamado hello.php na pasta uploads. Estava disfarçado como o plugin Hello Dolly. Mas por que diabos está na pasta de carregamentos? D’oh.

Também pode usar nomes como wp-content.old.tmp, data.php, php5.php, ou algo desse tipo. Não precisa terminar com PHP apenas porque ele tem código PHP nele. Também pode ser um arquivo .zip. Na maioria dos casos, esses arquivos são codificados com o código base64 que geralmente executa todas as operações de classificação (por exemplo, adicione links de spam, adicione páginas adicionais, redija o site principal para páginas com spam, etc.).

Agora você provavelmente está pensando que o WordPress é inseguro, porque ele permite backdoors. Você está morto errado. A versão atual do WordPress não possui vulnerabilidades conhecidas. Backdoors não são o primeiro passo do hack. Geralmente é o segundo passo. Muitas vezes, hackers encontram uma exploração em um plugin ou script de terceiros, o que então lhes dá acesso para carregar o backdoor. Dica: o hack TimThumb. Pode ser todo tipo de coisas. Por exemplo, um plugin mal codificado pode permitir a escalação de privilégios do usuário. Se o seu site tiver registos abertos, o hacker pode simplesmente se registrar gratuitamente. Explota o recurso de um para obter mais privilégios (o que então os permite carregar os arquivos). Em outros casos, poderia muito bem ser que suas credenciais estavam comprometidas. Também poderia ser que você estivesse usando um provedor de hospedagem ruim.

Como encontrar e limpar o Backdoor?

Agora que você sabe o que é uma porta traseira e onde ela pode ser encontrada. Você precisa começar a procurá-lo. Limpá-lo é tão fácil como excluir o arquivo ou o código. No entanto, a parte difícil é encontrá-lo. Você pode começar com um dos seguintes plugins do WordPress do scanner de malware. Fora disso, recomendamos Sucuri (sim é pago).

Você também pode usar o Exploit Scanner, mas lembre-se que os códigos base64 e eval também são usados ​​em plugins. Então às vezes vai retornar muitos falsos positivos. Se você não é o desenvolvedor dos plugins, então é muito difícil para você saber qual código está fora de seu lugar nas milhares de linhas de código. A melhor coisa que você pode fazer é exclua seu diretório de plugins , e reinstale seus plugins do zero. Sim, esta é a única maneira que você pode ter certeza, a menos que você tenha muito tempo para gastar.

Pesquisar no diretório de carregamentos

Um dos plugins do scanner encontrará um arquivo desonesto na pasta de carregamentos. Mas se você está familiarizado com SSH, então você só precisa escrever o seguinte comando:

encontrar uploads -name "* .php" -print 

Não há nenhuma boa razão para um arquivo .php estar em sua pasta de carregamentos. A pasta é projetada para arquivos de mídia na maioria dos casos. Se houver um arquivo .php que esteja lá, ele precisa ir.

Eliminar temas inativos

Como mencionamos acima, muitas vezes os temas inativos são direcionados. A melhor coisa a fazer é excluí-los (isto é, isso inclui o tema padrão e clássico). Mas espere, não chequei para ver se a porta traseira estava lá. Se fosse, então ele se foi agora. Você apenas economizou seu tempo de olhar, e você eliminou um ponto extra de ataque.

Arquivo .htaccess

Às vezes, os códigos de redirecionamento estão sendo adicionados lá. Basta excluir o arquivo, e ele será recriado. Se não, vá para o painel de administração do WordPress. Configurações »Permalinks. Clique no botão Salvar lá. Ele irá recriar o arquivo .htaccess.

arquivo wp-config.php

Compare esse arquivo com o arquivo padrão wp-config-sample.php. Se você vê algo que está fora de lugar, então se livrar disso.

Análise de Banco de Dados para Exploits e SPAM

Um hacker inteligente nunca terá apenas um ponto seguro. Eles criam muitos. A segmentação de um banco de dados cheio de dados é um truque muito fácil. Eles podem armazenar suas funções PHP ruins, novas contas administrativas, links SPAM, etc. no banco de dados. Sim, às vezes você não verá o usuário admin na página do usuário. Você verá que existem 3 usuários, e você só pode ver 2. As chances são de que você é pirateado.

Se você não sabe o que está fazendo com o SQL, então você provavelmente deseja que um desses scanners faça o trabalho para você. Exploit Scanner plugin ou Sucuri (versão paga), ambos cuidam disso.

Acha que você limpou? Pense de novo!

Tudo bem, então o hack se foi. Phew. Aguente, não apenas relaxe ainda. Abra seu navegador em um modo anônimo para ver se o hack volta. Às vezes, esses hackers são inteligentes. Eles não mostrarão o hack para usuários registrados. Apenas usuários desconectados vêem isso. Ou melhor ainda, tente alterar o useragent do seu navegador como o Google. Às vezes, os hackers só querem segmentar os motores de busca. Se tudo parece ótimo, então você é bom para ir.

Apenas FYI: se você quer ter 100% de certeza de que não há hack, então exclua seu site. E restaure-o até o ponto em que você sabe que o hack não estava lá. Isso pode não ser uma opção para todos, então você tem que viver na beira.

Como prevenir hacks no futuro?

Nosso conselho # 1 seria manter backups fortes (VaultPress ou BackupBuddy) e começar a usar um serviço de monitoramento. Como dissemos anteriormente, você não pode controlar tudo o que acontece no seu site quando você está fazendo muitas outras coisas. É por isso que usamos o Sucuri. Parece que estamos promovendo-os. Mas não somos. Sim, recebemos uma comissão de afiliados de todos os que se inscrevem no Sucuri, mas essa não é a razão pela qual estamos recomendando. Recomendamos apenas produtos que usamos e qualidade. Principais publicações como CNN, USAToday, PC World, TechCrunch, TheNextWeb, e outros também estão recomendando esses caras. É porque eles são bons no que eles fazem.

Leia nosso artigo em 5 razões pelas quais usamos Sucuri para melhorar nossa segurança WordPress

Poucas outras coisas que você pode fazer:

  1. Use senhas fortes – Força senhas fortes em seus usuários. Comece a usar um utilitário de gerenciamento de senha como 1Password.
  2. Autenticação em duas etapas – Se sua senha foi comprometida, o usuário ainda precisará ter o código de verificação do seu telefone.
  3. Limitar tentativas de login – Este plugin permite que você bloqueie o usuário após números X de tentativas de login com falha.
  4. Disable Theme and Plugin Editors – Isso evita problemas de escalação do usuário. Mesmo que os privilégios do usuário fossem escalados, eles não podiam modificar seu tema ou plugins usando o WP-Admin.
  5. Password Protect WP-Admin – Você pode proteger por senha todo o diretório. Você também pode limitar o acesso por IP.
  6. Desative a execução do PHP em determinados diretórios do WordPress – Isso desabilita a execução do PHP nos diretórios de upload e outros diretórios de sua escolha. Basicamente, mesmo que alguém pudesse fazer o upload do arquivo na sua pasta de carregamento, eles não seriam capazes de executá-lo.
  7. Ficar atualizado – Execute a versão mais recente do WordPress e atualize seus plugins.

Por fim, não seja barato quando se trata de segurança. Nós sempre dizemos que a melhor medida de segurança é um ótimo backup. Por favor, mantenha bons backups regulares do seu site. A maioria das empresas de hospedagem NÃO faz isso por você. Começando a usar uma solução confiável como o BackupBuddy ou o VaultPress. Desta forma, se você for pirateado, você sempre terá um ponto de restauração. Além disso, se você puder, apenas obtenha Sucuri e salve-se todo o problema. Eles monitorarão seu site e limpá-lo-ão se você for pirateado. Ele sai como $ 3 por mês por site se você receber o 5 plano do site.

Esperamos que este artigo o ajude. Sinta-se à vontade para deixar um comentário abaixo se você tiver algo para adicionar :)