Burp Suite, también conocida como la navaja suiza del pentester
, es una herramienta multifunción para realizar auditorías de seguridad a aplicaciones Web.
Integra diferentes componentes de pentesting y funcionalidades para realizar las pruebas y permite combinar pruebas tanto automáticas como manuales. La herramienta
Burp Suite está desarrollada y mantenida por la empresa PortSwigger
, y cuenta con dos versiones: Burp Free (gratuita) y Burp Professional (de pago). La versión gratuita
se puede encontrar ya instalada en Kali Linux, la distribución de Linux diseñada para auditorías y seguridad informática.
Podeís Descargas BurpSuite en su págian Oficial
–> Link
Para instalar BurpSuite directamente desde la terminal (para sistemas como Parrot o Kali):
sudo apt install burpsuite
Para poder trabajar con BurpSuite vamos a necesitar otras dos herramientas imprescindibles, primero necesitaremos un navegador (preferentemente firefox) y luego
también necesitaremos la aplicación o extensión llamada Foxy Proxy
. Esta extensión también existe para Chrome.
Descargas Foxy Proxy
–> Link
La dinámica será la siguiente, BurpSuite intercepta los datos del Navegador utilizando Foxy Proxy, de esta forma podremos trabajar con estos paquetes interceptados.
Para ello tendremos que configurar BurpSuite y FoxyProxy para establecer entre ellos una comunicación.
Una vez instalado FoxyProxy en el navegador, simplemente pulsamos sobre él y luego pulsamos el botón Options
.
Tras abrirse el programa, en la parte izquierda, nos dirigimos a la opción Add
.
De Título podemos poner BurpSuite
para poder identificarlo, el color que deseamos (En mi caso verde, que es más vistoso) y ahora vamos a lo importante.
Para poder establecer conexión con BurpSuite vamos a usar un Proxy de tipo HTTP
y una dirección Ip 127.0.0.1
(Esta dirección Ip es nuestro localhost) por
el puerto 8080.
Nota:
En caso de tener problemas a la hora de capturar el tráfico, tener en cuenta de que no estáis usando el puerto 8080 para otros procesos. En tal caso
emplear un puerto distinto o matar el proceso.
Con esto ya tendríamos FoxyProxy configurado, pulsamos guardar save
y veremos tras guardas como ya nos aparece nuestro nuevo Proxy en el icono de la extensión
si pulsamos encima con el ratón.
Es recomendable borrar previamente la versión anterior de BurpSuite e instalar la nueva versión en su directorio /opt/BurpSuiteCommunity/
.
Descargar el archivo .sh
desde su página principal. Luego lo ejecutamos como administrador:
sudo chmod +x BurpSuite.sh
Luego con el siguiente comando procedemos a su instalación:
./BurpSuite.sh
Una vez instalado para ejecutarlo, escribimos BurpSuiteCommunity
.
Para configurar el proxy debemos acceder a la pestaña Proxy
-> Options
y nos aseguramos que la opción Running
esté marcada. Luego introducimos en la columna
Interface
los mismos datos con los que hemos configurado FoxyProxy, que en nuestro caso es nuestro localhost por el puerto 8080 (127.0.0.1:8080).
Ya tendríamos configurado BurpSuite y listo para su funcionamiento.
Para interceptar una petición con BurpSuite, una vez tenemos el FoxyProxy configurado, preparamos la petición que queramos capturar, y activamos FoxyProxy.
Luego desde BurpSuite nos dirigimos al apartado Proxy
y activamos la casilla en modo Intercept is on
.
Finalmente, realizamos la petición que queríamos capturar en el navegador y veremos como BupSuite la interceptará.
Como hemos visto anteriormente, podemos capturar las peticiones de una página web con Burpsuite, pero, y si queremos enviar nuestra petición y capturar la respuesta por parte del servidor? Esto puede ser muy útil a la hora de módificar las peticiones capturadas y ver que respuestas nos reporta el servidor.
Para activar está funcion y poder capturar esas peticiones debemos dirigirnos a Proxy
>Options
>Intercep Server Responses
y marcar la casilla
superior que dice Intercep responses based on the following rules:
y desmarcamos la opcion marcada que dice Content type header
.
Ahora simplemente capturamos una petición, como hemos visto anteriomente, pulsamos Fordwar
y nos devolverá la respuesta de nuestra petición.
En oscasiones nos encontraremos páginas con vínculos o redirecciones a otras páginas (código de estado 302), esto suele pasar cuando, en vez de utilizar cookies de sesion, nos encontramos con que la página se gestiona a través de redirects.
Con está tecnica evitaremos esas nuevas direcciones, forzando al sistema a devolver un código de estado 200 (código de estado exitoso).En ocasiones al aplicar este cambio, podremos ver partes de la página web que antes no eran posibles.
Para aplicar este ajuste, en primer lugar debemos de tener el Foxyproxy
enlazado con Burpsuite
. Una vez establecido el túner a través del proxy,
capturamos la petición de la página deseada con el Intercept
como hemos visto anteriormente.
Realizamos un Forward
y veremos la respuesta. Al tratarse de una redirección, veremos como
el primer parametro HTTP/1.1
nos reporta el código de estado 302 Found
. Para anular la
redirección debemos cambiar este parámetro por el de 200 OK
.
Finalmente aplicamos un Forward
y veremos como en el navegador se nos despliega una página
diferente.
Vamos a tratar de mostrar un ejemplo utilizando la máquina Previse de Hack The Box.
En la siguiente demostración, utilizaremos la máquina Previse de Hack The Box para tratar de mostrar como una página que nos redirige con un código de estado 302 a una página, nos puede redirigir a otra evitando ese redirect y cambiandolo por un código de estado 200.
En primer lugar, vamos a listar con Wfuzz
los ditintos archivos alojados en el servidor para
ver el código de estado de cada archivo:
Para este ejemplo vamos a utilizar dos de los archivos aquí expuestos, podemos ver como el payload
status
nos devuelve un código de estado 302
y al introducirlo en el navegador nos redirige
al payload login
que si tiene un código de estado 200
y nos reporta una página de registro.
Abrimos Burpsuite
, configuramos Foxyproxy
y realizamos una captura de la ruta
http://10.10.11.104/status.php
:
Ahora aplicamos un Fordward
para capturar la respuesta del servidor y veremos como arriba de todo nos
muestra el código de estado, en este caso un 302 Found
:
Cambiamos el código de estado por un 200 OK
:
Y realizamos un nuevo Forward
para enviar la petición módificada y ver la nueva página forzando el código de estado 200 OK:
Vemos como ya no nos reporta la página de registro, ahora nos muestra una página de información
con el título Status
.