viernes, 29 de noviembre de 2013

Gusanos, routers y javascript

Tradicionalmente, los creadores de malware se han enfocado allí donde les es más rentable invertir su tiempo y recursos: Una rápida y amplia difusión de sus creaciones sobre una plataforma con un gran número de usuarios sin conocimientos avanzados. El malware por excelencia sigue siendo el troyano creado para sistemas Windows, sobre todo el orientado a la banca. Decimos "sigue siendo" debido sobre todo a la constante aparición de muestras para dispositivos móviles, hasta tal punto, que en nuestro propio laboratorio de análisis de malware ya hay personal exclusivamente para analizarlas.

Al margen de toda esta vorágine, nos llama la atención aquel tipo de malware que no está enfocado al público en general. Al menos no directamente. En este caso particular se trata de un gusano descubierto por Symantec, denominado Linux.Darlloz.

Darlloz aprovecha una vulnerabilidad, con CVE-2012-1823, para ejecutar código arbitrario en el sistema. Se trata de un fallo bastante curioso en PHP cuando está configurado para funcionar como CGI, configuración bastante común en los servidores web que publican frontales de administración de dispositivos empotrados, por ejemplo y sobre todo routers.

Los routers son a menudo los grandes olvidados en cuanto a actualizaciones se refiere. Parafraseando cierta jerga militar es un dispositivo de "dispara y olvídalo". El usuario medio abre la caja, enchufa los cables, ve parpadear la luz verde y cuando comprueba en el navegador que aparece el logotipo de Google el router pasa a ser una caja con lucecitas detrás de algún mueble o rack.

El vector de entrada del gusano es pobre. Necesita que la interfaz web esté escuchando hacia fuera (Internet), intenta combinaciones de usuario password conocidas para acceder a cierta funcionalidad y por último lanza el exploit con la esperanza de que el objetivo no haya sido parcheado. No es de extrañar que la propia Symantec lo clasifique de propagación baja, lo cual evidentemente no quiere decir que no entrañe peligro. Cualquier router de hace unos años con su configuración inmaculada de fábrica sería el candidato perfecto.

Desde luego es bastante común ver routers con las credenciales de administración por defecto, pero no lo es tanto ver el servidor escuchando hacia la red. Aunque curiosamente se da el caso de que si que podríamos llegar a exponer el panel de administración de nuestro router a todo Internet sin darnos cuenta.

Según Alexandros Kapravelos (@kapravel), del proyecto Webawet, han observado un script malicioso que intenta acceder a direcciones locales de nuestra red interna. Concretamente se interesan precisamente por el router y su configuración, en este caso el script prueba con la clásica 192.168.1.1

En un primer movimiento, el script intenta verificar si puede tener acceso al router, por ejemplo solicitando una imagen:

http://admin:admin@192.168.1.1/images/logo.jpg

Nada le impide al script seguir probando combinaciones de usuario-password hasta dar con alguna típica por defecto. Si acierta, pasará de obtener un código HTTP 401 o 403 a un 200.

Seguidamente, si tiene éxito, prosigue ejecutando dos funciones que tienen por objeto la modificación de la configuración del router. ¿Y que vemos en una de ellas?:

http://192.168.1.1/userRpm/ManageControlRpm.htm?port=11&ip=0.0.0.0&Save=%C8%B7+%B6%A8

Esta última orden, en cierto router, cambiaría la dirección de escucha del servidor web a 0.0.0.0 o lo que es lo mismo: Internet (0.0.0.0 es la "ruta por defecto", equivale a escuchar en cualquier  dirección).

Evidentemente lo que pretendemos mostrar aquí no es que el atacante mande un enlace a la víctima para posteriormente indicarle al gusano que infecte el router. Lo que podemos aprender de todo esto es como podría orquestarse un ataque combinando pequeñas acciones en pasos muy concretos.

El router es un punto crítico en el sistema, por ahí pasan todas las comunicaciones de una red interna hacia el exterior. Es el dispositivo perfecto para persistir: No se suele actualizar, no se suele revisar y no lleva antivirus. Casi todos pasan por montar un sistema UNIX o derivado; lo que llevaría a los atacantes al trío por excelencia: explotar, escalar privilegios e instalar puerta trasera una vez obtenido el acceso.

Mediante un spear phishing podemos intentar colar un enlace a una página web a alguien de dentro para que ejecute dicho javascript, servir el panel de administración hacia Internet y explotarlo. Una vez con el control del router las posibilidades son infinitas. Y desde luego conociendo previamente el tipo de dispositivo el ataque puede refinarse al máximo.

¿Ha llamado alguien preguntado por el modelo de router últimamente?

Más información:

Linux Worm Targeting Hidden Devices

Attacking home routers via JavaScript


David García
Twitter: @dgn1729

No hay comentarios:

Publicar un comentario en la entrada