jueves, enero 30, 2014

Gracias por tu password, router

Desde luego para llegar a ser un buen pentester es necesario estudiar y practicar mucho, muchísimo. Siempre le digo a mis amigos que estudiar informática es más difícil que estudiar medicina, algunos se ríen de mí pero yo tengo muy buenos argumentos que en otra oportunidad, con más bytes de tiempo disponible, comentaré.

Una de las tareas habituales que suelo hacer por las mañanas, aparte de leer el artículo diario de El lado del mal y otras muy recomendables páginas webs de seguridad, es revisar las nuevas vulnerabilidades y exploits que salen a diario. Cuando se publica un exploit remoto que afecta a algún servicio web suelo buscar software comprometido mediante hacking con buscadores, y si encuentro alguna empresa o dominio interesante suelo hacer un escaneo con nmap de varias de las direcciones IP públicas de su rango, por si encuentro algo más. Ya sabéis, sólo por saciar un poco la curiosidad.

Una de esas direcciones IP me resultó curiosa al dar servicio por el puerto 22, 23, 80 y 443. Puse la dirección IP en el navegador y me apareció sólo un formulario de usuario y password, sin más. Se me ocurrió entonces entrar por ssh o telnet. Y la sorpresa fue que cuando entré por telnet me encontré con este más que sugerente mensaje:

Figura 1: Mensaje de bienvenida que se obtiene en la conexion por telnet

¡Bum! Eran las 06.30 a.m. en ese momento y lo que parecía ser un router muy molón me estaba dando los buenos días con su password de telnet y de enable. Para un pentester es irresistible probar a meter la comilla en la clave. Así que... ya sabéis, probé, y efectivamente era la clave. Era un router de marca ADTRAN, una fabricante con aparentemente buenos equipos de redes a precios reducidos en comparación con Cisco. Lo tuve que dejar en ese momento porque tenía que asistir a una clase de Chema Alonso en el Máster en Seguridad Informática de la UEM.

Precisamente comentando con él esta curiosa situación, me pregunta: ¿Has buscado el mensaje en Shodan? Pues no lo había hecho, y al hacerlo me arroja nada más y nada menos que unos 10.000 resultados. Increíble.

Después de verificar manualmente algunos de ellos y constatar que también tenían la clave por defecto, se me ocurrió la idea de hacer una aplicación que automatizara la tarea; así que me puse manos a la obra y desarrollé una muy simple aplicación en C# que realiza el trabajo sucio y prueba masivamente conexiones telnet. Puedes descargarte TYFYP (Thank you for your password) massive telnet password tester con el código fuente.

Figura 2: TFYPR

Sólo recibe como parámetro un fichero txt con una lista de direcciones IP previamente obtenida mediante nmap o mediante Shodan. En una pequeña prueba de concepto que he realizado con unos 100 routers sacados de Shodan, he obtenido que al menos 20% de ellos son vulnerables por tener password por defecto. Pertenecen a empresas medianas, grandes e incluso hay alguna entidad financiera.

¿Por qué no son todos vulnerables? Pues porque el mensaje que aparece al conectarse vía telnet pertenece al “banner motd” del router, es decir el mensaje de bienvenida, que es estático y viene por defecto. Algunas personas cambian los usuarios y no cambian el mensaje por defecto, aunque a veces cometen errores como el que se ve en la siguiente imagen, donde crean nuevos usuarios pero no eliminan el acceso sin usuario y con la clave por defecto o tampoco establecen que la contraseña de los usuarios se almacene se forma segura.

Ante todo esto me pregunto si es necesario que los fabricantes pongan un mensaje tan obvio en el mensaje motd, considerando que el mensaje es estático y no es una verificación real.

Figura 3: el banner en el código es estático

¿Para qué pueden ser usados estos routers mal configurados? Uno de los usos obvios es usarlos como zombies para realizar ataques DDoS, pero existen otro tipo de posibilidades, como por ejemplo buscar desviar e interceptar el tráfico que pasa por ellos. No soy experto en redes a alto nivel  así que lo estudiaré y buscaré asesoría. ¡Acepto ayuda! Después de todo la informática es tan amplia como la medicina, ¿no? Un abrazo a todos.

Autor:
Daniel Ferreira @daniel0x00

13 comentarios:

Anónimo dijo...

excelente entrada, felicitaciones!


kn0wl3dg3 - underc0de team

know.0nix@gmail.com

Wally dijo...

Wow,gracias por compartir tu código! Soy muy noob en estos temas pero así se arranca :)

Anónimo dijo...

Muy buen artículo. Este tipo de despistes no los acabo de entender la verdad, con lo sencillo que es cambiar el password y ya puestos cerrar los puertos a internet...

Anónimo dijo...

Hola Chema!

De hecho puedes usar NetFlow para tomar muestras del trafico y redirigirlo a un servidor colector Netflow en cualquier punto de internet.

1.-Bajar una aplicacion como ntopng (server colector Netflow)y subirlo a internet

2.-Configurar el router para que envie paquetes Netflow a esa IP/puerto usando esta guia https://supportforums.adtran.com/docs/DOC-1642

3.- Profit!

Aprovecho para decirte que admiro mucho tu trabajo y blog.

Saludos

Guilletr0n dijo...

Gracias Chema por postear sobre el mundo de la configuración para networking es otra historia como lo es también la programación en informática. Efectivamente es recomendable cambiar el banner motd, aplicar ACL para no permitir acceso vía ssh/telnet desde internet pero si no es el caso, puedes configurar limitadores de intentos de login fallidos para evitar fuerza bruta. También es recomendable desactivar el acceso web, usar passwords de login incluso en el puerto consola si el equipo está en una zona común. Lo de Shodan es un canteo xD, viene bien para aprender. Antes de ponerse a configurar a cholón, intento comprender el significado de lo que se configura, nunca se para de aprender cosas nuevas.

Guilletr0n dijo...

Perdón, las gracias para Daniel que es el autor.

MarcosJGutierrez dijo...

Esta entrada me inspiró para contar una anécdota durante unas pruebas.
http://marcosjgutierrez.blogspot.com/2014/01/gracias-por-las-claves-admin-de-dominio.html

Saludos.

NeTTinG dijo...

Hola:

Si quieres información interesante sobre como interceptar "conexiones" o trafico a nivel Local-Internet, la serie de artículos de Vic_Thor "Y desde el Router... Que?" Puede serte de gran ayuda, las puedes encontrar en las tierras de Wadalbertia ;)
[http://www.wadalbertia.org/foro/viewforum.php?f=4&sid=530148a09573e02adfa6da232f4e6950]

Un saludo ;)

Anónimo dijo...

Ehmmm, es esto es legal?

Anónimo dijo...

Siempre le digo a mis amigos que estudiar informática es más difícil que estudiar medicina. Porque lo dices coméntanos

Anónimo dijo...

Muchas Gracias!

Anónimo dijo...

Muchas gracias si me pudieras decir una app para android que hiciera el mismo trabajo te lo agradeceria mucho.

Saludos.

Unknown dijo...

Daniel borro el repositorio...! Me gustaria ver el codigo, yo hice uno parecido en python.

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares