Blog

Mapeando una aplicación web

Pues como bien dice el titulo, claro y meridiano, vamos a ver el proceso a seguir para mapear una aplicación web y poder encontrar un árbol de directorios y ficheros que más se asemeje a la realidad. Además de intentar obtener las tecnologías y funciones de la aplicación.

Vamos a realizar estas pruebas sobre una aplicación web de OWASP que está dentro de una máquina virtual que recopila muchas aplicaciones vulnerables para practicar. Se llama la máquina: “OWASP Broken Web Applications“, y dentro de esta la aplicación que usaré será la “Multillidae”. Utilizaré el proxy Burp Suite para realizar las pruebas, ya que es el que más me gusta personalmente.

Una vez encendido el proxy Burp Suite, tendremos que configurar nuestro navegador para que utilice a este como proxy tal y como indica la imagen.

bu1

Cuando hagamos la primera petición que quedará bloqueado el navegador a la espera de aceptemos la petición en el proxy porque nada más arrancar comienza con el modo “Interceptación” Activado. Así que lo que haremos será pulsar sobre el botón “Intercept is on” para desactivarla y que puedan pasar todas las peticiones.

bu2

 

Paso 1: Spider

El primero paso será hacer un recorrido por todos los enlaces de la aplicación para descubrir cuantos más directorios y ficheros mejor. Habrá 2 opciones de hacer esto:

– La primera y más peligrosa pero cómoda será hacerlo de forma automática con la opción de Spider que trae Burp. Digo peligrosa porque este Spider lo que hará será acceder a todos los enlaces que encuentre en la aplicación, es decir, que si encuentra un enlace que sea Borrar Todo, lo pulsará.

Para usarlo solo tendremos que ir a la pestaña Target, y dentro de esta a Site map. Aquí podremos ver todos los enlaces que hasta ahora han detectado el proxy. Cuando están en gris es que no han sido accedidos, y cuando están en negro es que sí. Lo que haremos será irnos a la web, o directorio que nos interese y pulsaremos con el botón derecho para seleccionar la opción de Spider this Host, O Spider this branch si seleccionamos un directorio, como es mi caso que haré el Spider sobre el directorio multillidae que es la aplicación que usaremos, que estaba dentro de la máquina virtual con muchas otras aplicaciones.


bu3

Para que el Spider pueda funcionar debemos de ir antes o después, da igual, a la pestaña Spider y pulsar sobre el botón Spider is paused para encenderlo.

bu4

Iremos viendo como en nuestro Site map dentro de Target van aumentando el numero de directorios y ficheros a medida que avanza la ejecución del Spider.

bu5

– La segunda forma, más lenta y tediosa pero más segura, es ir recorriendo todos los enlaces a mano. Esto también tiene ventajas porque habrá enlaces dinámicos que el Spider no pueda acceder a ellos y tu a mano sí. Todos los enlaces que vayas accediendo irán apareciendo en tu Site map.

 

Paso 2: Fuerza Bruta

Aquí básicamente lo que haremos será probar un diccionario de directorios comunes y analizar las respuestas del servidor en buscar de directorios existentes en la aplicación que no estuviesen enlazados dentro de esta.

Kali trae varios diccionarios que para las pruebas de concepto está muy bien, y está en el directorio /usr/share/wordlists/.

bu10Para elegir en que parte de la petición queremos ir probando las palabras de nuestro diccionario, lo haremos en la pestaña Positions dentro de la pestaña superior Intruder que será el modulo de Burp encargado de la fuerza bruta. Aquí tenemos que pulsar el botón Add y a continuación seleccionar que parte de la petición queremos que sea. Como podéis imaginar se puede hacer fuerza bruta y usar diccionarios con cualquier parte de la petición, por ejemplo, podríais realizar una petición por cada User-Agent distinto que exista para ver como cambia la aplicación y mapear nuevas superficies de ataques.

bu7El siguiente paso será en la pestaña Payloads elegir nuestro diccionario en la parte de Payload Options. Usaremos uno de los que viene con Kali dentro del directorio de Dirbuster (que es una herramienta para realizar este tipo de técnicas).

bu8Y por ultimo en las pestañas de arriba del todo, las principales, iremos a Intruder y ahí dentro seleccionaremos que comience el ataque. Estos serán los resultados. Para poder ver cuales han tenido éxito y cual no, ordenaremos los resultados por el Status para que aparezcan primero las respuestas 200.

bu9

 

Paso 3: Descubriendo contenido oculto

Aquí lo que haremos será utilizar un modulo de Burp que trae una serie de algortimos para descrubir cotenido oculto a partir de los enlaces que existen en la aplicación, poder llegar a adivinar a través de fuerza bruta otros nuevos. Es decir, si tenemos en la URL algo como AddDocument.jsp y DeleteDocument.jsp, podría haber también la posibilidad que existiese EditDocument.jsp. Además hace otras muchas cosas. Tener cuidado en la configuración con la opción de que haga esto de forma recursiva para cada directorio que encuentre porque puede hacer el análisis interminable.

bu11

 

Paso 4: OSINT

Es posible que partes de la aplicación que ahora mismo no están enlazadas, si que lo estuvieron en algun momento. Así que tendremos 2 opciones:

1- Nuestro querido y estimos Google Hacking:

site:victima.com :  Nos mostrará todos los enlaces que tiene Google sobre el dominio de la víctima.

link:victima.com :  Nos mostrará todas las páginas que tienen enlaces a victima.com que nos servirá para descubrir rutas o directorios ocultos, que en su día estuvieron abiertos o que solo son para que los utilice una determinada organización pero están abiertos a todo el mundo.

 

2- La página www.archive.org contiene copias historias de todas las páginas web. Visitala y puede que halla partes de la aplicación que ya no se usan pero que todavía están en el servidor aunque no aparezcan en la página web.

 

Paso 5: Herramientas Auxiliares

Siempre puedes ayudarte de más herramientas como puede ser Nikto, que tiene una base de datos de directorios y URL que pueden ser vulnerables, y nunca está de más pasarlo aunque luego tengas que descartar muchos falsos positivos.

 

Autor: Roberto Lopez – @leurian

Leave a Reply

*

    No Twitter Messages