Análisis de TrumpBot

(Este año no hemos publicado la habitual imagen de la playa como aviso de vacaciones, aunque creo que es evidente que no hemos estado mucho por aquí. Sea como fuere, ya estamos aquí de nuevo).

A mediados del mes de julio capturamos una muestra de un binario de tipo ELF y arquitectura ARM que nos llamó la atención. Durante el siguiente documento se va analizar dicha muestra.

sha256: 9013164a2694a44cbafb22ea6c842af7fd26f327073a9d52b2c2e266ffd499fc

 La primera instrucción que ejecuta en el sistema el malware es la escritura de la cadena “TRUMP IS DADDY” en la terminal del sistema infectado.

Tras ello, el malware conecta con el servidor C2 a través de la IP 198.50.154.188 utilizando la instrucción !getid. En caso de recibir datos del servidor, el bot enviará 7 bytes pertenecientes al paquete recibido.

Una vez establecida la conectividad, el bot se mantendrá a la espera de la orden del servidor C2 a través de la llamada al sistema nanosleep, ubicada en la función fcn.0000c84c. Según se ha podido detectar, el malware tiene habilitadas cuatro posibles instrucciones: !webfuck, !rape, !urid y !exit, a través de los cuales implementa dos ataques de denegación de servicio HTTP Flood y UDP Flood.

El primer ataque detectado es HTTP Flood, el cual se ejecuta a través de la instrucción !webfuck y permite la adición de parámetros adicionales como la URL, además del host, característica que permite ajustar el ataque contra recursos específicos.

El contenido de la petición del C2 se compara a través de la función fcn.00009c80.

Tras la gestión de los datos obtenidos desde el servidor C2, se elabora la petición HTTP a través de la función fcn.000082d4.

(Pinchar para ampliar)

La otra opción dedicada a la denegación de servicio es !rape, la cual emplea el ataque UDP Flood.

Podemos observar cómo, del mismo modo que el anterior ataque, accede hasta tres veces a la función fcn.0000b758, dedicada a la gestión de la información recibida por parte del servidor C2. Finalmente, llama a la función fcn.000081cc, que será la encargada de elaborar la petición UDP a través de los parámetros indicados.

Destacar la característica que dota de nombre al malware, el cual lleva a cabo la denegación de servicio a través del envío de la cadena “trumpisdaddyrepetidas veces contra el host y puerto indicado.

Por último, la otra opción (además de !exit) implementada en el malware es la instrucción !urid, la cual tiene como función implementar un tiempo de reposo hasta la próxima activación.

Puesto que no se detectan funciones dedicadas a la difusión del malware, todo parece indicar que la muestra analizada forma parte de un engranaje más grande y que su única función es la implementación de una backdoor para la comunicación con el servidor C2.

Tras el análisis, podemos concluir que TrumpBot se trata de una nueva botnet IoT cuyos principales objetivos son routers y cámaras web de arquitectura ARM. Se trata malware sencillo pero efectivo, pues mediante pocas líneas de código implementa dos ataques además de características que permite la personalización de campos, los cuales repercuten directamente en la efectividad del ataque.