Análisis de Linux.IotReaper

Hace un par de días conocimos la existencia de una nueva amenaza IoT considerablemente más elaborada que cualquiera de las detectadas hasta la fecha (http://blog.netlab.360.com/iot_reaper-a-rappid-spreading-new-iot-botnet-en/), dicha botnet ha sido bautizada por Netlab 360 como IotReaper. Así pues, desde el laboratorio de malware de S2 Grupo hemos obtenido y analizado algunas de las muestras relacionadas.

Infraestructura

La infraestructura de la red es bastante similar a la de la botnet Mirai, siendo formada ésta por cuatro elementos:

  • Servidor Report: Encargado de recolectar la información remitida por los bots.
  • Servidor Downloader: Encargado de proporcionar las samples del malware vía HTTP. La presencia de elemento permite la continua incorporación de actualizaciones sin necesidad de dejar en desuso versiones anteriores del malware.
  • Servidor C2: Encargado de remitir las órdenes de denegación de servicio.
  • Bot: Dispositivo IoT infectado por la botnet IotReaper.

Proceso de Infección

 

  1. El bot infectado realiza peticiones TCP SYN escaneando potenciales víctimas.
  2. Ejecuta exploits para el servicio HTTP contra el objetivo.
  3. En caso de resultar exitoso, remite la información al servidor de Report.
  4. El servidor de Report traslada la orden de infección al Downloader
  5. El servidor de Downloader lleva a cabo la infección del dispositivo.
  6. El dispositivo, ya infectado, se comunica con el servidor CnC.

Análisis del Bot

En primer lugar tenemos la entrada referente a evitar que se reinicie, función extraída completamente del código fuente de Mirai:

 

Función de Reaper

 

Función de Mirai

Destacar que no se han encontrado evidencias de persistencia en el sistema por parte del malware, por lo que en caso de reinicio, el dispositivo quedaría desinfectado.

Seguidamente ejecuta los siguientes comandos:

El archivo ftpupload.sh es un script presente en ciertos dispositivos IoT donde se guardan comandos que el usuario ha introducido a través de la GUI para la configuración FTP. El dispositivo ejecuta el script con privilegios, lo que resulta una vulnerabilidad, pues la entrada no está saneada y un atacante podría inyectar código. Además, borra cualquier rastro que pudiera haber generado a través de la eliminación del directorio /var/log.

 

La función de detección y eliminación de malware presente anteriormente en el sistema, tal y como se puede observar en la imagen, también está extraída del código fuente de Mirai.

 

Estructura de la función de Reaper

 

 

Estructura de la función de Mirai

 

Sin embargo, la verdadera novedad del malware es su método de difusión. A diferencia de la gran mayoría de las botnets actualmente en  funcionamiento, IotReaper no utiliza las credenciales por defecto como vía de infección, sino varias vulnerabilidades de dispositivos IoT publicadas este último año, permitiendo ampliar el espectro de las potenciales víctimas.

En cuanto a la obtención de las IP, el escaneo es menos agresivo y se realiza a través de TCP SYN a diferentes puertos a una IP a la vez, escaneado los siguientes puertos en el orden mostrado:

20480, 20736, 36895, 37151, 22528, 16671, 14340, 20992, 4135, 64288, 45090, 21248, 21504, 31775, 39455, 47115, 42254.

A continuación, vuelve a ejecutar TCP SYN sobre potenciales puertos de servicios web IoT:

80, 81, 82, 83, 84, 88, 1080, 3000, 3749, 8001, 8060, 8080, 8081, 8090, 8443, 8880, 10000.

Según los resultados obtenidos, el bot ejecuta una serie de exploits basados en el servicio HTTP. En la muestra analizada se han encontrado las siguientes cinco vulnerabilidades:

D-Link Devices – ‘hedwig.cgi’ Buffer Overflow in Cookie Header

La vulnerabillidad de la que hace uso se basa en la longitud del valor de la cookie, permitiendo a un atacante obtener el listado de usuarios y contraseñas del dispositivo D-Link 850L. Publicada el 8 de agosto de 2017.

 

 

Built-in web shell

Vulnerabilidad que permite el acceso a una shell a través del servicio web. Reaper la utiliza para obtener las credenciales de acceso al servicio Telnet.

 

 CVE-2017-8225

Las Wireless IP Camera (P2P) WIFICAM tienen por defecto configurados enlaces simbólicos en el directorio web hacia los directorios de configuración system.ini y system-b.ini, los cuales no están correctamente saneados, permitiendo de ese modo a un atacante bypasear la autenticación proporcionando un loginuser y un loginpas vacíos.

Esta vulnerabilidad fue publicada el 8 de marzo de 2017.

 

Ejecución remota de código en dispositivos VACRON

El recurso board.cgi no está correctamente saneado, permitiendo la cadena cmd como parámetro de entrada y, por ende, la ejecución remota de código.

Hasta el momento, Vacron no ha publicado ningún tipo de solución para evitar la explotación de la vulnerabilidad. Esta vulnerabilidad fue publicada el pasado 8 de octubre.

En la muestra hace uso de la vulnerabilidad para la obtención de las contraseñas del sistema vía /etc/passwd.

 

 

 

Ejemplo de la web shell de un dispositivo vulnerable

Ejecución Remota de Código de dispostivos NETGEAR ReadyNAS Surveillance

Ejecución remota de código a través del parámetro uploaddir. Del mismo modo que las mencionadas anteriormente, también ejecuta un cat del fichero /etc/passwd.

Una vez detectado un dispositivo vulnerable a la infección, realiza una conexión con el servidor de report, el cual tiene asociado el dominio weruuoqweiur.[]com vía HTTP, para remitir la dirección IP del dispositivo, así como la mac, el dispositivo, el puerto, las credenciales y el exploit efectivo.

Si accedemos al dominio asociado vía HTTP, obtenemos la siguiente visualización:

Contraseña incorrecta

A continuación, el servidor de report enviará la orden de infección a un tercer activo, el cual llevará a cabo la descarga del malware. Finalmente, el bot una vez infectado, se pondrá en contacto con el servidor de C2.

Accediendo a la dirección del C2 e.hl852[.]com, obtenemos la siguiente pantalla:

Aterrizaje 2
Por favor ingrese su contraseña:
Código de verificación: 6026

Así pues, podemos observar cómo IotReaper es una nueva botnet que va un paso más allá en la infección de dispositivos IoT, utilizando vulnerabilidades presentes en los dispositivos únicamente parcheables a través de la actualización del firmware, lo que requiere un conocimiento técnico muchas veces inalcanzable para el gran público.

Estaremos atento a las próximas novedades.

Adjuntamos la regla de yara para la identificación del malware Linux.IotReaper

 

Referencias:

  • http://blog.netlab.360.com/iot_reaper-a-rappid-spreading-new-iot-botnet-en/
  • https://blogs.securiteam.com/index.php/archives/3364
  • https://pierrekim.github.io/blog/2017-03-08-camera-goahead-0day.html
  • https://www.pentestpartners.com/blog/pwning-cctv-cameras/
  • https://blogs.securiteam.com/index.php/archives/3409
  • https://blogs.securiteam.com/index.php/archives/3445
  • http://seclists.org/bugtraq/2013/Jun/8
  • http://www.s3cur1ty.de/m1adv2013-004
  • http://www.s3cur1ty.de/m1adv2013-003
  • https://github.com/Trietptm-on-Security/AVTECH
  • http://roberto.greyhats.it/advisories/20130801-dlink-dir645.txt
  • https://securityboulevard.com/2017/10/why-the-world-is-under-the-spell-of-iot_reaper/
  • https://blog.radware.com/wp-content/uploads/2017/10/reaper-botnet-architecture-1-320×185.png
  • https://www.exploit-db.com/exploits/42956/

Ver también en:

Comments

  1. Joder. Da miedo. Un pequeño ejército para obtener las llaves.

  2. Excelente nota como siempre! Muy buen análisis, y sobre todo por la diversidad de vulnerabilidades y metodologías utilizadas.

  3. Muchas gracias!
    Como seguramente hayas podido observar, las botnets IoT van creciendo tanto en número como en sofisticación.
    Intentaremos seguirles la pista en la medida que nos sea posible ;) .

    Un saludo

  4. Siempre con contenido de calidad y de buen nivel, así da gusto :)

  5. Muchas gracias Kamal.

    Un saludo