Web Crawling y Fuzzed Pages

download Web Crawling y Fuzzed Pages

of 21

Transcript of Web Crawling y Fuzzed Pages

Web Crawling y Fuzzed PagesSeguridad InformticaAutor: Eduardo Bayn Cascajo Profesor: Santiago Blanco 13/11/2011

Eduardo Bayn Cascajo

Seguridad Informtica

INTRODUCCIN QU ES WEB CRAWLING? FUZZED PAGES O FUEZZEAR PGINAS PROGRAMAS A UTILIZAR BURPSUITE DIRBUSTER PRCTICA OBSERVACIONES BIBLIOGRAFA Y WEBGRAFA

3 3 3 5 5 5 10 20 21

Pgina 2 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

IntroduccinQu es web crawling?O rastreador web es un programa automatizado relativamente simple, como un script, que explora metdicamente o "se arrastra" a travs de pginas de Internet para crear un ndice de los datos que estn buscando. El web crawling tiene diferentes usos. Probablemente el ms comn sea el asociado con el trmino relacionado a los motores de bsqueda. Los motores de bsqueda utilizan rastreadores web para recopilar informacin sobre lo que est disponible en las pginas web pblicas. Su propsito principal es recoger datos de manera que cuando los internautas introducen un trmino de bsqueda en el sitio, se les pueda proporcionar rpidamente con sitios web de inters. Es un buen mtodo para recopilar datos sobre un gran nmero de pginas web que continuamente se aaden cada da, la informacin a la que disponemos est cambiando constantemente. [1]

Fuzzed Pages o Fuezzear PginasSe llama fuzzing a las diferentes tcnicas de testeo de software capaces de generar y enviar datos secuenciales o aleatorios a una o varias reas o puntos de una aplicacin, con el objeto de detectar defectos o vulnerabilidades existentes en el software auditado. Es utilizado como complemento a las prcticas habituales de chequeo de software, ya que proporcionan cobertura a fallos de datos y regiones de cdigo no testados, gracias a la combinacin del poder de la aleatoriedad y ataques heursticos entre otros. El fuzzing es usado por compaas de software y proyectos open source para mejorar la calidad del software, por investigadores de seguridad para descubrir y publicar vulnerabilidades, por auditores informticos para analizar sistemas, y, en ltima instancia, por delincuentes para encontrar agujeros en sistemas y explotarlos de forma secreta. A las herramientas semiautomticas que utilizan esta tcnica se las llaman fuzzers. Son semiautomticas porque pese a ser un proceso automatizado de envo de datos, se necesita de una persona que analice los resultados y verifique las posibles vulnerabilidades encontradas. En general, la mayora de los fuzzers intentan encontrar vulnerabilidades del tipo buffer overflow, integer overflow, format string o condiciones de carrera, aunque tambin pueden abarcar otros tipos de errores, como inyecciones sql, por ejemplo.Pgina 3 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

El funcionamiento de los fuzzers suele componerse de las siguientes etapas: Obtencin de datos: Dependiendo del tipo de fuzzing deseado y segn la implementacin de la herramienta, se sostendrn los datos a enviar de una lista esttica almacenada en archivos o en el propio cdigo fuente. Este proceso se puede realizar nicamente al inicio de la sesin o justo antes de cada envo.

Envo de datos: Una vez disponemos de la informacin que se desea enviar a la aplicacin objetivo, se realizar el proceso, dependiendo, si se hace a travs de una red informtica o de si el chequeo se realizar de manera local.

Anlisis: Una vez realizado el envo, slo nos quedar esperar los resultados del fuzzing. Debemos estar alerta y atentos a qu tipo de respuesta se nos devuelve.

Existen diferentes Tcnicas de Fuzzing dependiendo de los datos que se enven al objetivo. Se suelen englobar en dos grupos: Mutacin: Es un mtodo bastante rpido y efectivo, y consiste en partir de una entrada vlida y realizar ciertas mutaciones de esos datos, con la intencin de que sigan siendo vlidas para la aplicacin pero los suficientemente inesperadas para lograr el objetivo Generacin de datos: Dentro de este, dependiendo de la vulnerabilidad que se busque, habr otras formas de analizarlo. Es ms lento que la mutacin porque se deben crear los datos antes de enviarlos, pero puede descubrir fallos que el otro mtodo obviaba.

Dependiendo la forma de generar los datos, encontramos dos subgrupos: Por un lado los recursivos (que se obtienen de la iteracin sobre un alfabeto dado o repeticiones de caracteres). Este primer subgrupo lo podemos dividir en permutacin y repeticin. La permutacin busca datos dependiendo de las posibilidades que da, por ejemplo el alfabeto hexadecimal y la repeticin se usa generalmente para la bsqueda de fallos de tipo buffer overflow.

Pgina 4 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

El otro subgrupo es el que hace uso de la sustitucin, se centra en reemplazar cierta parte de una entrada valida por los elemento de un vector de fuzzing (lista de posibles test a realizar). [2]

Programas a utilizarEstas dos tcnicas explicadas las vamos a intentar llevar a cabo con estos dos programas: Burpsuite: Herramienta que ya hemos utilizado y explicada, pero que nos sirva para realizar tests de intrusin en aplicaciones Web, permitiendo combinar tcnicas manuales y automticas para enumerar, analizar, atacar y explotar aplicaciones Web. Para ms informacin sobre BurpSuite ver este documento. DirBuster: Esta ser nuestra herramienta principal, es una herramienta desarrollada en JAVA que nos permite encontrar aquellos directorios y archivos que se encuentren en los servidores WEB y que no tengan los permisos asignados correctamente, haciendo uso de la tcnica fuerza bruta o fuzzer. Aunque esta tcnica usada por DirBuster no es nueva hay algunas caractersticas que hacen a DirBuster una interesante herramienta: Multiproceso (pruebas de hasta 6000 peticiones por segundo) Soporte https. Capaz de escanear ms profundo en los directorios que encuentre. Tambin puede trabajar en modo de fuerza bruta con un diccionario de encabezados HTTP personalizado. Anlisis de contenido cuando las solicitudes no vienen con una respuesta de 200 de cabecera. Extensin de archivo personalizado La configuracin de rendimiento puede ser modificada mientras el programa se est ejecutando. Bsica, implcita y admite la autenticacin NTLM Posee de una buena interfaz GUI.[3] Yo desde mi equipo con Backtrack5 (que ser desde el que realicemos estas pruebas con el programa) ya lo tenemos instalado y preparado para ser usado, viene incluido en la distribucin.

Pgina 5 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

De no ser as, podemos descargarlo aqu pulsaremos sobre la pestaa y escogemos la descarga deseada. Decir que este programa corre tambin en Windows y tiene su propio instalador. Si nos descargamos el Windows Installer simplemente hacemos doble clic sobre el .exe y seguimos los pasos de instalacin. Si lo deseamos ejecutar desde un equipo Linux lo descomprimiremos y nos cambiaremos de directorio activo a la carpeta del programa y o ejecutaremos desde el terminal con: java -jar DirBuster-0.12.jar (es probable que necesitemos privilegios de administrador) Si tenemos una distribucin de Backtrack5 como yo, tenemos dos posibilidades para arrancar el programa: 1. Desde el modo grfico en:

2. Por lnea de comandos en un terminal: Lo primero ser buscar el programa a ver en que carpeta se encuentra: y de los resultados que nos muestre, nos cambiaremos de directorio activo a este: con Una vez all podemos hacer un ls para ver que tiene la carpeta, (contiene el ejecutador del programa, los diccionarios que usaremos, etc.) pero para arrancar el programa debemos ejecutar:

Tras esta operacin el programa se abrir y podemos utilizarlo correctamente:

Pgina 6 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Antes de comenzar a usar DirBuster en nuestra prctica, voy a explicar un poco en qu consiste el programa y como se utiliza: Una vez arrancado esta es nuestra pantalla principal, en la que debemos especificar algunos parmetros obligatorios y otros los dejaremos por defecto:

1. Men superior de opciones del programa, podemos guardar proyectos, abrir nuevos, cambiar alguna opciones de bsqueda y conseguir informacin sobre el software instalado en el equipo. 2. Aqu especificaremos nuestro objetivo, como vemos podemos poner hasta el puerto por el que se realizar el ataque, si lo sabemos. Para este punto ser para el que combinemos DirBuster con Burpsuite. 3. Debemos elegir el tipo de escaneo que vamos a realizar entre listar los resultados basndose en la fuerza bruta o realizar fuerza bruta directamente. 4. Aqu tenemos dos opciones: Si en el punto 3 hemos marcado List based brute force debemos elegir el diccionario del que recoger los datos para realizar el ataque. Pulsando sobre podemos ver los archivos que contiene el programa para usar y al pulsar sobre elegimos el que nosotros queramos:

Pgina 7 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Informacin que nos ofrece List info:

Al pulsar sobre Browse elegimos el que queramos de los anteriores:

Pgina 8 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Pero si en el punto anterior hemos seleccionado Pure brute force nuestra pantalla habilitar la opcin Char set y deshabilitar la anterior sobre eleccin de fichero.

Char set (conjunto de caracteres) nos ofrece una pestaa que podemos expandir para elegir los que deseemos para realizar nuestro ataque de pura fuerza bruta.

5. Volvemos a tener que escoger entre dos opciones: Si marcamos Standar Start Point debemos especificar el directorio a partir el cual se empezar a rastrear o escanear. Si no sabemos cmo est formado el sistema de archivos que queremos atacar podemos especificar que busque desde raz (/). Por ltimo podemos especificar las extensiones que queremos que nos busque. Por defecto viene solo php pero podemos aadir tantas como queramos. Tambin es posible que eso ralentice nuestro escaneos. O si marcamos URL Fuzz se nos desmarcaran las opciones anteriores y se nos habilitar un cuadro de texto en el que podemos especificar la direccin que deseamos forzar. Una vez realizados estos pasos ya estamos preparados para utilizar el programa sobre nuestro objetivo, pulsando sobre .

Pgina 9 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

PrcticaNuestra prctica va a consistir en atacar un servidor web que tenemos en otra mquina virtual con Backtrack4 instalado, arrancaremos el servidor web y navegaremos desde nuestro Backtrack5 sobre l para ver que pginas web nos ofrece. La direccin IP de la maquina objetivo ser la 192.168.1.5. Iniciaremos un navegador web y en la URL especificamos le IP de la mquina destino:

Como podemos ver el servidor web est funcionando y si pulsamos sobre here iremos a la pgina que nos ofrece el servidor:

Esta ser la pgina de la que intentaremos explotar las vulnerabilidades e intentaremos, por los mtodos que nos ofrece DirBuster, encontrar pginas o subpginas ocultas en las que podamos encontrar informacin privada, entre otras cosas.

Pgina 10 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Podramos comenzar nuestra prctica iniciando DirBuster y especificando como URL la que nos ha mostrado arriba, en la ltima imagen, el navegador web, pero lo que haremos ser iniciar BurpSuite para ver que cabeceras tiene el servidor web y ver si podemos averiguar y atacar el puerto en concreto. Entonces, arrancamos BurpSuite y navegamos por http://192.168.1.5/foophones/ para ver las cabeceras y la informacin que nos da, a ver si algo lo podemos aprovechar:

Lo ms aprovechable que tenemos para usar ahora DirBuster es el puerto 80. Arrancaremos DirBuster. Vamos a realizar la prctica de los dos modos que tenemos, usando alguno de los diccionarios y por fuerza bruta pura. Primero vamos a elegir alguno de los diccionarios de palabras, el que ms nos interese, recuerdo que si pulsamos sobre List Info podremos ver algo ms de informacin sobre cada uno de stos. Yo para esta primera bsqueda de pginas y directorios ocultos elegir este: la carga del programa y el escaneo va a ser muy lento y tardar bastante, no lo he dicho antes, pero en la pantalla principal del programa podemos modificar el numero de bsquedas que realizar por segundo, si tenemos un buen hardware podemos aumentarlo, si no el equipo se ralentizar de manera considerable mientras se realiza el escaneo.

Pgina 11 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Dicho todo lo anterior, el primer escaneo que realizaremos tendr las siguientes caractersticas:

Pulsamos sobre Start y comenzar el programa a escanear:

Pgina 12 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Como vemos en la imagen anterior, el escaneo va a durar ms de 14 horas, por eso es necesario, como se coment anteriormente, aumentar la velocidad de consultas por segundo. En esta misma pgina, mientras realiza el escaneo, ya podemos ver diferentes ficheros y directorios que encuentra del objetivo, adems del tipo de respuesta que nos ofrece cada uno de los directorios o ficheros encontrados. Podemos observar que esta pantalla tiene dos pestaas List View es la actual en la que nos encontramos y Tree View nos va formando una estructura en rbol de todos los ficheros y directorios que encuentra realizando el escaneo:

Es recomendable esperar a que termine el escaneo, si vemos que se ralentiza mucho y tenemos prisa porque termine, podemos pararlo y cambiar el diccionario a usar, pero lo mejor es realizar un escaneo intensos para tener unos mejores resultados. Voy a parar el escaneo completo que haba puesto con el fichero de texto que eleg por que la carga del programa es muy lenta y la previsin de escaneo subi a 14 das y repetir los pasos anteriores pero eligiendo el fichero: a ver qu informacin nos encuentra y en cuanto tiempo:

Pgina 13 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Si nos fijamos, esta vez he cambiado el nmero de consultas que realizar y el diccionario donde buscar, el tiempo de bsqueda ha bajado considerablemente, esta vez a 30 minutos. Esperaremos a que termine para analizar los resultados.

Pgina 14 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Si por algn motivo, no queremos que se termine el anlisis, podemos pararlo pulsando sobre Stop y guardar un reporte sobre los datos obtenidos haciendo clic en Report. Del mismo modo, a la derecha podemos ir viendo las pginas que estn siendo analizadas, las que ya lo han sido o las que estn en espera, mientras el programa se ejecuta podemos hace clic con el botn derecho del ratn sobre alguna de ellas para ver si est accesible. Esto es lo que muestra uno de los reportes guardados, cuando se llevaba ms o menos una hora de anlisis con uno de los diccionarios grandes. Al almacenar el reporte nos pide una ruta donde guardarlo, yo lo hice en /home:

El reporte que se me ha creado es muy extenso, as que voy a ir mostrando las partes que tiene y la informacin que podemos sonsacar: Primero vemos los datos de cuando lo hemos realizado, los datos del programa y cul ha sido el objetivo:

A continuacin nos muestra las respuestas que ha habido tanto en Directorios como en Ficheros. Directorios con respuesta 200, es decir, que ha sido correcta y se tiene acceso

Pgina 15 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Directorios con respuesta 302, es decir que el directorio ha sido movido temporalmente.

Directorios con respuesta 403, que significa que tenemos el acceso prohibido

Ficheros con respuesta 301 que quiere decir que ha sido movido permanentemente

Fichero con respuesta 200 a los que la conexin ha sido correct.

Pgina 16 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Ficheros con respuesta 302 que como ya he dicho, han sido movido temporalmente.

Por ltimo tenemos los errores encontrados en el testeo

Este es el ms extenso, que va desde la lnea 167 hasta el final del documento, mas de 18000 lneas.

Pgina 17 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Vamos a probar el otro modo de escaneo, usando Pure Brute Force:

El destino de nuestros ataques ser el mismo, como se ve en la imagen hemos seleccionado que se realizar un ataque por fuerza bruta y el conjunto de caracteres que escogeremos. Igual que antes, podemos especificar las extensiones que deseemos y el directorio sobre el que empezar a buscar. Pulsamos sobre Start para que comience el escaneo. Si el otro escaneo poda ser lento, este lo normal es que lo sea ms. Estamos intentando acceder por fuerza bruta acceder a algn directorio que est desprotegido y que en el acceso con la web normal no est enlazado. Al igual que antes, se nos irn mostrando todas las carpetas y ficheros estn, disponibles o no, y en la pestaa Tree View la vista en rbol de lo que va encontrando. Tambin podemos pinchar con el botn derecho del ratn sobre alguno de los directorios que ha sido correcta la conexin y mirar a ver si podemos acceder, por ejemplo:

Todas esas lneas que vemos en rojo son intentos que ha habido segn el conjunto de caracteres obtenido.Pgina 18 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Al abrir el /doc que nos ha encontrado en el navegador nos muestra que no tenemos permiso para acceder a ese sitio:

Dado, que nuestro objetivo es atacar la pgina Foophones, vamos a cambiar en la bsqueda el directorio sobre el que empezar a /foophones en vez de solo a / que la bsqueda es mucho ms global. El programa empieza a buscar en /foophones/ con el juego de caracteres que hayamos elegido:

Bueno, tras ms de 1 hora, solo ha encontrado este directorio y la respuesta que nos ofrece es de tipo 302 que nos indica que ha sido movido temporalmente. Lo dejar corriendo toda la noche a ver si la cosa cambia y tenemos ms suerte, pero se puede observar el tiempo que queda para finalizar

Pgina 19 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

ObservacionesEs un buen programa para realizar ataques de fuerza bruta y ver esos archivos y ficheros que no vemos al acceder normalmente a una pgina. Quizs, el mayor pero que tiene, es que los anlisis cuando elegimos un diccionario demasiado extenso o muchas extensiones, son demasiado lentos y muchas veces se paran sin terminar.

Pgina 20 de 21

Eduardo Bayn Cascajo

Seguridad Informtica

Bibliografa y Webgrafa[1]What is web crawling?http://www.webaxes.com/2010/08/what-is-web-crawling/ [Consulta el 11 de noviembre de 2011] [2]Fuzzing y Seguridad http://eternal-todo.com/files/articles/fuzzing.pdf [Consulta el 11 de noviembre de 2011] [3]DirBuster: Descubriendo directorios y archivos ocultos en servidores web, usando fuerza bruta http://www.rinconinformatico.net/dirbuster-descubriendo-directorios-yarchivos-ocultos-en-servidores-web-usando-fuerza-bruta [Consulta el 11 de noviembre de 2011]

Pgina 21 de 21