5 oct 2011

Admin generosos, Sessions, Hash Cracking y Moodle

 
Buenas que tal andan! Vengo verde como el gusanito! Ya que me picó Juanan a unirme al movimiento Flu! No dude y aquí estamos!!
Vuelvo a la carga de nuevo con mi querido Moodle... ¿qué decir si piensan que le cogí manía? Pues parece que me tocó ser el Risto Mejide de la red, en realidad se me da un toque en las "entradas", en las que a mi parecer, todo es una farsa que se han montado y Martin Dougiamas no podía librarse de ser criticado.
Resulta que mientras administraba uno de los servidores donde lo tengo instalado, me dio la curiosidad de acceder al famoso directorio de Moodledata, en mi sistema la tengo con otro nombre por eso de la seguridad, ya saben cada loco con su tema. Al acceder a la carpeta, encontramos cosas bastante interesantes, como pueden ser ficheros multimedia del interior de los cursos, datos de la cache o temporales. Entre ellos, llama la atención una carpeta llamada sessions, pues en dicha carpeta, se registran archivos con un patrón de serie en el inicio del nombre sess_ junto con una extensión aleatoria.
Si adentramos en estos ficheros, se almacenan en texto legible datos de suma importancia rescatados directamente de la base de datos, en el momento en que un usuario accede a la plataforma, se genera un lazo de unión entre estas sesiones y las Cookies. Indagando en las ristras, podemos llegar a visualizar información personal de los perfiles de usuario, como nombre, apellidos, lugar de residencia, fechas... el username y el password cifrado. El plato más apetecible son los dos últimos nombrados, pero para rematar la faena, los hashes no son más que un MD5 sin ninguna otra complicación, siendo un algoritmo más que vulnerado, que actualmente no dudan en incorporar incluso hasta en las nuevas versiones de Moodle.
Por otro lado Moodledata, en manos de un administrador poco generoso, no debería de ser pública, pero en el caso de que lo sea, al menos, no debería de haber dejado habilitado en Apache la capacidad de poder navegar entre directorios, pero en el remoto y no tan remoto caso de que se cumpliesen todos estos graves fallos de administración del servidor, que mínimo que ejecutar las tareas de cron para que limpie las sesiones de cuando Jesucristo perdió la gorra.
Se me ocurrió una estúpida idea de las mías, pues no todos los Moodle tienen porqué llamarse Moodle... pero ¿Y sessions? ¿alguien cambia el nombre? Hagamos una búsqueda avanzada entonces.
inurl:/sessions/ intext:"8:password"
¡Vaya una sorpresa! No era tan estúpida la idea como yo pensaba, pues la verdad 10.700 resultados, ya son unos pocos.
Si vamos eliminando probabilidades de despiste del administrador que lleva todo el tinglado, pongamos que es un hombre aplicado que ejecuta su cron como un desesperado, igualmente podemos esperar presionando F5 en la carpeta “Sessions”, hasta que dé la casualidad en la que un Admin, genere una Cookie y el archivo de sesión aparezca durante el tiempo que tarde en cerrarla para intentar robarle los hashes muajaja
Perdonen la risa malévola, pero me emocioné, pues no tardé en empezar a volcar archivos de sesiones a mi disco duro en busca de MD5 vulnerados.
Entre tantos, encontré hashes super-seguros compuestos por solo dígitos.
Otros tan ilógicos, como que alguien ponga de password su propio username.
Aprovechando la entrada, le envío un saludo a Zion3r, pues fue la persona que tubo el tiempo de codearse en python, un script para averiguar que tipo de algoritmo cifran los hashes con Hash ID.
Entre que busco con mi Notepad++ y coloreo, por otro lado Havij me muestra la password en texto plano, me daba tiempo a estudiar a ver si de la E.S.O conseguía una prueba de acceso para ser Ingeniero.
Por otro lado, me quedé con las ganas de acceder a otros sitios y aprender cosas nuevas, así como tengo un PC con apenas 8 Cores, se me ocurrió tirar de fuerza bruta con BarSF, especialmente diseñado para hashes MD5.
Sinceramente lo tuve arrancado no más de cinco minutos y claro... estas cosas tardan pero merecen la pena.
Si aun son de los que no tienen Moodle, no se preocupen... ¡pueden instalarse el suyo en cualquier servidor ajeno!
inurl:"/admin/index.php" intitle:installation
Son realmente despistados estos administradores que dejan todo a medias.
¡Espero que les haya resultado entretenida la entrada! Y no porque yo lo diga, ya piensen que Moodle puede llegar a ser un poco inseguro...
Saludos 4n4les! ;)
Podéis seguirme también en www.enelpc.com

6 comentarios:

  1. Bienvenido crack! me alegro que te dejases liar, un placer tenerte a bordo :)Con tu permiso, te copio la última búsqueda de Google Hacking para la próxima edición de La Biblia del Footprinting que estoy haciendo :Pun abrazo!

    ResponderEliminar
  2. 4n0 muy buena la entrada!, está interesante... Conoces moodle como la palma de tu mano xD!

    ResponderEliminar
  3. Genial! además de Moodle, PicsEngine también utiliza la misma sentencia para su instalación!Gracias por tan buen acogimiento!Un abrazo!

    ResponderEliminar
  4. Lo acabo de leer hace 3 horas en el blog de 4n0nym0us...

    ResponderEliminar
  5. Zipus es él... jejeje, justo el comentario encima del tuyo ;)

    ResponderEliminar
  6. Muy interesante la entrada y muy bien explicado. Pero tiene más que ver con la incapacidad del administrador que problemas específicos de Moodle. Como bien dices, poniendo el Moodledata en modo no público, cambiando la extensión de las sesiones (se puede desde administración) y manteniendo el cron activo (aparte de otras opciones), tenemos una instalación segura. Al menos igual de segura que otros sistemas. :)

    ResponderEliminar