PDA

Ver la versión completa : Una inyección SQL que te dejará helado (CVE-2010-4284)



LUK
09-05-2011, 09:19
Todos conocemos ya lo que es una inyección de código SQL, su importancia, su cantidad de formas de utilización y explotación, así como el juego que puede dar en según que páginas web. Es una vulnerabilidad antigua, que se puede evitar fácilmente, pero que aún a día de hoy, es posible encontrarla en cualquier tipo de página o sitio, sea de una compañía grande o pequeña.

No sólo se puede utilizar para la extracción de información de una base de datos mediante un conjunto de consultas, también se pueden crear sentencias concretas que permitirían autenticarse en un formulario sin conocer ni usuario ni contraseña, o acceder como un usuario determinado sin necesidad de conocer su contraseña. Que sensación se le queda a uno en el cuerpo cuando, tras introducir el famoso "orunoigualauno" en los campos de un formulario de autenticación y encontrarte con un "Bienvenido al panel del control admin!", ¿verdad?.

Volvamos al motivo de este post, tras esta pequeña introducción: Hoy vamos a hablar de aires acondicionados, ahora que parece que en breve comenzará a apretar el calor by default del verano. Y vamos a hablar de inyecciones SQL en páginas atípicas, como son en paneles de control de dispositivos cerrados, por lo que la implantación de la solución resulta algo más compleja, sobretodo si se sabe que dicho dispositivo se ha implantado físicamente en más de 15 países.

Imaginemos la situación en una casa: si queremos apagar o encender el aire acondicionado, regularlo, controlarlo, hacer que automáticamente se encienda y apague en un determinado momento del día, así como subir o bajar la temperatura bajo demanda, recurrimos al mando a distancia típico. Pero, ¿y si nos encontramos en un edificio de X plantas de una oficina, colegio, universidad o cualquier otro tipo de organización, con un aparato de aire acondicionado por cada departamento, sección, clase o aula? El ir aparato por aparato, con su correspondiente mando, cambiando la configuración o estableciendo los valores de temperatura deseados, puede llegar a ser una tarea ardua. Solidaridad con lo pobres conserjes, por favor.

Para ello, existen dispositivos mediante los cuales es posible monitorizar y administrar un gran número de aparatos de aire acondicionado...cómodamente desde un navegador web...¡como a mi me gustan!

Uno de estos aparatos es el Integrated Management System DMS (http://www.samsung.com/au/systemsair/src/dvm_solution_integrated_ms.html) de la compañía Samsung, y tiene una pinta tal que así:


http://1.bp.blogspot.com/-YX1Q-jKBW20/TcbSDSkFe6I/AAAAAAAAAqo/N4cD1ZQiC68/s1600/dms_hardware.gif (http://1.bp.blogspot.com/-YX1Q-jKBW20/TcbSDSkFe6I/AAAAAAAAAqo/N4cD1ZQiC68/s1600/dms_hardware.gif)

El diagrama del sistema completo gestionado mediante el DMS es el siguiente:


http://2.bp.blogspot.com/-0SjQ8Kq9ITc/TcbSYwDjm3I/AAAAAAAAAqs/lk-nK9p5yc8/s400/dms-system.gif (http://2.bp.blogspot.com/-0SjQ8Kq9ITc/TcbSYwDjm3I/AAAAAAAAAqs/lk-nK9p5yc8/s1600/dms-system.gif)

Entre sus funciones destacan, como no, la gestión centralizada, establecimiento de límites de temperatura, monitorización por equipo, establecer temperaturas por hora (por ejemplo, definir que únicamente funcione con unas características determinadas en una franja horaria que podría ser el horario laboral), distribución de potencia por aparato (y así controlar el gasto energético)...y...la posibilidad de interactuar con el sistema de control de incendios...


http://1.bp.blogspot.com/-Dp4KAi2rHKQ/TcbttzmK9eI/AAAAAAAAArI/W2fNuXHpaQo/s320/dms_feature05.gif (http://1.bp.blogspot.com/-Dp4KAi2rHKQ/TcbttzmK9eI/AAAAAAAAArI/W2fNuXHpaQo/s1600/dms_feature05.gif)

Para acceder a tal conjunto de interesantes funcionalidades, únicamente es necesario acceder vía web al dispositivo a través del puerto 80 (como si se tratase de un router adsl normal), y nos encontraremos el siguiente formulario de login:

http://4.bp.blogspot.com/-oavACqzTzto/Tcbi0494YfI/AAAAAAAAAqw/-aSsN5ym2k0/s320/logindms001.jpg (http://4.bp.blogspot.com/-oavACqzTzto/Tcbi0494YfI/AAAAAAAAAqw/-aSsN5ym2k0/s1600/logindms001.jpg)

Sabéis el siguiente paso, tras lo contado en la introducción de este post ¿no?

http://2.bp.blogspot.com/-9mJYncxfxps/TcbjAtV3_FI/AAAAAAAAAq0/8e1_ie2mOYY/s320/logindms002.jpg (http://2.bp.blogspot.com/-9mJYncxfxps/TcbjAtV3_FI/AAAAAAAAAq0/8e1_ie2mOYY/s1600/logindms002.jpg)
¿Y qué ocurre?



http://3.bp.blogspot.com/-Lp0ZhIsRkng/Tcbo9OZcnZI/AAAAAAAAArE/rhOdAyOy8D0/s320/dmsmain.jpg (http://3.bp.blogspot.com/-Lp0ZhIsRkng/Tcbo9OZcnZI/AAAAAAAAArE/rhOdAyOy8D0/s1600/dmsmain.jpg)
Estado de todos los dispositivos conectados


http://1.bp.blogspot.com/-vxihwunkVhY/TcbuHlbwVsI/AAAAAAAAArM/Gs7skMRq8qk/s320/dmserror-history.jpg (http://1.bp.blogspot.com/-vxihwunkVhY/TcbuHlbwVsI/AAAAAAAAArM/Gs7skMRq8qk/s1600/dmserror-history.jpg)
Historial de error de todos los aparatos conectados


http://4.bp.blogspot.com/-2Vkj-kqhOEs/TcbuYFWUweI/AAAAAAAAArQ/5MnFkBHLGUs/s320/dms-schedule.jpg (http://4.bp.blogspot.com/-2Vkj-kqhOEs/TcbuYFWUweI/AAAAAAAAArQ/5MnFkBHLGUs/s1600/dms-schedule.jpg)
Estableciendo una "agenda" de acciones para los dispositivos conectados


La sentencia ejecutada en el formulario de autenticación, además de permitirnos entrar en el sistema, nos otorgará los privilegios del primer usuario que aparezca en la tabla de usuarios...¿os podéis imaginar cual puede ser en el siguiente caso? Accedamos al menú de gestión de usuarios del dispositivo:


http://3.bp.blogspot.com/-tJuLZIafwKc/TcbkxZVAqqI/AAAAAAAAAq8/-RgRc450OdA/s320/dms-usermanagement.jpg (http://3.bp.blogspot.com/-tJuLZIafwKc/TcbkxZVAqqI/AAAAAAAAAq8/-RgRc450OdA/s1600/dms-usermanagement.jpg)
Gestión de cuentas de usuario para acceso al dispositivo

Control total sobre el dispositivo con lo que ello conlleva, gracias al amplio abanico de funcionalidades que ofrece este dispositivo. No necesitamos saber usuarios y contraseñas por defecto.

Samsung, en coordinación con el ICS-CERT, ha publicado una actualización para esta vulnerabilidad, como se puede ver en el informe de seguridad correspondiente (http://www.kb.cert.org/vuls/id/236668). También podréis consultar la notificación de seguridad ICSA-11-069-01 [PDF (http://www.us-cert.gov/control_systems/pdf/ICSA-11-069-01.pdf)] publicada por el propio ICS-CERT. Se recomienda a los usuarios actualizar los sistemas mediante el parche proporcionado por el fabricante (http://www.dvmcare.com/SRM/dms/download.html).

Vulnerabilidad de inyección SQL que quizás no nos permita extraer información de una base de datos, pero como dice el título, podría dejar helado a tus compañeros de trabajo, aunque también te permitiría hacerles sudar. O quién sabe, si en un momento dado necesitáis una sala de reuniones con la temperatura adecuada para colgar unos buenos jamones...

Referencias:
[+] http://www.kb.cert.org/vuls/id/236668
[+] http://www.securityfocus.com/bid/47746
[+] http://www.us-cert.gov/control_systems/pdf/ICSA-11-069-01.pdf

Publicado por José A. Guasch en http://www.securitybydefault.com/2011/05/una-inyeccion-sql-que-te-dejara-helado.html

chewarrior
09-05-2011, 17:43
Que fuerte me va dar algo xd.