Hackear millones de enrutadores por Craig Heffner

https://www.xtremecoders.org/wp-content/uploads/2010/07/router-hack.jpg
Despu√©s de haber asistido a los dos √ļltimos DEFCON, estoy muy emocionado de hablar en DEFCON 18 este a√Īo. En anticipaci√≥n a mi presentaci√≥n, “C√≥mo piratear millones de enrutadores”, pens√© que aprovechar√≠a esta oportunidad para responder algunas preguntas, ofrecer informaci√≥n de antecedentes y dar un breve avance sobre la charla.

La mayor√≠a de las personas asumen que debido a que no tienen habilitada la administraci√≥n remota en su enrutador, los atacantes externos no pueden acceder a la interfaz web administrativa de su enrutador. Sin embargo, para muchos enrutadores esto simplemente no es cierto; cualquier persona con un dominio registrado puede, de hecho, obtener acceso interactivo completo a la interfaz web interna del enrutador para explotar vulnerabilidades o iniciar sesi√≥n en el dispositivo (ya sea a trav√©s de la contrase√Īa predeterminada del enrutador o un ataque de fuerza bruta), en ese momento pueden ver configuraciones, cambiar configuraciones y generalmente hacer lo que quieran con el enrutador *. Sin embargo, este ataque no est√° restringido a la interfaz web principal; tambi√©n se puede usar para obtener acceso interactivo a servicios basados ‚Äč‚Äčen SOAP que se ejecutan en el enrutador, como Universal Plug-n-Play, que no requiere autenticaci√≥n alguna. Si bien este ataque no funciona contra todos los enrutadores, de treinta enrutadores diferentes probados, el ataque fue exitoso contra m√°s de la mitad de ellos, incluido el venerable WRT54G de Linksys, enrutadores ActionTec utilizados por clientes de Verizon FiOS y DSL, y muchos otros. Dado el n√ļmero y la popularidad de los enrutadores afectados, esto se traduce en muchos millones de enrutadores vulnerables implementados en todo el mundo, sin mencionar todos los otros enrutadores que a√ļn no se han probado.

El ataque es en realidad una combinaci√≥n de muchas cosas, desde navegadores y JavaScript hasta firewalls y pilas TCP / IP, pero en √ļltima instancia se centra en el enlace DNS *. Aunque el enlace DNS se ha discutido p√ļblicamente durante casi 15 a√Īos, muchas personas a√ļn no lo entienden completamente. He recibido varias consultas sobre la charla, y generalmente se reducen a dos preguntas b√°sicas:

1) ¬ŅQu√© es el enlace DNS?
2) ¬ŅQu√© tiene de especial la t√©cnica de reenlace de DNS presentada en esta charla?

Para comprender el enlace DNS, examinemos por qué se necesita el enlace DNS en primer lugar: la misma política de dominio. La misma política de dominio es una política de seguridad que aplica su navegador web. Esa política establece que si navega a https://www.evilhacker.com/, esa página de www.evilhacker.com puede indicarle a su navegador web que cargue contenido de otros sitios web (imágenes, JavaScript, CSS, iframes, etc. ), pero no puede ver las respuestas de esos sitios web ni acceder al contenido que devuelven esos sitios web. En otras palabras, JavaScript de www.evilhacker.com solo puede acceder al contenido de www.evilhacker.com porque ese contenido proviene del mismo dominio. Esto es algo bueno, ya que no querría que JavaScript de www.evilhacker.com realice XmlHttpRequests no autorizadas a sitios web dentro de su red local o en otro lugar.

El problema con esta política es que las computadoras no usan nombres de dominio para comunicarse entre sí; ellos usan direcciones IP. La idea detrás del enlace DNS es:

1) Haga que la víctima cargue JavaScript desde www.evilhacker.com.
2) Convenza al navegador de la víctima de que www.evilhacker.com se ha movido a una dirección IP diferente, por ejemplo, 192.168.1.1.
3) El JavaScript de Evil hacker es libre de interactuar con www.evilhacker.com, que el navegador ahora cree que se encuentra en 192.168.1.1.

La parte dif√≠cil en el ataque anterior es convencer al navegador de la v√≠ctima para que cambie las direcciones IP. Varios m√©todos para lograr esto se han presentado en el pasado, entonces, ¬Ņpor qu√© otra charla sobre los ataques de reenlace de DNS? Porque, simplemente, los ataques de enlace de DNS comunes que se han discutido en el pasado no son pr√°cticos o simplemente ya no funcionan:

o Establecer valores bajos de TTL en las respuestas de DNS ya no funciona debido a la fijación de DNS.
o Los ataques de anclaje anti-DNS solo funcionan en navegadores antiguos (IE6 /7, FF2.x), e incluso entonces, el ataque de reconfiguraci√≥n tarda entre 15 y 120 segundos en tener efecto seg√ļn el navegador de la v√≠ctima.
o La t√©cnica de “registro A m√ļltiple” ya no se puede utilizar para volver a vincular a direcciones IP internas (RFC1918).
o Adem√°s de los navegadores, los complementos de terceros como Flash y Java han implementado medidas anti-reenlace.
Gracias a varias caracter√≠sticas presentes en muchos enrutadores populares y sus sistemas operativos subyacentes *, nada de esto impedir√° el ataque discutido en esta charla, que se ha probado contra redes en vivo en escenarios del mundo real (con los permisos adecuados de los propietarios de la red, naturalmente). Las protecciones comunes de reenlazado anti-DNS que ofrecen servicios como dnsmasq, OpenDNS y NoScript no evitar√°n este ataque ni cambiar√°n la direcci√≥n IP interna del enrutador. La buena noticia es que tanto los proveedores como los usuarios finales pueden hacer arreglos para protegerse contra este ataque *. La mala noticia es que se trata de soluciones que deber√≠an haberse implementado hace a√Īos, pero que tanto los proveedores como los usuarios han ignorado.

Por supuesto, ¬Ņqu√© es una charla sin un lanzamiento de herramienta? Demostrar√© y lanzar√© una herramienta que automatiza todo el ataque y extiende la interfaz web interna del enrutador de destino a un sitio web externo donde el atacante puede acceder y navegar por las p√°ginas web del enrutador en tiempo real, como si estuviera sentado en el LAN mismo. Todo lo que necesita el atacante es un usuario dentro de la red de destino para navegar al sitio web del atacante. ¬°Es una herramienta de pirater√≠a de apuntar y hacer clic que es divertida para toda la familia!

* Para ser discutido con m√°s detalle en la charla!
Fuente: Def Con