Vírus para WordPress utiliza comandos escondidos em perfis da Steam para atacar vítimas

Uma campanha de malware usa perfis públicos da plataforma de jogos Steam como canal de comando e controle. A técnica afeta sites WordPress e já foi encontrada em aproximadamente 1.980 domínios infectados ao redor do mundo. A descoberta é de pesquisadores da GoDaddy Security.

O malware funciona de forma diferente do que é comum nesse tipo de ataque. Em vez de se comunicar com um servidor malicioso próprio, ele busca instruções escondidas dentro dos comentários de perfis do Steam. Ele então lê esses dados durante o carregamento normal das páginas infectadas e os executa.

Instruções camufladas em perfis do Steam

O truque central da campanha está no uso de caracteres Unicode invisíveis. Esses caracteres não aparecem para nenhum usuário que visita o perfil do Steam, mas existem no código da página e carregam as instruções do ataque.

Perfil do Steam com comentário de spam típico da plataforma. Os atacantes exploram o fato de que comentários incomuns raramente levantam suspeitas em uma rede social voltada a jogadores. Imagem: GoDaddy Security.

Basicamente, o comentário parece um texto comum ou arte em um código numérico padrão que traduz a linguagem humana para binário, para qualquer pessoa que o veja. O que ninguém vê são os caracteres invisíveis intercalados ao texto visível. O malware extrai exatamente esses caracteres, converte a sequência deles em dados binários e reconstrói o comando original.

Isso porque os caracteres usados, como o “zero-width non-joiner” (U+200C) e o “zero-width joiner” (U+200D), são legítimos no padrão Unicode e não disparam alertas em ferramentas de monitoramento de texto simples.

Como o ataque funciona na prática

Quando um visitante acessa um site WordPress infectado, o site faz uma requisição silenciosa a um perfil do Steam. O malware lê o conteúdo da seção de comentários, extrai os caracteres invisíveis e os decodifica para obter uma URL.

Exemplo de comentário usado na campanha: o texto visível parece inofensivo, mas os caracteres Unicode invisíveis escondidos entre as letras carregam as instruções do malware para os sites infectados. Imagem: GoDaddy Security.

Essa URL aponta para um arquivo JavaScript externo, hospedado em um domínio controlado pelos atacantes. No caso analisado pela GoDaddy, o endereço era o domínio hello-mywordl.info, com um arquivo nomeado para imitar uma biblioteca JavaScript legítima, o lodash.core.min.js.

O script é então carregado em todas as páginas públicas do site sem que o visitante perceba. Para dificultar ainda mais a detecção, o malware armazena em cache os dados buscados no Steam por cinco minutos, reduzindo o volume de requisições suspeitas.

Uma porta dos fundos no servidor

Além da parte que afeta os visitantes, o malware instala uma porta dos fundos no servidor do site. Essa função responde a requisições POST que contenham cookies de autenticação específicos.

Trecho do código-fonte de um perfil do Steam mostra a seção onde o malware busca os dados ocultos. Os caracteres invisíveis estão intercalados ao texto aparentemente comum dentro da div commentthread_comment_text. Imagem: GoDaddy Security.

Um dos cookies funciona como um sinal de confirmação. O servidor responde “OK” junto com um número de versão, indicando que a porta dos fundos está ativa. O segundo cookie permite ao atacante enviar código PHP codificado via requisição web, que é então escrito diretamente em arquivos de plugins e temas do WordPress.

Isso significa que, mesmo que um administrador remova parte do malware, os atacantes podem simplesmente reescrever o código infectado de volta, à distância, enquanto qualquer trecho da porta dos fundos ainda estiver ativo no servidor.

Técnicas para evitar detecção

O código do malware usa várias camadas de disfarce. Todos os textos internos, como endereços de sites e nomes de funções, estão codificados em sequências hexadecimais e octais. Isso impede que buscas simples por termos suspeitos encontrem o código.

Resultado de busca no PublicWWW mostra ao menos 44 páginas carregando scripts do domínio hello-mywordl.info, usado pelos atacantes para distribuir o JavaScript malicioso nos sites WordPress comprometidos. Imagem: GoDaddy Security.

Os nomes das funções também parecem sequências aleatórias de letras e números, o que dificulta a análise rápida do arquivo. O malware inclui ainda um sistema de log completamente desativado, que existe apenas para parecer código legítimo de desenvolvimento.

Outra camada de disfarce é o uso de funções nativas do WordPress, como wp_enqueue_script e add_action, as mesmas usadas por plugins legítimos. Isso faz o código parecer menos suspeito em uma revisão superficial.

A GoDaddy não identificou uma vulnerabilidade específica do WordPress como porta de entrada. Os métodos mais prováveis incluem credenciais de administrador roubadas, acesso via FTP ou SFTP comprometido, plugins ou temas desatualizados com falhas de segurança conhecidas, ou código malicioso em componentes de terceiros.

Campanha identificada pela GoDaddy Security afeta cerca de 1.980 sites WordPress e combina injeção de JavaScript em páginas públicas com uma porta dos fundos capaz de reescrever arquivos no servidor.

Plataformas legítimas como infraestrutura de ataque

O uso do Steam nessa campanha não é um caso isolado. Em 2017, hackers russos usaram comentários no Instagram de Britney Spears para controlar malware. Em 2018, o YouTube foi alvo de técnica similar, com comentários distribuindo vírus. Em 2024, atacantes usaram comentários do GitHub para disfarçar links maliciosos como downloads da Microsoft.

A lógica por trás dessas escolhas é a mesma: plataformas conhecidas e confiáveis geram menos suspeita no tráfego de rede do que servidores desconhecidos, tornando o ataque mais difícil de detectar e bloquear.

O que fazer se o site for afetado

Administradores que suspeitarem de infecção devem procurar referências ao domínio steamcommunity.com dentro de arquivos PHP de plugins e temas. A presença de caracteres como U+200C, U+200D e U+2061 a U+2064 em strings de código também é sinal de alerta.

Sites WordPress comprometidos fazem requisições silenciosas a perfis do Steam durante o carregamento normal das páginas, sem que visitantes percebam qualquer sinal de atividade maliciosa.

Nos logs de rede, requisições de saída do servidor WordPress para perfis do Steam são indicativo claro de infecção. Requisições POST contendo os nomes de cookies DEpjndDbNc ou tEcaKKXEsb também devem ser investigadas imediatamente.

A recomendação da GoDaddy é restaurar o site a partir de um backup limpo feito antes da infecção. Limpezas parciais podem não ser suficientes, já que a porta dos fundos é capaz de reescrever o malware removido enquanto qualquer parte dela permanecer ativa.

Acompanhe o TecMundo nas redes sociais. Inscreva-se em nossa newsletter e canal do YouTube.