O pacote NPM rouba senhas Chrome no Windows através da ferramenta de recuperação

Um novo malware npm foi encontrado para roubar credenciais do navegador Google Chrome usando ferramentas legítimas de recuperação de senha em sistemas Windows.

Além disso, esse malware detecta conexões de entrada do servidor C2 do invasor e fornece recursos avançados, como acesso a tela e câmera, listagem de diretórios, pesquisa de arquivos, upload de arquivos e execução de comandos shell.

Como visto pelo BleepingComputer, os pacotes identificados foram inseridos no registro npm desde 2018 e alcançaram mais de 2.000 downloads totais no momento da redação deste artigo.

índice

  1. Use o utilitário ChromePass para "recuperar" senhas do Chrome
  2. Abusando das opções de configuração do npm para obter persistência
  3. opa! O autor do malware expõe suas senhas

Use o utilitário ChromePass para "recuperar" senhas do Chrome

Hoje, pesquisadores da ReversingLabs revelaram suas descobertas sobre dois pacotes npm maliciosos que roubam secretamente senhas do seu navegador Chrome.

Esses pacotes são chamados:

  • nodejs_net_server – mais de 1300 downloads totais
  • temptesttempfile – mais de 800 downloads no total

Esses pacotes foram descobertos pelo mecanismo de análise estática da plataforma ReversingLabs Titanium, que emprega algoritmos de aprendizado de máquina.

Mas o foco principal do relatório está no nodejs_net_server , que contém a principal funcionalidade do malware.

O malware tem como alvo máquinas Windows para roubar credenciais de usuários e também configura um backdoor remoto persistente para permitir que o invasor realize atividades de vigilância.

Para facilitar suas atividades de roubo de credenciais, o malware, especificamente "nodejs_net_server", usa o utilitário legítimo gratuito ChromePass para o software Windows.

ChromePass é uma ferramenta de recuperação de senha para sistemas Windows destinada a extrair senhas do navegador Chrome do usuário:

Utilitário de recuperação de senha do ChromePass (NirSoft)

Esse utilitário está contido no pacote npm com nomes enigmáticos ou enganosos, como a.exe.

Independentemente disso, esses executáveis ​​do ChromePass foram previamente sinalizados pelo VirusTotal como prejudiciais.

O "nodejs_net_server" teve 12 versões lançadas até o momento, com a última 1.1.2 medindo cerca de 40 MB em tamanho não compactado.

Em versões posteriores, no entanto, o malware é visto para iniciar o TeamViewer.exe para evitar levantar bandeiras vermelhas.

Abusando das opções de configuração do npm para obter persistência

A maioria dos pacotes npm maliciosos detectados até agora dependem de erros de digitação ou confusão de dependências para infectar os desenvolvedores.

Mas esse não é o caso desses pacotes e ainda não se sabe como esses pacotes conseguiram tantos downloads.

página de download do nodejs_net_server no log do npm (toque do computador)

"Não encontramos nenhum alvo óbvio para erros de digitação ao analisar o nome do pacote."

"Não está claro para nós como o autor pretendia induzir os usuários a instalar o pacote. No entanto, podemos ver a atividade de download na página de estatísticas do pacote."

"Entramos em contato com a NPM para remover o pacote. Ainda estamos esperando a resposta da equipe de segurança", disse o arquiteto-chefe de software e cofundador da ReversingLabs, Tomislav Pericin, ao BleepingComputer em uma entrevista por e-mail.

Curiosamente, assim que o desenvolvedor instala o pacote, ele tenta obter persistência na máquina Windows abusando da conhecida opção de configuração npm ".share".

A opção "bin" no arquivo de manifesto do pacote, package.json, destina-se a sequestrar o popular pacote "jstest" se ele vier pré-instalado na máquina de um desenvolvedor.

"jstest" é uma estrutura de teste JavaScript multiplataforma baixada mais de 36.000 vezes até o momento, o que significa que é altamente provável que um desenvolvedor NodeJS o tenha.

package.json para nodejs_net_server (toque do computador)

Mas ter o "jstest" pré-instalado não é de forma alguma um pré-requisito para executar o pacote malicioso. A presença deles simplesmente ajuda o malware a obter persistência nas máquinas infectadas:

"O JSTest não precisa ser instalado para que este ataque funcione. A instalação do pacote sequestra o comando 'jstest' se já estiver atribuído."

"Emitir esse comando garantiria que o malware ganhasse persistência e executasse a funcionalidade de backdoor", disse Pericin à BleepingComputer.

O arquivo "jstest" carregado pelo malware tenta substituir o conteúdo do link simbólico "jstest" existente e também adiciona outro arquivo JS ("test.js") como um serviço do Windows que agora estaria sendo executado permanentemente.

O malware tenta obter persistência adicionando o script lib/test.js como um serviço do Windows (toque do computador)

Este serviço do Windows recém-adicionado abre a porta 7353 à qual o invasor pode se conectar e realizar várias atividades de vigilância, incluindo:

  • host reverso e configuração de porta
  • lista de conteúdo do diretório
  • carregar e pesquisar arquivos
  • executando o comando shell shell
  • acesso e registro da tela e da câmera através do pacote executável ffmpeg
  • Roubo de senha do navegador Chrome usando o utilitário de redefinição ChromePass fornecido

O malware abre uma conexão de soquete na porta 7353 (toque do computador)

Quanto ao filetemptesttemp, o pacote é mínimo com apenas dois arquivos e implementa apenas a funcionalidade de shell remoto de nodejs_net_server , portanto, parece um pacote de teste como o nome sugere.

opa! O autor do malware expõe suas senhas

Em uma reviravolta inesperada, algumas versões do nodejs_net_server contêm arquivos de texto simples com os nomes de usuário e senhas do autor do malware extraídos do Chrome.

A ReversingLabs suspeita que isso seja um acidente por parte do autor:

"O fato curioso sobre as versões que contêm a ferramenta de recuperação de senha é que o autor do pacote publicou acidentalmente suas credenciais de login armazenadas."

"Parece que as versões 1.1.1 e 1.1.2 lançadas do repositório NPM incluem resultados de teste do instrumento ChromePass no computador pessoal do autor."

"Essas credenciais de login foram armazenadas no arquivo 'a.txt' localizado na mesma pasta que a ferramenta de recuperação de senha chamada 'a.exe'", disse o engenheiro reverso da ReversingLabs, Karlo Zanki, em um post no blog.

A observação de Zanki também foi confirmada pelo BleepingComputer quando notamos dois arquivos, a.txt , é b.txt com credenciais claras, sentados em versões mais antigas de "nodejs_net_server".

O malware NPM inclui uma lista de senhas criadas pelo autor do malware. (computador apitando)

Nos últimos meses, os ataques a ecossistemas de código aberto, incluindo npm, PyPI e RubyGems, cresceram de forma constante.

Com relatórios recentes de ataques de dependência de sequestro em andamento inundando repositórios de código aberto, o problema não desaparecerá tão cedo.

A ReversingLabs acredita que entender o que está dentro de seu software ou ter uma lista de materiais de software (SBOM) é uma etapa crítica na defesa contra esses ataques da cadeia de suprimentos.

"Os repositórios de pacotes oferecem benefícios para o desenvolvimento rápido de aplicativos, mas também trazem riscos."

"Compreender a árvore de dependências de pacotes, ou BOM de software, tornou-se uma parte crítica da defesa contra ataques da cadeia de suprimentos de software."

"Cada componente deve ser cuidadosamente examinado antes da instalação, ou há uma chance de que o código malicioso não seja detectado."

“Ainda temos que ver um pacote de repositório malicioso incorporado na imagem final da compilação, mas parece ser apenas uma questão de tempo com o estado atual das coisas”, concluiu Pericion em sua entrevista ao BleepingComputer.

  • Como desativar as teclas de aderência no Windows 10
  • Por que o Mac mini é o Mac com melhor custo-benefício?

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

Deixe uma resposta Cancelar resposta

Ir arriba