Recentemente cruzei com o problema de um cliente com um código malicioso que apareceu em seu site e que, mesmo depois de removido, voltada depois de um tempo.
Esse código é injetado nos arquivos functions.php de todos os temas do site (e não só no tema ativo) e se espalha por todos os sites wordpress dentro do servidor. Isso mesmo, uma instalação wordpress comprometida vai infectar outros sites de outros clientes que estão instalados no mesmo servidor.
Ele é usado para fazer spam de SEO mas pode ser usado para outras coisas também uma vez que abre caminho para a criação de usuários administrativos diretamente no banco de dados.
Como esse malware é um tanto recente e não há muita informação disponível na internet. Então resolvi compilar um pouco do que encontrei, juntar com as minhas investigações e explicar como se livrar dele.
De onde vem?
Esse código malicioso aparece, vindo de plugins e temas instalados de fontes não confiáveis (conhecidos como “nulled plugins”). Sites que diponibilizam gratuitamente o download de plugins premiuns/pagos e que, geralmente, adicionam trechos de códigos maliciosos.
Não vou linkar nenhum dos sites maliciosos justamente para não ajudar a espalhar a praga. Mas tenha em mente que, sites que prometem gratuitamente plugins e temas que são pagos, geralmente carregam esse tipo de código malicioso!
Pra ser sincero, não sei qual a necessidade de instalar um plugin “pirata” no sistema. Se você precisa tanto do tal plugin, porquê não apoiar seu desenvolvedor e COMPRAR A LICENÇA?! Desculpa o desabafo.
Ao ativar um plugin desses, um código malicioso é executado adicionando arquivos, injetando códigos, criando tabelas e abrindo a brecha para que o hacker (i)responsável tenha acesso ilimitado ao sistema.
Sinais do ataque
Os indícios de que seu site foi infectado com esse código são:
- Injeção de um bloco de código em todos os arquivos functions.php de todos os temas do site (em todos os temas, não apenas no tema ativo);
- Criação da tabela wp_datalist no banco de dados do sistema;
- Criação dos arquivos wp.class.php and wp-cd.php na pasta /wp-includes;
- Inclusão de código malicioso no arquivo wp-includes/post.php;
- Acessos de um usuário administrador que não é o seu. (Se você tem algum log de acessos ao site, fica mais fácil verificar isso. Recomento o: Sucuri Security Plugin).
Esse é o bloco de código adicionado (que pode variar um pouco dependendo do malware instalado):
[gist id=eb4946375575d20a4d21413184680a87]Como se livrar disso?
- Delete todos os arquivos core do WordPress;
- Faça upload de novos arquivos baixados de wordpress.org (na mesma versão do seu sistema);
- Delete o(s) plugin(s) que causaram o problema;
- Re-instale todos os plugins que sobraram;
- Limpe todos os arquivos function.php, de todos os temas (de preferência, apague e suba versões novas da fonte);
- Delete a tabela wp_datalist da sua base de dados;
- Rode uma verificação com o plugin Sucuri Security Plugin.
Curioso?
Se você ficou curioso pra saber mais sobre a estrutura desse malware, o usuário ecrider, criou um repositório no github com a engenharia reversa dos arquivos e seu código descompilado.
E, como ele mesmo avisa: Não tente rodar nenhum dos códigos a menos que você saiba exatamente o que está fazendo. Se possível, execute em um ambiente sandbox controlado para as suas pesquisas e use com cuidado.
Fonte
- https://www.reddit.com/r/Wordpress/comments/5ll3nk/weirdsuspicious_code_on_the_top_of_themes/
- https://github.com/ecrider/Black-SEO-WordPress-Malware
- https://wordpress.org/support/topic/code-added-to-functions-file/