Análisis de Linux.Helios

Desde hace varias semanas venimos detectando desde el laboratorio de malware de S2 Grupo una nueva variante de malware para arquitecturas Linux e IoT, registrado por primera vez en la plataforma VirusTotal el pasado día 18 de Octubre, y al cual hemos denominado Linux.Helios, debido al nombre de ciertas funciones presentes en la muestra.

Destacamos que las principales firmas de antivirus no clasifican de forma unánime esta muestra: van desde ELF.DDoS hasta Tsunami, pasando por Gafgyt o Mirai.

Infección

Según hemos detectado en nuestros sistemas honeypot, el sistema queda infectado a través de credenciales por defecto en el servicio telnet mediante la ejecución de la siguiente instrucción:

El script escrito en bash ejecuta una serie de comandos, de manera muy similar a Gafgyt.

Obteniendo de ese modo la muestra de Linux.Helios que analizaremos.

Persistencia en el sistema

Encontramos que la persistencia se efectúa de un modo muy similar al malware analizado anteriormente para arquitecturas Linux, a través de la escritura en el fichero /etc/rc.d/rc.local (o /etc/rc.conf en su defecto).

Seguidamente obtiene la IP pública de la red a través de la función getOurIP y de la lectura del fichero /proc/net/route tras una conexión a la IP de Google 8.8.8.8. También se obtiene la MAC del dispositivo.

A continuación se lleva a cabo la conexión con el servidor a través de la función initConnection, denominado HeliosServer (nombre que hemos utilizado para denominar nuestra muestra), el cual tiene la dirección IP 66.172.27.232 hardcodeada con el puerto para 666 para la conexión y los parámetros necesarios para la conexión en HeliosCommSock.

Desde la misma función main, se ejecuta la conexión contra el servidor, el cual registrará el dispositivo infectado. La petición que ejecuta contra el servidor incluye la dirección pública de la red así como la arquitectura de la misma. Llama la atención que, en lugar de incluir el nombre de la arquitectura, se modifica por una cadena de texto de corte obsceno.

Tras ello ejecutará processCmd, función donde podemos encontrar la gestión de cada una de las opciones disponibles en el malware, según la información remitida por el servidor C2 en cada momento.

Difusión del malware

Dentro de la función processCmd, y si el dispositivo está en modo “spread” se ejecuta la llamada a la función StartTheLelz, encargada del escaneo de potenciales víctimas y la posterior infección a través de las siguientes credenciales por defecto:

Del mismo modo que otro malware de tipo IoT, obtiene las direcciones IP de sus víctimas de manera aleatoria a través de la función GetRandomPublicIP. Tras ello, chequea que el resultado de la respuesta en la función contains_response, a través de las funciones contains_success (donde verifica el resultado de la cadena “busybox”) y contains_fail (donde se verifica el resultado de la cadena “invalid”) ha sido escrito por pantalla en la función contains_success.

En caso de encontrar un dispositivo vulnerable, imprime por pantalla la cadena “Login Found: Attempting To Brute LIKE A GOD IP: User: %s Pass: %s”, además de ejecutar la instrucción que en un primer momento desencadenó la infección, eliminando de ese modo el servidor C2 en el proceso de infección del dispositivo, presente en anteriores tipologías.

Ataques

Si el dispositivo está en modo “attack” se selecciona el ataque de denegación de servicio entre los siguientes:

Para la gestión de HTTP Flood, se selecciona de manera aleatoria uno de los 36 User-Agents hardcodeados en la muestra.

Autor detrás de Helios

En cuanto a la autoría del malware Linux.Helios, según las técnicas poco elaboradas, las numerosas referencias obscenas, y el nombre de la función StartTheLelz (la función dedicada al escaneo e infección de dispositivos), todo parece apuntar al grupo cibercriminal juvenil LelDoS, dedicado al ataque a través de denegaciones de servicio a plataformas de juegos. Son especialmente conocidos por sus ataques contra servidores del juego online Minecraft, donde Helios únicamente sería la última variación del malware con objetivo IoT, tras Bashlite, Gafgyt, Qbot, Remaiten, Torlus y Mirai.

Llama la atención el hecho de que, a pesar de la clara relación con sus antecesores, ninguna regla de Yara asociada a malware IoT detecta la presente muestra, denotando una clara intención por parte del grupo de alejarse del foco mediático que fue Mirai, aun habiendo reutilizado código y praxis de otros malware.

Así pues, adjuntamos la regla para la identificación del malware:

Estaremos atentos a su evolución.

Ver también en:

Comments

  1. Buena entrada! Poco malware para nix se analiza estos dias.

  2. Muchas gracias Ximo. No será porque no intentemos poner de nuestra parte!
    Te invito a que le eches un ojo a varias de nuestras últimas publicaciones.

    Un saludo

  3. Qué completo está, muy bien explicado y con capturas. Muy buen post.

  4. .

  5. Muchas gracias Pedro.