martes, agosto 07, 2007 2wire, Prodigy Infinitum y Anti-DNS Pinning Este fin de semana fue un fin de semana muy productivo. No en el sentido que hice lo que por obligación debería haber hecho (que es seguir estudiando para mi famoso examen), si no más bien en el sentido de haber por fin desarrollado un método que demuestra de manera trivial lo vulnerable que es el modem/ruteador(de ahora en adelante solamente modem) 2wire que tradicionalmente utilizamos para conectarnos a Internet (digo, sin contar el ataque de negación de servicio remoto que describí hace tiempo que más trivial que eso no puede ser) Hace un par de semanas (o fueron meses?) escribí un par de artículos que hablan a su vez de un par de vulnerabilidades que (re-)descubrió su seguro servidor (Esto hasta donde sé. Si no es así por favor corríganme para dar crédito a quien crédito se merezca) donde una de las cuales se refería a la "funcionalidad"/vulnerabilidad que tienen los modems 2wire que hace que con sólo accesar un URL (de ahora en adelante llamado "URL Mágico") se pueda obtener su configuración completa. Tan completa que viene hasta el nombre de usuario y la contraseña en claro que se utiliza para conectarse al servicio de Prodigy Infinitum así como la llave en claro utilizado por Wifi (ya sea WEP o WPA) si el modem también resulta ser inalámbrico (que digo, con lo vulnerable que es el WEP del 2wire ante aircrack-ng, esto último quizás no sea muy llamativo ;) Como lo comentaba en mi post, la descarga de esta configuración se puede hacer independientemente que el modem esté configurado con una contraseña de acceso que proteja a la consola de administración (la "famosa" MDC o Management and Diagnostics Console). La "buena noticia" (en un "entre-comillas" muy grande) en la fecha en que escribí dicho post (al menos hasta donde yo sabía en ese momento), era que este "URL Mágico" solamente se podía accesar si se tenía acceso al modem mediante su interfase interna, es decir, la que da del lado de la LAN. Hasta aquí todo más o menos bien (salvo para los negocios o empresas que usan el 2wire como método de conexión a Internet y que no tienen control sobre sus usuarios internos: cyber-cafes, escuelas, PYMEs, etc. Para ellos, esto de por sí ya es/era pésimo). Por el momento dejemos a un lado este tema del "URL mágico" del 2wire que ya volveremos a él en unos minutos . Desde hace tiempo he tenido mucho interés en ataques que intentan subvertir la "política del mismo origen" (SOP de sus siglas en inglés: Same Origin Policy) que implementan los navegadores más conocidos (Explorer, Firefox, Opera, Safari) y los plug-ins que corren sobre ellos (Flash, Java y demás). Para que se pueda tener mayor entendimiento a lo que esta política se refiere y cuál es el problema de seguridad que trata de solucionar (y por lo mismo el problema que voy a describir) le recomiendo que antes de seguir leyendo este post, busque información en Internet sobre este tema. Como siempre, Google es tu amigo. A principios de año, Kanatoko, del sitio Jumperz, desubrió que el Flash Versión 9 de Adobe era vulnerable ante un tipo de ataque que se conoce como Anti-DNS Pinning. Anti-DNS Pinning es una técnica que, haciendo uso de TTLs muy cortos en la respuesta de DNS para un dominio controlado por el atacante, se pueda violar la "política de mismo origen" de un browser o de uno de sus plug-ins. La técnica de utilizar el servicio de DNS bajo control de un atacante para violar la política de mismo origen, es una técnica relativamente vieja. El primer post que se conoce que habla de esta técnica es de más o menos 1996. Un buen artículo que habla de esta técnica a mayor detalle y de las implicaciones que existen cuando se explota existosamente lo pueden encontrar en el un artículo llamado DNS Rebinding [PDF] por Dan Bohen (entre otros) de la Universidad de Stanford. Durante las dos últimas semanas también, si usted mi querido lector se está metido en el tema de seguridad, muy seguramente habrá notado un incremento en la conversación de esta técnica en los sitios especializados. Esto principalmente se debe a que Dan Kaminsky (pa´l que le interese, uno de mis ídolos) hizo una presentación [PPT] en Blackhat en donde describe la manera de utilizar un navegador convencional para que funcione como proxy entre el atacante y la red interna del usuario del navegador, "bypasseando"el firewall que proteje la red interna de la externa (i.e. Internet) precisamente violentando la "política de mismo origen" utilizando (entro otras técnicas) la técnica de Anti-DNS pinning. Qué tiene que ver ésto con el 2wire y la vulnerabilidad del "URL mágico"? Haciendo uso de la técnica de Anti-DNS pinning (esto lo hice implementando una versión muy recortada de un servidor DNS utilizando NET::DNS para poder controlar el TTL de un dominio de mi propiedad y sí, todavía habemos dinosaurios que usamos perl) y re-utilizando una demo que desarrollo Kanatoko a principios del 2007, desarrollé una prueba de concepto en la que es posible obtener de manera remota la configuración de cualquier modem 2wire con el sólo hecho de visitar una página web que esté bajo mi control, esto es, si la prueba tiene éxito ;) Para esta prueba de concepto desarrollé una pequeña página web que al visitarla y después de descargar un objeto flash, al usuario se le presenta la configuración de su ruteador (más contraseñas y otros datos de valor). Lo interesante de esta prueba de concepto es que el resultado se le presenta al visitante una vez que ésta ha sido descargada al servidor remoto y no requiere más intervención de la víctima que el visitar una página web. Para el que todavía no le haya caido el veinte, esto es muy grave! Significa que cualquiera (toda la información requerida se puede obtener libremente desde Internet) puede desarrollar una herramienta que tenga como objeto los modems 2wire (en México al menos, no se si los ISPs de otros paises que utilicen 2wire tengan implementado la "funcionalidad" del "URL Mágico") y obtener información muy sensible. Es más, según mi experiencia (y corríganme nuevamente si estoy equivocado), la configuración por default de estos modems no trae protección de la consola de administración y de la misma manera en que con el "URL Mágico" se puede obtener la configuración del modem, también se podría, utilizando los URLs adecuados, modificar la configuración del mismo. Este último esquema presenta escenarios muy peligrosos. El primero que se me ocurre es la modificación en el modem de los servidores de DNS para redirigirlos a servidores DNS bajo el control de un atacante y poder implementar un ataque de MITM (Man in the Middle) donde todo el tráfico de entrada y salida de una LAN pase por un proxy que el atacante controle. Un escenario de este tipo, lamentablemente, es el "paraiso" de los que corren esquemas de phishing y demás (y un problema muy serio para los "buenos" usuarios de Internet). Para conocer las implicaciones que existen al poder comprometer de manera masiva ruteadores DSL les recomiendo un muy buen artículo que se llama Drive by pharming [PDF] de Markus Jacobsson de la Universidad de Indiana. En fin, hay mucho más que hablar y escribir sobre este tema. Pero ya es muy tarde y tengo mucho que estudiar. Si está interesado en hacer una prueba para ver cómo funciona la prueba de concepto que desarrollé, por favor siga la siguiente liga: Obtener la configuración del modem 2wire de manera remota Por favor, si hacen la prueba y ésta tiene éxito en base a su configuración, en la sección de comentarios mucho agradecería si me hicieran saber el modelo de modem 2wire con el cual hicieron la prueba, la versión del browser y la versión del Flash player. También si la prueba tuvo éxito o no. De antemano gracias. Del escritorio de Javier Liendo a las 8:30 PM 32 diatribas