Nova Variação de Malware de Evasão WordFence

Recentemente, nos deparamos com um ambiente WordPress infectado que continha uma nova variação do malware de evasão WordFence usando algumas táticas sorrateiras para se esconder da vista.

O administrador do site estava relatando alguns problemas com possíveis malwares de roubo de cartão de crédito em seu site, mas eles já haviam removido isso no momento em que chegamos à cena. O que descobrimos, no entanto, foi um componente muito interessante para a infecção que adulterou um plugin de segurança WordPress de código aberto extremamente popular. Vamos dar uma olhada!

Arquivos de plugin maliciosos em ambientes comprometidos

Um dos métodos mais populares que os invasores usam para hospedar malware em sites do WordPress é através do uso de plugins maliciosos. Como os usuários administradores são um dos vetores de ataque mais comuns para ambientes WordPress, e a instalação de plugins e temas é uma das principais habilidades desses usuários, isso só é lógico que essa funcionalidade seja abusada se esses usuários forem comprometidos por agentes de ameaças. Por exemplo, plugins maliciosos são uma das variantes mais comuns de malware desnatado de cartão de crédito em sites de comércio eletrônico que operam o WooCommerce.

Ao limpar malware de um site WordPress, é sempre prudente dar uma olhada nos arquivos do plugin dentro do ./wp-content/plugins – você nunca sabe o que vai encontrar! Os atacantes geralmente usam nomes suspeitos genéricos para seu malware, a fim de tentar “se enraíar” no ambiente e não ser notado.

Neste caso, um exemplo se destacou do resto:

./wp-content/plugins/ wp-motor-fast-action

Isso era suspeito não só porque o popular provedor de hospedagem WPEngine não faz um plugin com esse nome, mas também este site não estava hospedado no WPEngine para começar.

A evasão do plugin WordFence

Com mais de 5 milhões de instalações ativas, o WordFence é sem dúvida uma das soluções de segurança mais populares em uso na comunidade WordPress. É um excelente software e uma ferramenta muito útil para empregar em um site para manter o malware à distância. Sua equipe de pesquisa de vulnerabilidades também é excelente, então grandes aumentos para eles por ajudar a manter o mundo WordPress mais seguro.

Dito isto, nenhuma solução de segurança é perfeita, e os sites ainda podem ficar comprometidos apesar de tomar medidas para impedi-lo.

Por exemplo, enquanto o WordFence fornece um serviço de autenticação de dois fatores para impedir o acesso não autorizado ao painel de administrador, nem todos que usam o plugin ativam isso. O mesmo vale para o nosso serviço de firewall: Mesmo que os painéis wp-admin comprometidos sejam um dos vetores de ataque mais comuns, nem todos que usam nosso firewall empregam o uso do nosso recurso de página protegida (que, se você é cliente do nosso serviço de firewall Sucuri, você definitivamente deve ativá-lo!).

Voltemos a nossa atenção para o seguinte arquivo:

./wp-content/plugins/wp-motor-fast-action/ wp-motor-fast-action.php

Espvilhando dentro, vemos o seguinte:

Contents of the wp-engine-fast-action.php file

Podemos ver que algumas camadas de ofuscação precisam ser removidas antes que possamos ler isso corretamente; ou seja, alguma codificação de base64, concatenação e strings revertidas.

Quando resolvemos isso, vemos o seguinte:

Deofuscated contents reveal malicious wp-engine-fast-action plugin

O plugin malicioso pode ser acionado usando a solicitação definida na variável license_key aqui:

$license_key ? " dakl-sd3a-ak4i-adm2" ";

Por exemplo, isso seria executado visitando o site, assim:

infectwebsite.com / ?dakl-sd3a-ak4i-adm2

Que, se bem sucedido, retorna a mensagem Conjunto de Licença!Activated!:

License Set!Activated! message when successfully viewed

Ao revisar o script, podemos ver que ele serve a três propósitos:

  1. Mais importante ainda, ele renomeia o diretório do plugin WordFence para “ wordfence1” desativando assim o plugin completamente
  2. Ele cria um usuário de administrador malicioso chamado license_admin2:
Malicious admin user license_admin2
  1. Se o usuário license_admin2 já existia, o plugin tenta mudar sua função de “sintor” para “administrador”. Essa funcionalidade provavelmente é usada em cenários quando os invasores originalmente tentaram criar o usuário license_admin2 através do formulário de registro do usuário ou quando a criação do administrador falhou por algum motivo no meio do processo e o plugin não teve a chance de alterar sua função para “administrador”.

Assim, com os dois fatores combinados dos invasores terem acesso do administrador ao site, juntamente com o plug-in de segurança sendo desativado, é muito mais fácil fazer o que eles agradam com o ambiente do site.

Para que o plugin malicioso tenha sido colocado no site em primeiro lugar, o site já teria que ter sido comprometido – mas esse malware poderia definitivamente servir como um vetor de reinfecção.

sobreposição de estilo falso WordFence

“Mas o Ben…”

Eu ouço você dizer.

Certamente o proprietário do site perceberia que o WordFence estava desativado? Certamente isso dispararia alarmes, não?”

Bem, os atacantes também pensaram nisso! É aqui que as coisas ficam realmente interessantes. O que se encontra na parte inferior do arquivo de plugin é o seguinte:

Two additional files included: main.js and style.css

Dois arquivos adicionais estão incluídos aqui, main.js e style.css, vamos dar uma olhada e ver o que está dentro.

Contents of assets/js/main.js
Conteúdo de ativos/js/main.js

Como você pode ver, os invasores colocaram algum esforço em ofuscar o conteúdo do JavaScript para ocultar sua funcionalidade, mas com algumas ferramentas simples de desocusação, podemos transformá-lo em texto legível por humanos:

Deobfuscated contents of main.js file

Este código é bastante curto, mas muito sorrateiro no que ele realiza: dá ao usuário a falsa impressão de que tudo está habilitado e funcionando bem, mesmo que as verificações de segurança estejam realmente desativadas.

O código malicioso só funciona em páginas da interface de administração do WordPress, cujo URL contém a palavra “Wordfence” nelas (páginas de configuração do plugin Wordfence).

Lá, ele procura opções “” Escanee arquivos de tema contra versões do repositório para alterações ‘” e “Escaninhar arquivos plugins contra versões de repositório para alteração” e muda seu estilo (e apenas estilo) para fazê-los parecer como se estivessem ativados (sem alterar a opção Wordfence real).

Isso se destina a enganar um administrador que verifica as configurações de segurança depois de perceber algo errado, apenas para descobrir que as verificações de segurança parecem estar habilitadas e funcionando normalmente.

Finalmente, o arquivo style.css simplesmente oculta o plugin wp-engine-fast-action falso da visualização no painel para que os usuários administradores não possam vê-lo presente no ambiente, bem como ocultar da visualização do usuário com ID 551:

tyle.css file hides the wp-engine-fast-action bogus plugin from view

Presumivelmente, esse seria o usuário administrador malicioso adicionado pelo malware, embora o ID do usuário precisasse ser definido corretamente como 551 para que isso funcionasse corretamente.

Passos de mitigação

É importante lembrar que não existe uma solução de segurança 100%. A segurança é algo que a maioria dos proprietários de sites tende a não querer se preocupar, e é muito comum que os usuários instalem um plug-in de segurança e esperem o melhor: “defini-lo e esqueça”.“. 

No entanto, a melhor defesa é usar uma abordagem multi-camadas – felizmente, há uma ampla gama de táticas que você pode empregar em seu ambiente para ajudar a mitigar o risco. Para começar, você pode conferir nosso guia útil sobre como endurecer seu ambiente WordPress.

Algumas das sugestões mais notáveis incluem:

  • Usar 2FA no seu painel de administradores
  • Usar implementações de segurança adicionais wp-config.php, como disallow_file_edit e disallow_file_mods
  • Mantenha o software do seu site atualizado e totalmente corrigido
  • Empregue um firewall de site para bloquear bots ruins, ajudar a evitar a força bruta e corrigir virtualmente vulnerabilidades conhecidas

Além disso, com esse malware em particular, seria útil ter um serviço de monitoramento de integridade de arquivos que reside principalmente fora do próprio ambiente, como nossa solução de verificação do lado do servidor. Desta forma, é possível ver se algum arquivo do site foi adulterado.

No final do dia, a segurança do site é tudo sobre redução de risco, não eliminação de risco. Os plugins de segurança são apenas uma parte de manter um site protegido contra ameaças. Então, você vai querer tomar medidas para proteger todos os aspectos do ambiente do seu site para evitar malware.