24 agosto 2010

Análisis de la gestión de contraseñas en la UCM

En este pequeño artículo voy a exponer cómo se podría realizar un ataque contra los sistemas de recuperación de contraseñas de la UCM pudiendo llegar a obtener el control de la cuenta atacada.

La clave del ataque se encuentra en resetear la contraseña del objetivo, por lo que éste no podrá acceder a los servicios que utilicen dichos credenciales. Por lo tanto, cabe destacar que el acceso que se consigue no es transparente y seguramente tengamos limitado el intervalo de actuación.

¡Comencemos!

Disclaimer:
No me hago responsable del mal uso que pueda darse a esta información. En ningún momento la intención del artículo es el incitar a que se produzcan ataques sobre las cuentas de los alumnos de la UCM, más bien su finalidad es la de concienciar al alumno/universidad de lo fácilmente explotables que son estos sistemas si no se toma, por ambas partes, todas las medidas de seguridad.

1. Campus Virtual (https://cv.ucm.es/CampusVirtual/CambioPropia.do)

Para poder resetar la contraseña del Campus Virtual lo único que se nos pide, en realidad en un primer acercamiento, es el DNI del alumno.

La primera pregunta que me hago cuando me encuentro con éste tipo de sistemas es: ¿será vulnerable a un ataque por Fuerza Bruta (de ahora en adelante FB)? En este caso sí, lo cual posibilita la realización de un ataque aleatorio.

A pesar de lo "cantoso" que es un ataque de FB, podemos utilizarlo para realizar un filtrado de los DNIs pertenecientes a alumnos de la UCM y posteriormente realizar un ataque sobre sus cuentas (o utilizar dicha información para cualquier otro propósito).

¿Y si no queremos realizar un ataque de FB? En el caso de que sea un ataque dirigido hacia un objetivo específico todo se simplifica pues podríamos saber ya desde un principio su DNI o, en caso contrario, buscarlo en Google (CV, listas públicas, etc) o bien acudiendo al registro.

Otra opción podría ser el atacar a un grupo de personas (por ejemplo una clase, etc), y entonces podríamos sacar partido, p.e si se trata de enfermería (entre otras), a las listas que publica la UCM con los turnos de las prácticas en los hospitales universitarios, las cuales contienen nombres, apellidos y DNIs completos!

Bien, ya tenemos el DNI del objetivo pero aun queda un segundo paso, el desafío.

¿Qué es el desafío? Bueno pues no es más que la típica pregunta secreta de siempre. Es un buen sistema si la implementación es correcta y los usuarios están lo suficientemente concienciados como para no facilitar el proceso.

¿Implementación? Me refiero a que el sistema no sea vulnerable a un ataque por FB, por desgracia, es el caso. ¿Concienciación? La mayoría de las veces el ataque se reducirá a un listado de palabras muy común, ¿por qué? pues porque muchos usuarios no se toman en serio éste tipo de peticiones al realizar el registro y nos encontramos que la pregunta y la respuesta es la misma o que la pregunta es del tipo ¿mi fecha de nacimiento?, ¿el nombre de mi perro?, ¿mi color favorito?, etc, teniendo respuestas muy fáciles de sacar.

Por lo tanto, si unimos una mala implementación con unos usuarios que se toman poco en serio los desafíos, nos encontraremos con cuentas extremadamente vulnerables, siendo ambos los culpables.
En sí el sistema no es un desastre, a pesar de que esté mal implementado.

Como opinión personal decir que estos sistemas encargados de manejar reseteos de credenciales tan críticos, como los del Campus Virtual de la universidad, los eliminaría y obligaría a rellenar una instancia y evitando que se pueda hacer online (como hacen en la UAH).

¿Cómo se podría hacer sin realizar modificaciones en los datos que se piden? En primer lugar sería eliminar cualquier intento de FB restringiendo el número de peticiones por IP e implementando un sistema de bloqueo preventivo de la cuenta (ya sea un bloqueo temporal o que haya que acudir a la escuela/facultad a restablecer el servicio).

En segundo lugar sería evitar las dos fases del proceso (DNI y desafío) uniéndolas en uno mismo y en caso de error devolviendo un mensaje del tipo “DNI/Desafío incorrecto” evitando dar información de qué dato es el incorrecto. Por desgracia en este caso no se puede pues el desafío no es una pregunta establecida, sino personalizada por usuario, por lo que se obtiene tras validar el DNI.

2. Activar cuenta (https://idm.ucm.es/cgi-bin/idmActivarAuth.pl)

Éste ataque solo se puede llevar a cabo sobre una cuenta que no haya sido activada, por lo que los objetivos han de ser alumnos de nuevo ingreso, lo cual es perfecto para éstas fechas.

¿Cómo podemos obtener el DNI de un alumno de nuevo ingreso? El formulario de consulta de las notas de las pruebas de acceso es vulnerable a FB por lo que podemos realizar utilizar dicho servicio para realizar el filtrado. Para activar la cuenta se nos pide el DNI del alumno y el código de activación. Para obtener el DNI bastaría con utilizar cualquiera de los métodos anteriormente comentados. Con respecto al código de activación, si atendemos a la ayuda del sistema de recuperación de contraseña veremos que éste sigue una estructura fija dependiente de la diplomatura/licenciatura que eligió el alumno en primera opción y el código postal del mismo. La estructura en sí es la siguiente:

XXX‐XXXXX (CESTUDIO‐CPOSTAL).

Podemos utilizar las redes sociales para obtener ambos datos y reducir mucho el ataque de FB (pues nuevamente es vulnerable a este ataque).

Para la diplomatura podríamos tener suerte y que la haya añadido ya a su perfil de, por ejemplo, Tuenti. En tal caso, bastaría con utilizar los filtros del buscador para averiguarla (a pesar de tener el perfil privado hay demasiada información pública). Si no tenemos suerte deberíamos de añadir esta parte al ataque de FB (serían 103 combinaciones).

Para el código postal bastaría con delimitar su ciudad (al igual que anteriormente, es información accesible por cualquier miembro de la red social), localizar el identificador postal de la misma (se podría utilizar la página de Correos) y añadir al ataque 103 combinaciones de la terminación.

De ésta forma podemos ver que el código de activación podría quedar con una estructura similar a:

‐ Solo hemos obtenido la ciudad: XXX‐28XXX
‐ Hemos tenido suerte con la diplomatura/licenciatura: 050‐28XXX

Como hemos podido ver, el eslabón más débil es el código de activación siendo recomendable que éste no siguiera un patrón, sino que fuera aleatorio y se le entregara al futuro alumno (por ejemplo en la carta de admisión) o que éste tuviera que ir a recogerlo a la secretaría de su centro.

¡Hasta aquí todo! Ya para terminar...

A lo largo del artículo se ha explicado cómo podrían ser atacados los credenciales de la UCM. En muchos casos se ha explicado como atacar a un objetivo aleatorio para demostrar que las cuentas son vulnerables sin tener que conocer al alumno en cuestión. A pesar de esto, el tener un objetivo simplifica mucho el proceso, llegando a ser preocupante el tiempo que se tarda en conseguir acceso a su cuenta.

Como he dicho antes de empezar, no me hago responsable del uso que se haga de ésta información, la intención del artículo es concienciar a los usuarios y obligar a las universidades a prestar verdadera atención a todos los servicios que ofrecen y que éstos han de estar bien implementados pues los datos que manejan no son ninguna tontería.

(Artículo cortesía de Luis Delgado J @ldelgadoj )

17 comments :

Pedro Luis dijo...

Lo mejor es que para la activación de la cuenta sí se manda en la carta de admisión un código aleatorio. Pero claro, por si lo pierdes o no la recibes, puedes acceder con el código de estudios y el postal. Demasiado fácil.

Un saludo!

Adrián dijo...

Jeje, si esto fuera lo peor que la pasa a la seguridad de la UCM...
Comprometer todo el tráfico de la red te lleva lo que tardas en tomarte una caña. Lo peor es que les da lo mismo, puedes hablar con ellos y te dan respuestas como "no se puede arreglar"...

En cualquier caso, seguro que la mayoría de las universidades están igual o parecido.

Anónimo dijo...

Interesante articulo, pero el problema (uno de ellos) es la implementacion como bien has dicho. Quiero decir, el hecho de que tengas que ir a secretaria no te hace "invulnerable". En un master de una "uni" publica te hacian ir y luego no te pedian el DNI. No estoy de acuerdo en que el proceso deberia ser off-line. Lo unico, el proceso deberia estar correctamente implementado. Un saludo, Ricardo.

Luis dijo...

@Adrian
Efectivamente, la mayoría de las universidades son vulnerables.

Los próximos artículos serán sobre la UPM (universidad en la que estudio), el primero como acceso a una cuenta (alumno/personal) el cual fue reportado hace 2 meses y ¡aun no está arreglado!

@Anonimo
Es cierto que es más comodo que sea a través de un servicio online bien implementado, como captchas, bloqueos preventivos por número de peticiones, etc, pero, ¿cuántas veces se usan éste tipo de servicios? La mayoría de las veces nada o un par de veces a lo largo de la vida universitaria. Por eso, es más recomendable hacerlo en la secretaría de tu centro, eso sí, ¡que te pidan el DNI! :)

caic dijo...

El tema de la pregunta secreta viene de lejos... Recuerdo hace años, cuando Hotmail aún no pertenecía a Microsoft, era irrisorio. Por ejemplo:

Pregunta: color favorito?

Como no había límite de reintentos no tenías nada mas que probar colores.

XDD

Luis dijo...

La UCM ya se ha puesto en contacto conmigo y me han comunicado que ya están trabajando en ello.

Por cierto, con respecto al apartado del código de activación, son 10^3 combinaciones, no 103.

Anónimo dijo...

Y que hay de la accesbilidad?¿No está reñida con los captcha?

Anónimo dijo...

La falta de seguridad en las Universidades no es nuevo, por ejemplo en la UGR(Universidad de Granada) es igual o más fácil sacar el pass de cualquier usuario que no lo haya modificado. La única traba es conocer el pass original de cualquiera y su fecha de nacimiento. Digamos por ejemplo pass:1500 y fecha de nacimiento: 20 de Febrero. Para sacar el pass de algun nuevo usuario tan solo hay que:
introducir su dni y calcular el nuevo pass calculado de la siguiente forma, si el usuario ha nacido el 10 de Marzo.
el nuevo pass será = 1500+(dias diferencia)=1500+(10 dias marzo)+(8 dias febrero)=1518

Los dni de los nuevos alumnos están públicados al alcanze de todo el mundo en los tablones de anuncios de la UGR y la fecha de nacimiento es un dato que se puede encontrar fácilmente, siendo de esta forma muy sencillo acceder al acceso identificado...desde donde se puede cambiar la propia clave del correo electrónico... y asi etc etc...vaya todo un desastre.

Como en el articulo, no me hago responsable del uso que se haga de ésta información, la intención del comentario es concienciar a los usuarios y a las universidades.

Anónimo dijo...

Interesante, en la UAM tampoco se preocupan demasiado por la seguridad, al menos se puede atacar a fuerza Bruta el webmail, y la contraseña que dan por defecto tiene sólo 4 caracteres.

./Facepalm

Luis dijo...

@Anonimo (post anterior)
El proximo articulo, que se basa en el sistema de la UPM, tratará sobre fuerza bruta (recomiendo no hacer pruebas pues fué reportado y, a pesar de que no esté solucionado, está monitorizado para evitar ataques).

Mikeollie dijo...

Felicidades por el artículo, ya iba siendo hora que alguien se pronunciase sobre la seguridad en las universidades.

@Luis:
Yo también estudié en la upm, y reporté hace cosa de un año y medio la facilidad con la que podían obtenerse las cuentas de los alumnos en el cdc, con lo cual tenías acceso a las prácticas y demás material que guardábamos los alumnos en dichas cuentas.
Toda los ordenadores de la red de la upm estaban en la misma red ip,, y tenías acceso desde un ordenador (además saqué la pass de la cuenta de administrador de los pc del cdc de manera muy sencilla), y podías hacer sniffing saltando los switch por arp spoofing de todo, ordenadores de los profesores en cada departamento, impresoras, ordenadores de las aulas, ordenadores de las garitas, de secretaría... con todo el peligro que eso entrañaba, por ej muchos profesores conectaban con los pc de clase a sus ordenadores en los despachos a través del escritorio remoto, con lo cuál se me ocurre que acceder a estos últimos no era una tárea muy difícil.

Desde que reporté todo esto cambiaron algunas cosas, y separaron algunas redes en el nivel 3.

No investigué mucho, al final me propuse investigar las pantallas publicitarias digitales que habían instalado por todas partes conectadas a través de la wifi a la que tenemos acceso todos los alumnos, a ver si podía de alguna manera meter imágenes y publicarlo en mi blog, pero ahora estoy con el curro y no tengo tiempo de nada.

Ah, y en la biblioteca nueva que siempre está llena se puede hacer un sniffing pasivo en la wifi y sacar todo aquello que no va bajo protocolos que cifran lo transportado como son cookies de sesión del tuenti, de facebook, contraseñas que van bajo autentificación http, conversaciones del msn... Yo nunca me conectó allí por si las moscas las verdad.
Un saludo

Luis dijo...

@Mikeollie
Muy interesante todo lo que comentas! Con respecto a las redes, actualmente ya están separadas.
Hace meses reporté como obtener acceso a las pantallas publicitarias y modificar su contenido (estuve a punto de poner los partidos de España del mundia pero sabrían quién era el responsable xD). Si quieres mandame por twitter tu correo y te comento.
Con respecto a la WIFI de la biblioteca, es un problema de toda la UPM, y es por culpa de la implementacion de WIFI-UPM (efectivamente, no hace falta ni estar autenticado). Por ejemplo en ETSIT-WLAN no se puede llevar a cabo la monitorización.

Mikeollie dijo...

@Luis:
Claro, la WIFI-UPM es abierta, la autentificación se hace a través de un portal cautivo, así que las tramas de datos no van cifradas y cualquiera (alumno de la upm o no) puede registrar el tráfico.
Por lo que veo hay más alumnos de la upm que se dedican a experimentar en materia de seguridad utilizando la uni como experimento, yo descubrí muchas cosas pero nunca se me ocurriría aprovecharlas con fines ilícitos, pero lo mismo otros sí lo han hecho y han aprobado algunas asignaturas sin tener ni idea de éstas. Vectores de ataque fáciles de llevar a cabo para esto último los había (ahora ya no se que cambios habrán introducido).

Te mando mi correo por twitter entonces! Un saludo y felicidades por el artículo, estaré atento a los siguientes!.

Anónimo dijo...

Gracias por la info, la verdad tambien pienso que la seguridad en las universidades, y en los intis por los que he pasado son lamentables.

Mi profesor de redes se fia del switch y dice que yo nunca jamas recibire un paquete de su PC, no sabe lo que es un MitM. En la red de mi instituto soy dios, controlo trafico de compañeros, profesores, secretaria, otros departamentos, incluso tengo localizados a los gorrones que usan la red del insti ... no hay subredes, ni filtros, ni firewall, ni un proxy, ni restriccion de nada.

Reportaré la situacion y les ayudare a aumentar la seguridad de mi instituto, pero ya cuando me valla con el titulo, por ahora me conviene mas seguir robando examenes imprimidos por una impresora en red.

Les saluda un futuro White Hat.

rusty73 dijo...

@Luis ¿Nos conocemos? Te acabo de agregar al twitter y veo que tienes a ariel de común XD.

Espero que reportes el del sistema de asignacion de contraseñas que tenia la UPM hara como unos 5 años, que ni fuerza bruta ni nada, con un poco de busqueda la tenias.

Luis dijo...

@rusty73 Estoy con ariel en la Rama de estudiantes del IEEE - UPM

Con respecto a la asignación, comentaré algo en el artículo :)

deltonos77 dijo...

Para el Anónimo de la UGR:

Lo de la UGR es de chiste, ahora se han preocupado despues de tanto tiempo. El sistema de token para la VPN y el wifi es algo ridiculo, que hace circulando el /etc/passwd (Si, parece que el admin el shadow no lo conoce...) de VELETA para autenticar a todos los users? UpS! Esto me recuerda a los tiempos de "/bin/joseping"