Cómo Hackear una Web 1. Introducción El objetivo de este documento es el dar a conocer posibles formas de alteración del contenido de una página WEB por personal no autorizado a ello (llamémoslo hacking). No me hago responsable del uso que se pueda hacer de este documento, pues su única finalidad es la de informar, y el que lo use para otra cosa lo hace bajo SU entera responsabilidad. ¿Queda claro?, si no te parece bien deja de leer y sal de esta página o borra el fichero de tu HD (disco duro para los muy novatos). Las cosas que se describen en este fichero no te aseguran éxito seguro, probablemente en la mayoría de los casos sólo te sirvan para empezar, teniendo que improvisar tú; pero prometo que este documento (a pesar de su simpleza) será mejor que los que he visto sobre el tema en Internet. El nivel de este documento es básico, pues no intenta enseñar todo en un día, más que nada saber como empezar a hacer algo digamos “útil”. Nota: A pesar de que podrás hacer todo lo que aquí pone desde Windows 95 o 98, te recomiendo que pruebes algún Linux (aunque sea el Trinux, que cabe en 3 disketes x´PPP (http://www.trinux.org/)). 2. Buscando Agujeros de Seguridad En particular queremos: ·
Historia de código: ¿De qué UNIX deriva un defecto en particular? Esto es importante para próximas referencias. Muy a menudo un vendedor sólo parchea partes del código, que será usado por otros para generar nuevas versiones y que por lo tanto conservarán el defecto.
·
Una referencia sólida: Saber quien chequea que bugs hay, en que sistema operativo y en que versiones, nos previene de realizar una doble tarea. Un buen comienzo sería hacer un listado de todos los binarios suid de las diferentes versiones de los sistemas operativos. Después intentar averiguar por que cada programa es suid ej: rcp es suid root ya que debe usar un puerto privilegiado para autentificar nombres de usuario. A menudo, código que nunca fue diseñado para ser suid, se hace suid, para resolver problemas de acceso a ficheros. Necesitamos crear una base de datos que sea capaz de "mirar" a pares y tríos de datos, específicamente: nombre del programa, suid, sgid, objeto accedido (por que es suid/sgid), versión del sistema operativo.
3. Obteniendo Passwords en el tipo A (USUARIO) Estos passwords de usuarios, generalmente no muy cualificados, se caracterizan por ser muy chorras, osea fáciles de recordar, repetidos con los passwords de otras cosas... así que si la persona propietaria de las WEB es alguien cercano a ti, puedes empezar probando algunas palabras que te puedan parecer "interesantes" (nombre del perro, mujer, hijos, fecha de nacimiento, lugar de residencia...), pero tampoco te mates mucho probando, pues esto es perder el tiempo muchas veces, así que si a los 10 o 12 intentos (según tu paciencia) no sale nada, mejor que dejes este método ;) Pero también sería una buena idea intentar sacar el password a la "víctima" a través de engaños y demás (lo llaman Ingenieria Social), por ejemplo puedes ligarte al tío/a y conseguir que te diga su password o también puedes intentar meterle un troyano tipo BO o NETBUS, que te permitirán sacarle las pass. Evidentemente no voy a contar aquí lo que le tienes que decir a la víctima para que te crea eso tendrás que currartelo tú un
pokito. Además, si conseguimos el fichero de passwords del servidor... ¡¡Estamos de suerte!! Pues generalmente los passwords de usuario son bastante fáciles de crackear... sólo elige el usuario y pon el John the Ripper a trabajar (el John es uno de los programas de cracking de ficheros PASSWD de UNIX más conocidos, puedes conseguirlo y obtener más información sobre crackeadores UNIX mira aquí). Pero probablemente el problema no sea el uso del John, sino el conseguir el fichero PASSWD, así que para eso vamos al siguiente apartado de este cursillo. 4. Obteniendo Passwords en el tipo B (root) Normalmente los administradores de los servidores no se chupan el dedo, asi que conseguir el fichero o el root directamente a través de un exploit (programa que se aprovecha de un BUG o agujero en el sistema operativo) no sea una tarea fácil. Lo primero que puedes intentar es pillar el passwd por el FTP y cuando eso no te haya funcionado probar el PHF (escribir la siguiente línea en tu navegador: http://www.host.com/cgi-bin/phf?Qalias=%0a/bin/cat%20/etc/passwd,
donde
host.com es el nombre del servidor), si el PHF funcionase (en estos tiempos ya suele estar parcheado en casi todos los servidores, asi que si no te sirve no te deprimas), tendrías en tu pantalla el fichero password, pero antes de alegrarte fíjate en algo, si aparece: root:*:0:0:Charlie &:/root:/bin/csh (un asterisco (*) detrás del nombre "root" y los dos puntos, también puede aparecer una equis (x)...), querrá decir que el fichero está shadow, osea que aparte del PASSWD necesitas otro archivo... el SHADOW, puedes intentar sacarlo con PHF cambiando la palabra password del final de la línea del PHF por la palabra shadow (para ser un poco más explicito puedes jugar con el PHF, cambiando de directorio... supongo que te estarás dando cuenta de cómo y si no, hay va una pista... "etc" es el nombre de un directorio).
Bueno, si lo anterior no ha funcionado, no te preocupes, aún tenemos más bazas que jugar. Si por cualquier casualidad de la vida posees una cuenta de usuario en el servidor, puedes intentar hacerte con el password (y con el shadow si hace falta) a través de telnet (prueba con cat o more, para ver si Dios es tu amigo y puedes editar los archivos) o, puedes enterarte del Sistema Operativo que usa el server, versión ... (entérate también de la versión del STMP, FTP ...) y vete a buscar exploits (ya explique antes lo que son exploits). Una vez que lo/s tengas pues… los pruebas!!! ¿Sino para que coño los has cojido?... para probarlos. Primero tendrás que compilarlos (ojo, hay exploits que no hay que compilar, pues simplemente consisten en teclear unos comandos o algo así... jeje, si tienes algo de experiencia seguro que recuerdas algunos viejos compañeros). Un buen sitio para pillar exploits es: http://www.rootshell.com/ ¿Y donde los compilo?, pues o el propio server (con gcc) o en otro con el mismo SO. Ojo no puedes compilar exploits para un SUN en un Linux Red Hat... Una vez que lo tengas compilado lo ejecutas... y a ¡jugar! Después de todo esto, y otro poco por tu parte seguramente ya tengas root en algún pequeño server para probar... (recuerda si no tienes mucha soltura... empieza por China o por allí lejotes... que si te pillan no se meterán mucho contigo ¿verdad?). 5. Precauciones Pues eso... procura no usar cuentas verdaderas para conectar (aunque piensa que si dejas huellas... los marrones serán pal dueño de la cuenta, y eso no esta bien..., así que cuidado con las cuentas de Internet robadas, sólo usar las que sepais que el dueño es un verdadero hijoputa o algo así... o mejor si usas servidores "intermedios" o borras las huellas con algún zapper (si lo usas sastamente como un exploit)... ahh, si te kurrelas un root y tal, pues deja algún sniffer y eso para recoger la cosecha... (más ke
na no desperdiciar kurro ya hecho). Por muy mal que lo explique yo, seguro que queda algo más "útil", y aquí está, espero que a alguien le sirva de algo... Copyright by Yomissmo. Si escribo esto es por el mero hecho de informar y para entretener, porque todo el mundo necesita tener unos conocimientos básicos sobre estos temas, para así tener una mayor defensa contra estos ataques.
http://visualinformatica.blogspot.com