Um novo pacote malicioso para npm chamado 'fezbox' vem chamando atenção na comunidade de segurança.
Ele utiliza QR codes para buscar malware especializado em roubo de cookies diretamente do servidor do atacante.
Disfarçado como uma biblioteca de utilitários, o pacote emprega uma técnica esteganográfica inovadora para coletar dados sensíveis, como credenciais de usuários, em máquinas comprometidas.
Tradicionalmente, códigos 2D como os QR codes foram criados para uso humano, para exibir conteúdos de marketing ou compartilhar links.
No entanto, criminosos encontraram uma nova aplicação: esconder código malicioso dentro do próprio QR code.
Esta semana, a equipe Socket Threat Research identificou o pacote 'fezbox' publicado no npmjs[.]com, a maior plataforma de registro open source para desenvolvedores JavaScript e Node.js.
O pacote contém instruções ocultas para baixar uma imagem JPG contendo um QR code.
A partir dessa imagem, ele processa um payload obfuscado em uma segunda etapa do ataque.
Antes de ser removido pelos administradores do npm, o pacote acumulou pelo menos 327 downloads, segundo dados do próprio site.
O site BleepingComputer confirmou que a maior parte do código malicioso está no arquivo dist/fezbox.cjs da versão 1.3.0 do pacote.
“Aqui, o código está minificado, mas ao formatá-lo fica mais fácil de entender”, explica Olivia Brown, analista da Socket.
Ela destaca que o código faz verificações para identificar se está rodando em ambiente de desenvolvimento.
“Isso é uma tática de camuflagem.
O atacante evita rodar o exploit em ambientes virtuais ou que não sejam de produção, adicionando barreiras para limitar quando e como o código malicioso é executado”, comenta Olivia.
Caso essas condições não se apliquem, após 120 segundos o pacote passa a interpretar e executar um código extraído de um QR code, cujo endereço está armazenado em uma string invertida no código.
Essa inversão da URL é uma técnica usada para burlar ferramentas de análise estática que buscam URLs no formato 'http(s)://', reduzindo a chance de detecção automática.
O QR code gerado a partir desta URL é atipicamente denso, contendo muito mais dados do que o normal.
Nos testes realizados, não pôde ser escaneado com câmeras de celulares comuns.
Isso indica que o código foi desenhado para entregar código obfuscado que o próprio pacote é capaz de decodificar.
A payload oculta, conforme explicou Olivia, acessa cookies via document.cookie.
“Em seguida, obtém o nome de usuário e senha, utilizando a técnica de inversão na string para esconder termos sensíveis — por exemplo, ‘drowssap’ corresponde a ‘password’.”
Se ambos, usuário e senha, forem encontrados no cookie roubado, a informação é enviada por uma requisição HTTPS POST para https[:]//my-nest-app-production.up[.]railway[.]app/users.
Caso contrário, o código encerra sua execução silenciosamente.
Apesar de já existirem diversos casos conhecidos de QR codes usados em golpes de engenharia social — como pesquisas falsas ou “multas de estacionamento” fraudulentas — esses exigem ação humana, como escanear o código e ser direcionado a sites phishing.
O que a descoberta da Socket revela é uma nova maneira de usar QR codes: permitir que uma máquina comprometida se comunique com seu servidor de comando e controle (C2) disfarçando a comunicação como tráfego comum de imagens, que passa despercebido por proxies e ferramentas de segurança de rede.
Enquanto a esteganografia tradicional esconde código malicioso em imagens, arquivos de mídia ou metadados, essa abordagem vai além, mostrando que os atacantes exploram qualquer meio disponível para executar e ocultar suas ameaças.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...