189
Su invitación reza así :
A primeras horas de la madrugada de hoy, Bernardo Quintero (responsable de Hispasec, http://www.hispasec.com) enviaba un mensaje a Kriptópolis para avisarnos de una vulnerabilidad descubierta en WWWBoard, el ‘script’ que gobierna nuestro foro de debates y el de la mayoría de los web albergados en servidores UNIX (como -por ejemplo- casi todos los albergados en RapidSite, uno de los servicios de ‘hosting’ más utilizados y que da cabida a sitios tan populares como Kriptópolis o LaBrujula.Net). Por supuesto, no hará falta decir que el gesto de Bernardo le honra, ya que su intención no era otra que avisarnos de esa vulnerabilidad y darnos tiempo suficiente para corregirla. Una conducta muy razonable en un experto en seguridad. En realidad, se trata de una vulnerabilidad conocida desde hace tiempo (entre otras cosas por ser absolutamente obvia), pero que David E. Weins hab¡a reavivado en un mensaje dirigido el pasado d¡a 16 a BugTraq. Ante estos avisos, lo m s l¢gico hubiera sido corregir de inmediato el problema y a otra cosa. Pero -sorprendentemente- Kript¢polis ha optado por un comportamiento que nos parece m s creativo: primero le propusimos la idea al propio Bernardo, pero, +por qu’ negar a todos nuestros lectores esta excelente ocasi¢n de experimentar y aprender? Continoen leyendo… LA VULNERABILIDAD _________________ Es f cil de comprender. En cada foro de debate existe un administrador, que tiene la potestad de borrar mensajes, cerrar el debate, iniciar uno nuevo, etc, etc… L¢gicamente, todo ello se realiza a trav’s de un nombre de usuario y una contrase_a. WWWBoard incorpora un nombre de usuario y una contrase_a por defecto, lo que no constituye una buena idea, aunque la documentaci¢n del programa insiste en que debe cambiarse cuanto antes. No har falta decir que quien gestione uno de estos tableros y no haya cambiado la contrase_a s¡ que est en un evidente peligro. Para el resto de administradores (los que s¡ cambian la contrase_a por otra propia) la vulnerabilidad consiste en que el fichero que contiene nombre y contrase_a se almacena -por defecto- en un directorio accesible desde la Web. De esta forma, si usted va a su navegador y teclea: http://www.kriptopolis.com/wwwboard/passwd.txt obtendr instant neamente lo siguiente: SanMeliton:aedZZ2E8n8I6A donde «SanMeliton» es el nombre de usuario del administrador del foro de debate de Kript¢polis (+curioso nombre, verdad?) y «aedZZ2E8n8I6A» es su contrase_a (previamente cifrada con crypt, el cifrado est ndar de UNIX). L¢gicamente, esto ya constituye en s¡ mismo una vulnerabilidad, puesto que ese sensible fichero no deber¡a estar expuesto a cualquiera. La soluci¢n es sencilla: basta modificar el path de una variable del script ($passwd_file) para que apunte a un directorio protegido u oculto (ej: «/path/to/non-web/dir/brdpass.txt»), al que se habr movido el fichero previamente renombrado (passwd.txt -> brdpass.txt, en este ejemplo del propio Weins). VIAS DE ATAQUE ______________ Lo cierto es que (por unas u otras razones) Kript¢polis no ha realizado aon esa sencilla modificaci¢n, lo que nos coloca en una situaci¢n de vulnerabilidad potencial. ¨Por qu’ decimos «potencial»? porque aunque nuestro fichero sea accesible a cualquiera (de hecho, se lo hemos dado m s arriba, y no vamos a cambiarlo hasta dentro de unos d¡as, luego sabr por qu’…), aon queda cierto trabajo por hacer, antes de poder disfrutar de derechos de administrador sobre nuestro panel de debates. Es sencillo: tiene usted el nombre de usuario (la mitad de lo que necesita); ahora le resta la otra mitad: descifrar nuestra contrase_a. PISTAS ______ El propio Bernardo Quintero nos dice c¢mo se cifra la contrase_a: «Recordemos que la funci¢n crypt de Unix utiliza la cadena que se pasa de par metro como clave para realizar el cifrado de un bloque de 64 bits puestos a cero, y repite la operaci¢n 25 veces volviendo a cifrar el resultado. Este proceso nos da 64 bits que se representan con 11 caracteres, a los que hay que sumar lo que se conoce como «salt», que es un nomero de 12 bits que proviene del reloj del sistema, utilizado durante el proceso de cifrado. La «salt» es representada por dos caracteres, y se sitoa delante de la contrase_a cifrada, con lo que el resultado final ser una cadena de 13 caracteres, como por ejemplo: «GiBzoWz4Y6E1A».» Y por cierto: no se desanime; la opini¢n de otros expertos juega en este caso a su favor. Relea lo que dice Bruce Schneier sobre el algoritmo de cifrado Crypt de UNIX, y ver que no da un duro por nosotros: http://www.kriptopolis.com/criptograma/cg0016.html#6 Aon as¡, no pretendemos retarle a que queme su ordenador (o su cerebro) intentando revertir un proceso como este. Desafortunadamente (para nosotros 😉 hay m’todos de ataque mucho m s pr cticos, que dejan todo el esfuerzo a programas craqueadores de contrase_as. En nuestro delirio, incluso le propondremos un sitio desde donde puede descargar estas herramientas: http://www.vanhackez.com/h/superindex.html Simplemente vaya a la secci¢n «Password Crackers» y elija. Eso s¡: no nos pida que le proporcionemos -adem s- ayuda para utilizarlos y reventar nuestra propia contrase_a. Eso ser¡a demasiado pedir… Como oltima pista, perm¡tame decirle que nuestra contrase_a (de nueve caracteres) no es mala, aunque podr¡a haber sido mejor. (Por si acaso: mi perro se llama Yako y nac¡ el 1-8-59). ¥A JUGAR! _________ Por si aon no lo tiene claro, le estamos proponiendo un juego, consistente en craquear nuestra propia contrase_a y tomar el control de nuestro foro de debates: http://www.kriptopolis.com/wwwboard/wwwboard.html Eso tampoco significa que nos hayamos vuelto rematadamente locos. Nuestra locura es s¢lo temporal, y acabar el pr¢ximo domingo 26 a las 24 horas (00:00 del lunes 27), en que cambiaremos la contrase_a y protegeremos adecuadamente el nuevo fichero. Pero con independencia del aspecto lodico del asunto, nuestros objetivos son un poco m s serios: 1) Comprobar hasta qu’ punto protege una contrase_a de cierta calidad. 2) Comprobar si las alarmas ante ciertas vulnerabilidades se correponden siempre con los riesgos reales. No obstante, y como medida de precauci¢n, coincidimos en que los administradores de WWWBoard deber¡an adoptar cuanto antes las medidas de protecci¢n sugeridas, dado lo razonable de las mismas y su indudable eficacia ante contrase_as d’biles o inmodificadas tras la instalaci¢n. EL PREMIO _________ Como es l¢gico, todo reto tiene un premio. Nos hubiera gustado ser RSA Data Security y poder ofrecerles unos suculentos 10.000 d¢lares, pero nuestro presupuesto no da para tanto. No obstante, haremos un esfuerzo por darle un premio doble al ganador: 1) Por un lado, la satisfacci¢n ¡ntima de vencer y lograr el control («Show some control», como le gusta decir a la gente de eEye). Tambi’n tentaremos a la humana vanidad, publicando el nombre del vencedor en el pr¢ximo bolet¡n. 2) Ya, ya sabemos que las recompensas morales son insuficientes, as¡ que hemos pensado regalar al vencedor un premio modesto aunque valioso. Aprovechando la actualizaci¢n en estos d¡as de nuestro sistema operativo al nuevo Linux SuSE 6.2, regalaremos al vencedor nuestra versi¢n anterior. Se trata de Linux SuSE 5.2, en su caja original, con sus 4 CDs y el manual (en ingl’s) de casi 450 p ginas. Es una versi¢n que tiene algo m s de un a_o, por lo que no parece demasiado indicada para ordenadores mucho m s recientes, pero s¡ correr muy bien en el resto, aunque debido a la obsolescencia de algunos paquetes creemos que no deber¡a emplearse en funciones delicadas, sin realizar unas cuantas actualizaciones. En justa correspondencia, tan s¢lo demandamos un comportamiento noble por parte del posible ganador, comunic ndonos cuanto antes su hallazgo y la metodolog¡a concreta empleada. RECAPITULANDO… ________________ 1. Kript¢polis convoca oficialmente el reto de lograr controlar nuestro panel de debates, basado en el susceptible WWWBoard y con nuestro fichero de contrase_a todav¡a accesible. 2. El objetivo de este reto es comprobar si una contrase_a adecuada puede ser protecci¢n suficiente ante cierto tipo de vulnerabilidades. 3. El plazo finaliza el pr¢ximo domingo 26 de septiembre a las 12 de la noche. A partir de ese momento no podr n existir ganadores, ya que cambiaremos de contrase_a y la protegeremos adecuadamente. 4. El premio obtenido por el ganador consistir en publicar su nombre en el pr¢ximo bolet¡n y en el paquete original y completo de la distribuci¢n SuSE Linux 5.2. 5. Con independencia del resultado de nuestro reto y de su car cter lodico y experimental, la vulnerabilidad deber¡a ser tomada en serio por quienes administren foros de debate basados en WWWBoard. REFERENCIAS ___________ * Detalles de WWWBoard: http://www.worldwidemart.com/scripts/wwwboard.shtml * Mensaje original de David Weins en BugTraq: http://www.securityfocus.com/…./00000@puffer.quadrunner.com * La noticia en Hispasec: http://www.hispasec.com/unaaldia.asp?id=327