Linux.Bew: un backdoor para el minado de Bitcoin

En el siguiente artículo vamos a analizar una muestra del binario catalogado por varias firmas antivirus como Linux.Bew. (Virustotal), malware de tipo ELF del cual hemos detectado actividad durante este último mes.

sha256: 80c4d1a1ef433ac44c4fe72e6ca42395261fbca36eff243b07438263a1b1cf06

Lo primero que podemos detectar es la extracción de información intrínseca del proceso haciendo uso del archivo /proc/self/exe, cuya información será remitida más tarde hacia el servidor C&C.

De esta lectura obtendrá los siguientes parámetros:

HOME
LOGNAME
PATH
LANG
SHELL
USER
PwD

Tras ello, un segundo hilo de ejecución lleva a cabo diferentes verificaciones de acceso a archivos del sistema, como por ejemplo /etc/passwd o /root/, de modo que determine la capacidad del malware de ejecutarse en dicho entorno.

El procedimiento para determinar si tiene los permisos necesarios se basa en la creación y acceso de una carpeta, para una posterior syscall utime para comprobar la última hora de modificación de la misma.

En nuestro caso, ha detectado que tiene acceso a la carpeta /root/.config/, llevando a cabo la apertura y escritura. Al comprobar que ha sido modificado con éxito, procede a crear el archivo /root/.config/tempfile-x11sessionconf, escribiendo los siguientes caracteres: \x02\x00/\x01\x01\xbb\x01\x00.

Esta misma praxis se llevará a cabo con los ficheros tempfile-x11sessionpid (donde almacena el PID del proceso relacionado con la ejecución de la muestra), tempfile-x11sessionid (caracteres aleatorios para la identificación única sistema) y tempfile-x11sessioncache.

Destacar que el malware chequea la posibilidad de ejecución de busybox, herramienta característica de los dispositivos IoT, por lo que determinamos que éstos también son objetivo del malware (pinchar para ampliar).

(Pinchar para ampliar)

Finalmente, podemos determinar que la persistencia en el sistema se lleva a cabo mediante la creación de la siguiente entrada en el crontab:

*/10 * * * * sh -c "/root/.config/kdeinit4 &"

Una vez configurados los parámetros del sistema, el malware lleva a cabo la gestión de la comunicación con el exterior. En primer lugar extrae información del fichero /etc/resolv.conf en busca de resolver el dominio hfir.u230[.]org, el cual se encuentra hardcodeado en la muestra.

(Pinchar para ampliar)

Podemos encontrar cómo dicho dominio ya se encontraba asociado al malware Linux.Bew en anteriores campañas: https://detux.org/report.php?sha256=7c8b7f686b41b59887dd76c358c21e2dd5d1fe16c209a5794a024b4605784256 y https://detux.org/report.php?sha256=9b6d3386a93a609e55a4029474d93c9196874cc419d4a2681e131855ba565534.

Tras las peticiones DNS, el dominio hfir.u230[.]org resuelve a la IP 192.211.49.214.

Tras esto, el equipo infectado lleva a cabo la transmisión de información del sistema, mientras que, por otra parte, el equipo abre un puerto aleatorio UDP.

A continuación, establece una conexión hacia el puerto 443/tcp de la IP 45.58.49.98, la cual se mantendrá en abierta.

Una vez establecida la conexión con la IP , el equipo se mantiene sin consumir recursos hasta que el servidor C&C se comunique con el equipo.

Tras el primer contacto con el servidor, el equipo llevará a cabo la gestión de los parámetros y certificados pertinentes de la librería libsecp256k1, de la cual encontramos muestras en el código. Dicha librería está escrita en C y se utiliza para operaciones de curva elíptica secp256l1 en el modelo criptográfico de BitCoin. (Véase https://github.com/bitcoin-core/secp256k1 y https://es.bitcoin.it/wiki/Secp256k1).

(Pinchar para ampliar)

También se observa cómo, para generar la aleatoriedad necesaria para la generación de números aleatorios criptográficamente seguros, el malware hace uso del archivo de Linux /etc/urandom.

Una vez el servidor C&C active el cliente, el proceso relacionado con el minado de BitCoin se creará, destinando desde ese momento todos los recursos del sistema a dicho objetivo.

En cuanto al vector de ataque, todo parece apuntar a la instalación de paquetes de Linux fraudulentos, pues la muestra objeto del análisis también ha sido encontrada bajo los nombres kdeinit4 y gnome-pty-helper. Además, se han encontrado referencias de infección de una variante anterior de este mismo malware mediante una instalación legítima de OpenSuse 12.3 (http://linux-club.de/forum/viewtopic.php?t=120421)

A pesar haber sido detectado a partir de la actividad llevada a cabo durante el último mes, las primeras variantes de este malware fueron encontradas en 2014 (Backdoor.Linux.Bew.a et Client BitCoin). Adjuntamos una regla yara para la identificación del malware, la cual se puede encontrar en el repositorio Yara-Rules (https://github.com/Yara-Rules/rules):

rule LinuxBew: MALW
{
	meta:
		description = "Linux.Bew Backdoor"
		author = "Joan Soriano / @w0lfvan"
		date = "2017-07-10"
		version = "1.0"
		MD5 = "27d857e12b9be5d43f935b8cc86eaabf"
		SHA256 = "80c4d1a1ef433ac44c4fe72e6ca42395261fbca36eff243b07438263a1b1cf06"
	strings:
		$a = "src/secp256k1.c"
		$b = "hfir.u230.org"
		$c = “tempfile-x11session”
	condition:
		all of them
}

Comments

  1. La minería de Bitcoins está siendo la «moda» de hoy día, aun que lleve bastante tiempo, ha sido una explosión la venta de tarjetas gráficas para la minería.

  2. Buenas Antonio,

    en efecto, las ventas de tarjetas gráficas se ha disparado. Sin embargo, la rentabilidad del minado de bitcoins se ha puesto en duda repetidas veces, por lo que parece que algunos han decidido que sean sus víctimas quienes paguen la factura de luz a final de mes.

    Un saludo