O caso do botnet Cloud9 Chrome

Os navegadores da Web contêm as informações mais lucrativas sobre um usuário e, portanto, estão se tornando um alvo interessante para desenvolvedores de malware.

Cada pressionamento de tecla ou cookie de sessão pode conter informações muito particulares sobre um usuário, e o acesso a essas informações pode criar problemas críticos de segurança e privacidade.

A equipe do Zimperium zLabs descobriu recentemente uma extensão de navegador maliciosa, que não apenas rouba as informações disponíveis durante a sessão do navegador, mas também pode instalar malware no dispositivo de um usuário e, posteriormente, assumir o controle de todo o dispositivo. Neste blog, examinaremos mais profundamente a arquitetura e o modus operandi dessa extensão de navegador maliciosa, originalmente chamada Cloud9, pelo autor do malware.

O Cloud9 nunca foi encontrado em nenhuma loja oficial de extensões de navegador, em vez disso, contava com a distribuição por meio de comunidades de agentes de ameaças, onde os usuários da ferramenta ocultavam o malware para entregar às vítimas. Esses métodos de distribuição podem levar, mas o mais comum que testemunhamos durante a investigação foi o carregamento lateral por meio de executáveis ​​falsos e sites maliciosos disfarçados de atualizações do Adobe Flash Player.

O que a botnet Cloud9 pode fazer?

Cloud9 funciona como um trojan de acesso remoto (RAT) com muitas funcionalidades. Encontramos duas variantes diferentes desse malware, uma versão original e uma versão aprimorada com recursos estendidos e correções de bugs, demonstrando como os atores mal-intencionados estão constantemente iterando. A segunda variante é uma modificação da primeira com muito mais recursos e algumas correções de bugs. Nossa discussão se concentrará na versão “melhorada”, pois contém as funcionalidades de ambas as variantes.

As principais funcionalidades deste malware que podem ser usadas para realizar atividades maliciosas são:

  • Envie solicitações GET/POST, que podem ser usadas para obter recursos maliciosos.
  • CookieStealing, que pode comprometer as sessões do usuário.
  • Keylogging, que pode ser usado para roubar senhas, entre outras coisas.
  • Ataque híbrido Layer 4 / Layer 7, usado para realizar ataques DDos do PC da vítima.
  • Detecção de SO e navegador, para cargas úteis do próximo estágio
  • Abrir Pop-unders, usado para injetar anúncios.
  • Execute o código JavaScript de outras fontes, usado para injetar mais código malicioso.
  • Carregar silenciosamente páginas da web, usadas para injetar anúncios ou para injetar mais código malicioso.
  • Mine criptomoedas no navegador, para usar os recursos do computador da vítima para minerar criptomoedas.
  • Enviar exploit do navegador, usado para assumir o controle do dispositivo executando código malicioso no dispositivo.

Como funciona o botnet Cloud9 Chrome?

A extensão do navegador contém apenas três arquivos javascript, e a principal funcionalidade da extensão está disponível em um arquivo chamado campaign.js . Identificamos que esse JavaScript também pode ser usado como autônomo e, portanto, pode ser usado redirecionando as vítimas para um site malicioso que contém o script campaign.js .

Nesta extensão maliciosa, o arquivo manifest.json injeta Campaign.js em todas as páginas http/https.

Figura 1: manifest.json
Figura 2: Extensão chrome instalada no Google Chrome.
Figura 2: Extensão chrome instalada no Google Chrome.

Extensão chrome instalada no Google Chrome.

campaign.js começa com a identificação do sistema operacional usando a API window.navigator. Após a identificação bem-sucedida, ele injeta um arquivo Javascript que minera a criptomoeda usando os recursos do computador da vítima. Isso não apenas diminui o desempenho do dispositivo, mas reduz a vida útil do hardware e aumenta o uso de energia, o que se traduz em uma perda monetária lenta, mas constante.

A próxima etapa na cadeia é injetar outro script chamado cthulhu.js . Este arquivo contém uma exploração de cadeia completa para CVE-2019-11708 e CVE-2019-9810 visando o Firefox em um sistema operacional Windows de 64 bits. Após a exploração bem-sucedida, ele lança malware baseado em Windows no dispositivo, permitindo que o agente da ameaça assuma o controle de todo o sistema.

Figura 3: código cthulhu.js que descarta o malware.
Figura 3: código cthulhu.js que descarta o malware.

Após identificar o tipo de navegador, o script adiciona um novo ouvinte de eventos usando o evento onkeypress, que é acionado quando qualquer tecla que produz um caractere é pressionada. Sempre que esse evento é acionado, o valor de pressionamento de tecla correspondente é anexado a uma variável. Esses dados de keylogging, juntamente com quaisquer dados de “formulário” presentes na página da Web atual, são enviados para o C&C sempre que qualquer um dos seguintes eventos é acionado:

  • unload evento que é acionado nos seguintes casos:
    • A janela do navegador foi fechada.
    • Quando o usuário sai da página (clicando em um link, enviando um formulário, fechando a janela do navegador, etc.).
    • Quando um usuário recarrega a página
  • o evento beforeunload ocorre quando o documento está prestes a ser descarregado
  • O evento popstate da interface Window é acionado quando a entrada do histórico ativo muda enquanto o usuário navega no histórico da sessão
  • O evento pagehide é enviado para uma janela quando o navegador oculta a página atual no processo de apresentação de uma página diferente do histórico da sessão. Por exemplo, quando o usuário clica no botão Voltar do navegador, a página atual recebe um evento pagehide antes que a página anterior seja exibida.

Esses eventos garantem que os dados sejam enviados ao C&C assim que o usuário navegar para uma página diferente.

O arquivo javascript então chama uma função chamada pingHome após um tempo limite de 20 segundos, que envia uma solicitação GET para o C&C e espera um comando em retorno. O comando é passado para outra função chamada Parse , que executa o código correspondente ao comando recebido do servidor C&C. Possui as seguintes funcionalidades:

1. Roubando biscoitos

Se o comando recebido do C&C for “ cookie ”, o malware extrairá o cookie e o local usando document.cookie e document.location respectivamente. Em seguida, ele enviará essas informações para o navegador.

A função imageLoad na figura abaixo simplesmente cria uma imagem vazia e configura o atributo src para o argumento passado, isso criará a requisição http, pois o navegador tentará recuperar a imagem dessa URL no atributo src.

Figura 4: código do campaign.js que rouba cookies.
Figura 4: código do campaign.js que rouba cookies.

2. Roubando dados da área de transferência

O evento window.onpaste é acionado sempre que a vítima cola algum conteúdo em um elemento. Esse código então rouba esses dados e os envia para o servidor C&C. Quaisquer dados colados no navegador, como credenciais de login e números de cartão de crédito, podem ser roubados e enviados para o C&C. Esse comportamento pode ser especialmente perigoso nos casos em que o usuário armazena a senha em qualquer gerenciador de senhas e copia e cola a senha ou outras informações confidenciais na sessão do navegador infectado.

Figura 5: código campaign.js que rouba dados da área de transferência.
Figura 5: código campaign.js que rouba dados da área de transferência.

3. Explorar

Uma das características mais interessantes desse malware é que ele usa exploits do navegador para escapar do navegador e tenta executar o malware no dispositivo da vítima. Já mencionamos o exploit do Firefox que foi usado para descartar um arquivo exe malicioso. Além disso, esse malware usa mais algumas explorações de navegador para Internet Explorer ( CVE-2014-6332 , CVE-2016-0189 ) e Edge ( CVE-2016-7200 ). Se um invasor explorar com êxito essa vulnerabilidade, ele poderá obter os mesmos direitos de usuário que o usuário atual e poderá executar código no dispositivo da vítima como o usuário atual. Se o usuário atual estiver conectado com direitos de usuário administrativo, um invasor poderá instalar programas; visualizar, alterar ou excluir dados; ou crie novas contas com direitos totais de usuário.

Nesse caso, os CVEs foram usados ​​com o mesmo propósito, para injetar código arbitrário que pode ser executado como o usuário atual fora do navegador.

4. Solicitações POST e ataque à camada 7

A extensão também pode enviar solicitações POST para qualquer domínio. Essa funcionalidade pode ser aprimorada para realizar um ataque DDOS de camada 7 se o invasor tiver um número significativo de vítimas conectadas como botnets. Os ataques de camada 7 geralmente são muito difíceis de detectar porque a conexão TCP é muito semelhante a solicitações legítimas. O desenvolvedor provavelmente está usando esta botnet para fornecer um serviço para executar DDOS.

Existem algumas outras funcionalidades, como clickjacking, quebra de hashes md5/sha1 e execução de qualquer javascript fornecido pelo servidor C&C.

Os atores de ameaça

A origem desse malware vem do grupo de malware Keksec, que foi originalmente formado em 2016 por alguns atores de botnet. Este grupo é popular por seu DDOS e malware e botnets baseados em mineração.

A primeira versão pública desta botnet JavaScript foi encontrada em 2017 e foi atualizada novamente em 2020, onde foi divulgada como um único JavaScript que pode ser incluído em qualquer site usando tags de script. Os servidores de comando e controle usados ​​pelo botnet Cloud9 Chrome apontam para domínios que foram usados ​​anteriormente pelo grupo de malware Keksec. O botnet Cloud9 está sendo vendido gratuitamente ou por algumas centenas de dólares em vários fóruns de hackers diferentes. Como é bastante trivial de usar e está disponível gratuitamente, pode ser usado por muitos grupos ou indivíduos de malware para fins específicos.

Como o Cloud9 impacta os clientes corporativos?

Esse malware foi projetado propositadamente para atingir todos os tipos de usuários e atende ao objetivo de recuperar informações do usuário. Os scripts injetados podem ser facilmente usados ​​para servir mais comportamentos maliciosos na sessão do navegador, como mapeamento de pressionamento de tecla e exfiltração de dados.

O malware Cloud9 não tem como alvo nenhum grupo específico, o que significa que é tanto uma ameaça corporativa quanto uma ameaça ao consumidor. As teclas pressionadas podem conter informações confidenciais do usuário, como senhas, e, portanto, podem ser aproveitadas para acessar informações mais confidenciais, como dados críticos de negócios, dados de clientes e até dados pessoais, sem qualquer conhecimento do usuário. Sua capacidade de instalar malware adicional na máquina da vítima aumenta seu perfil de risco para uma empresa, ignorando os vetores tradicionais de ataque comumente monitorados por produtos de segurança de endpoint.

As vítimas do Cloud9 Chrome Botnet

O número de vítimas afetadas por isso ainda é desconhecido. Ainda assim, está bem claro que esse grupo de malware está mirando em todos os navegadores e sistemas operacionais e, assim, tentando aumentar sua superfície de ataque. Encontramos algumas capturas de tela de um fórum de hackers onde o agente da ameaça mostra as vítimas que estão sendo atacadas.

Como a imagem abaixo indica, podemos afirmar claramente que as vítimas desse ataque não estão limitadas a um país específico ou a um navegador específico.

Figura 6: Captura de tela das vítimas atacadas.
Figura 6: Captura de tela das vítimas atacadas.

Indicadores de Compromisso

IPs e domínios

  • 70[.]66[.]139[.]68
  • http[://]download.agency/
  • http[://]download.loginserv.net/
  • https[://]cloud-miner.de/
  • 107[.]174[.]133[.]119
  • https[://]p27rjz4oiu53u4gm.onion.link
  • https[://]zmsp.top/bot/cloud9-github/

Hashes

  • d8159d8b2f82ca62d73e15f8fc9f38831090afe99a75560effb1ad81dcb46228
  • fc194cd7fe68424071fev3087cd5aa6616dfcd7cc06588d867505dd969f50db4
  • 4b7ba9632318c84115ec345e2c4d07283c6a81e0112bb38b9400f0fabeb8e3be
  • 062ebb3d6967744ecd9abba13fdae1edb2ae5248e228d1ad39800bc742815d02
  • f22eb3fab95165f994bb12c9764583939db12176a298aeb065586b7d01301165
  • Dc20a36d9e2e767bb994d29a50b75afc3ac757e430a7d6abb1fa8ef7fe44ebfa

Capturas de tela do fórum de hackers onde o malware foi distribuído:

Capturas de tela do fórum de hackers onde o malware foi distribuído.
Fórum de hackers onde o malware foi distribuído.
Fórum de hackers onde o malware foi distribuído.
Fórum de hackers onde o malware foi distribuído.
Autor: Nipun Gupta
Fonte: www.zimperium.com