Tutorial de Burp Suite VI – Primer ataque con Burp Suite Intruder
Ya sabemos qué es Burp Suite y cómo configurarlo. También sabemos interceptar peticiones con el proxy y construir el site map de la web que estamos auditando. Y por último, y más recientemente, conocemos con todo detalle la herramienta Burp Suite Intruder. Con esto ya estamos listos para realizar nuestro primer ataque. Igual que en entradas anteriores de este tutorial, para el ejemplo de ataque que voy a mostrar en esta entrada voy a usar un servidor de pruebas que tengo montado en casa. En el servidor he configurado una aplicación web llamada Damn Vulnerable Web Application (DVWA) que, como ya expliqué, se trata de una aplicación web plagada de vulnerabilidades de seguridad para poder practicar técnicas de hacking.
Una vez tenemos el entorno de pruebas listo y Burp Suite abierto, podemos empezar con nuestro ejemplo. Esta prueba va a consistir en averiguar, por medio de la herramienta Burp Suite Intruder, la información de acceso (usuario y contraseña) a esta aplicación web mediante el formulario de login. Para ello vamos a seguir los siguientes pasos:
Índice de contenidos
Interceptar la petición
Como decía, el primer paso es interceptar una petición de inicio de sesión en la aplicación. Para ello, lo primero que debemos hacer es navegar por la aplicación que va a ser objetivo de nuestro ataque hasta llegar al formulario de login del que queremos capturar una petición.
Una vez estemos en la página correspondiente al formulario, y con Burp Suite ya abierto, activamos el proxy.
En el momento que activemos el proxy Burp Suite comenzará a interceptar el tráfico. Sin embargo, hasta que no interactuemos con la aplicación, probablemente no intercepte nada. Lo que debemos hacer es provocar un intento de login. Podemos hacerlo dejando ambos campos en blanco y dándole a enviar o escribiendo un usuario y una contraseña que se nos ocurra para hacer una prueba.
Cuando lo hagamos veremos que Burp Suite intercepta el tráfico. Hacemos click en el botón «Forward» hasta que el tráfico pare.
Entonces nos vamos a la pestaña «HTTP history», en la que encontraremos todas las peticiones interceptadas. Aquí buscamos la petición que nos interesa. La localizaremos por la URL, que debe ser la misma URL que la de la página en la que se encuentra el formulario.
Una vez localizada podremos analizarla un poco y observar la respuesta que devuelve. Esto puede darnos pistas que nos pueden servir para mejorar o concretar la configuración de nuestro ataque. Por ejemplo, en mi petición puedo encontrar fácilmente cómo envía la aplicación los datos de usuario y contraseña. Estas serán las posiciones en las que colocaré los dos payloads más adelante.
Además, analizando la respuesta tanto en la propia página web como en el panel de Burp Suite puedo observar que cuando los datos de acceso introducidos no son correctos la aplicación devuelve un mensaje muy concreto.
Ya tenemos claro que esta es la petición que nos servirá durante nuestro ataque como vulnerabilidad a explotar y tenemos toda la información necesaria para llevar a cabo nuestro ataque. Ya podemos pasar al siguiente paso.
Enviar petición a Intruder
Este paso es muy simple y rápido. Para enviar la petición a la herramienta de Burp Suite Intruder simplemente tenemos que hacer click derecho sobre la petición y luego hacer click en «Send to intruder» en el menú que se nos despliega.
Con esto ya podemos irnos a la pestaña «Intruder», donde la petición nos estará esperando.
Marcar la posición de los payloads
Ya en la pestaña «Intruder/Positions» podemos ver la petición que vamos a usar para ataque la web. Es el momento de marcar la posición de los payloads Para ello seleccionamos el espacio en el texto de la petición en la que debe ir el dato a sustituir y hacemos click en «Add $». En mi caso, las posiciones son justo después del signo «=» tras «username» y «password». Al marcar la posición el espacio se sustituye por dos símbolos parecidos al del $. Si en la petición hubiera por defecto marcados más espacios con esos símbolos podemos quitarlos seleccionándolos y haciendo click en el botón «Clear $» o simplemente borrándolos.
Elegir el tipo de ataque
Ha llegado el momento de elegir el tipo de ataque que vamos a realizar. Si repasas la entrada anterior, podrás deducir fácilmente que la mejor opción es el tipo «Cluster bomb». El tipo de ataque «Cluster bomb» prueba con todas las combinaciones posibles de los payloads que configuremos, opción que nos viene muy bien para el caso en el que estamos, ya que vamos a introducirle una serie de nombres de usuario y una serie de posibles contraseñas, y necesitamos averiguar qué combinación de usuario-contraseña es la correcta. Para elegir la opción simplemente tenemos que seleccionarla en el combo que hay junto al texto «Attack type».
Configurar payloads
Una vez hemos marcado la posición de los payloads y hemos elegido el tipo de ataque, llega el momento de configurar los payloads. Para ello nos vamos a la pestaña «Payloads» y elegimos el payload 1 en el combo «Payload set». En este caso, el tipo de payload va a ser «Simple list», ya que nuestra intención es introducir una serie de posibles nombres de usuario en el cuadro «Payload Options [Simple list]». Para hacerlo, yo he usado un fichero .txt con algunos nombres de usuario comunes que he encontrado por Internet. Para agregar opciones al payload desde un fichero de texto debemos hacer click en «Load» y elegir el fichero.
Al hacerlo verás que cada línea del fichero de texto es una línea del cuadro de «Payload Options». También puedes introducirlos a mano escribiéndolos uno a uno en el cuadro de texto que hay junto al botón «Add» y hacer click en ese mismo botón para agregarlo.
Cuando hayamos terminado de agregar valores al payload 1, cambiamos al payload 2 y hacemos lo mismo para la contraseña.
Y con esto tenemos lista la configuración de los payloads. Ahora vamos a configurar algunas opciones más antes de lanzar el ataque.
Configurar bandera de respuesta exitosa
Para configurar una bandera en la tabla de resultados que nos indique las respuestas exitosas debemos ir a la pestaña «Options» y a la sección «Grep – Match». Ahí podemos ver varias opciones configuradas ya por defecto. Cada una de ellas aparecerán como una casilla de verificación en la tabla de resultados, que estará marcada si la respuesta contiene esa misma palabra o expresión. En nuestro caso, como vimos en la respuesta de la petición al interceptarla el mensaje exacto que devuelve la aplicación cuando introduces un par de usuario-contraseña incorrecto, vamos a crear la bandera para ese mensaje. De esta forma, los pares de valores usuario-contraseña que no tengan la casilla de verificación marcada serán los que son correctos.
Para configurarlo, vaciamos el cuadro de «Grep – Match» haciendo click en el botón «Clear».
Nos pedirá confirmación, que debemos aceptar.
Y entonces añadimos nuestro mensaje de error en el cuadro de texto que hay junto al botón «Add» y hacemos click en el botón.
Y con esto estamos listos para lanzar nuestro ataque.
Lanzar ataque
Para lanzar el ataque no tenemos más que hacer click en «Start attack».
Al hacerlo, si estamos en la versión gratuita, Burp Suite nos avisará de que la herramienta Intruder está algo limitada para nuestra versión. Si estás en la versión Professional este mensaje no aparecerá. De hecho, en la versión Professional el ataque avanzará bastante más rápido que en la versión gratuita.
Y entonces veremos la ventana con los resultados.
El número de resultados de la tabla irá creciendo conforme avanza la barra que aparece debajo. Sin embargo, conforme se desarrolla el ataque ya podemos ir analizando, si queremos, los resultados que van apareciendo. De hecho, si os fijáis, en la tercera línea la bandera que habíamos configurado ya aparece sin marcar. Eso quiere decir que el par usuario-contraseña con valores «admin»-«password» es un par válido. Ahora solo nos queda esperar a que el ataque termine para obtener todos los resultados.
Analizar los resultados
Cuando el ataque termine veremos la barra completa y un mensaje de «Finished» al lado.
Ahora podemos analizar todos los resultados. Si observamos las casillas de verificación observamos que, al menos en mi caso, solamente una de ellas no está marcada. Así que voy a analizar ese resultado.
Si nos movemos a la pestaña «Response» podemos ver la respuesta que lanzó la aplicación para este par de valores de usuario-contraseña. Si la analizamos vemos que el mensaje es diferente al que nos devolvía cuando hicimos la prueba de login con los campos en blanco o con valores incorrectos.
Parece que hemos dado con un par de usuario-contraseña correcto. De hecho, si lo probamos ahora en la aplicación vemos que nos devuelve el mismo mensaje de éxito. Recuerda desactivar el proxy de nuevo para evitar que Burp Suite te intercepte.
¡Enhorabuena! ¡Has completado tu primer ataque con diccionarios con éxito!
Una curiosidad de la ventana de resultados es que puedes configurar las columnas para hacer más fácil el análisis, añadiendo o quitando columnas según tus necesidades.
Por ejemplo, para este caso podríamos dejar activadas solamente las siguientes columnas, que son las que nos pueden dar información útil como el usuario, la contraseña, el la fecha y hora a la que se realizó cada intento y el aviso de error o éxito.
Con esto ya tenemos para jugar un buen rato. DVWA ofrece muchos retos que puedes intentar superar con lo aprendido hasta ahora. ¡Inténtalo y comenta tus resultados en los comentarios de abajo! Lo mismo colaborando conseguimos superar todos los retos de DVWA 😉
¡Y nada más! Como siempre, cualquier sugerencia o consulta podéis hacérmela llegar enviando un correo electrónico a sugerencias@manusoft.es o dejando un comentario en la entrada. ¡Muchas gracias por visitar ManuSoft.es!
Gracias por esta serie de tutoriales, están muy bien redactados, saludos.
¡Muchas gracias, Manuel! A ver si consigo sacar tiempo para terminarlos. ¡Un saludo!