Categorías
Hacking Services - Software Web Applications

Cómo integrar Burp y ZAP para Hacking y pentesting web

Demostración en vídeo de este post:

En el curso de Hacking contra APIS Rest disponible en THW, enseño muchas técnicas y utilidades para hacer auditorías sobre este tipo de aplicaciones, desde extensiones útiles en Burp Proxy hasta scripting para automatizar ciertas técnicas. Una de las cosas que comento con frecuencia tanto en ese curso como en los de ZAP Básico y ZAP Avanzado es que se le debe sacar todo el provecho posible a las herramientas que están en nuestro alcance, es posible que lo que no puedas hacer con una utilidad, sí puedas con otra.
Cuando se habla de Hacking web, estas dos herramientas son probablemente las más sonadas y aquí entran en juegan los gustos y preferencias de cada uno.
Hay quienes dicen que es mejor Burp Community o Burp Pro por la cantidad de extensiones que aporta.
Otros dicen que es mejor utilizar ZAP porque es altamente configurable, admite scripting y se puede ejecutar como un servicio con su API Rest.
Cada cual intenta justificar sus preferencias con argumentos muy válidos desde una perspectiva técnica, pero lo cierto es que estamos hablando de herramientas que cualquiera que se dedique al pentesting web debería dominar, independiente de gustos o afinidades. Son herramientas, aprendes sobre su funcionamiento e identificas cuándo viene mejor usar una u otra.

En este sentido, explicaré en este breve post cómo integrar ZAP y Burp para hacer pentesting sobre una aplicación web. Si bien las opciones que admiten estas herramientas permiten la integración con prácticamente cualquier herramienta para Hacking web, en este post me centraré en dos posibles escenarios:

1. Capturas las peticiones HTTP con ZAP, las procesas y luego las reenviás a Burp.
2. Capturas las peticiones HTTP con Burp, las procesas y luego las reenviás a ZAP.

Es decir, que utilizas primero una herramienta, le sacas todo el provecho que puedas y luego, esa misma petición que has capturado, se le enviás a la otra herramienta para hacer lo mismo.

Captura con Burp y reenvío a ZAP

En primer lugar, debes tener levantadas ambas utilidades, cada una de ellas con su correspondiente proxy HTTP en puertos distintos. Si lo que quieres es capturar las peticiones con Burp, lo primero que necesitas es o bien configurar tu navegador web para que pase por medio del proxy de Burp o levantar el navegador que viene integrado en la herramienta. En el caso de que quieras configurar tu navegador, siempre recomiendo utilizar la extension Foxy Proxy que está disponible para Firefox y Chrome.

A continuación, antes de empezar a capturar peticiones, es necesario dirigirse a User Options -> Connections -> Upstream Proxy Servers -> Add

En el formulario que aparece, basta con indicar la IP y puerto en donde se encuentra el proxy HTTP de ZAP

Como se puede apreciar en la imagen, el proxy de ZAP debe estar en ejecución en el puerto 8003, el cual recibirá las peticiones HTTP por parte de Burp y finalmente, serán enviadas al servidor web correspondiente. Las respuestas seguirán el mismo camino de vuelta, es decir, se enviarán a ZAP y desde ahí a Burp.

Para probar de este «circuito», puedes utilizar alguna aplicación web vulnerable por diseño, en éste post tienes un buen listado de aplicaciones que puedes levantar rápidamente con Docker: Preparación de un entorno con Docker para Hacking web

En la imagen se apreciar cómo se han capturado las peticiones con Burp y luego, se han redirigido a ZAP, el cual inmediatamente las envía al servidor de Juice Shop, el cual le devuelve una respuesta.
En la imagen no se aprecian cada uno de los pasos que se han llevado a cabo, así que te invito a que veas el vídeo que he subido a YouTube en donde podrás ver el procedimiento completo.

Captura con ZAP y reenvío a Burp

Y ahora lo mismo, pero en el sentido opuesto. En primer lugar se configura ZAP para indicarle que las peticiones, una vez procesadas en la herramienta, se deben redirigir a Burp. Para ello, hay que dirigirse a Tools -> Options -> Connection y marcar la opción que pone «Use an outgoing proxy server«. A continuación, basta con indicar la IP y puerto donde está en ejecución el proxy de Burp.

Ahora, se puede utilizar ZAP en modo manual o configurar el navegador web y que todas las peticiones que se hagan desde él, se redirijan al proxy de ZAP. A partir de este punto, se pueden crear BreakPoints en ZAP para capturar peticiones, manipularlas si hace falta y luego reenviarlas a Burp.

Como se puede ver en la imagen, las peticiones se capturan primero por ZAP y después, se redireccionan a Burp, el cual tiene la opción «Intercept is on» habilitada.

Tal como he mencionado al inicio de este post, son características interesantes que puedes implementar en tus auditorías web, destacan precisamente por su sencillez y potencia. Si quieres aprender a realizar otras integraciones con herramientas con Burp y ZAP, te recomiendo los cursos disponibles en THW.

¿Por qué elegir una de las dos herramientas cuando puedes usarlas ambas sin mayores complicaciones?

Un saludo y Happy Hack!
Adastra.

Categorías
Hacking Services - Software Web Applications

10 Herramientas esenciales para pentesting web – Parte 2 de 2

Demostración en vídeo de éste post:

En el post anterior he mencionado 5 de las herramientas que componen este listado y a continuación, mencionaré 5 más que en mi opinión, son básicas para realizar pentesting web.

WPScan

No son pocas las ocasiones en las que es necesario auditar aplicaciones web que han sido creadas con algún CMS y sin duda, WordPress es uno de los más difundidos. Esto se debe probablemente a que es fácil de utilizar, cuenta con miles de complementos para prácticamente lo que se te ocurra y además, cuenta con características que son deseables para cualquier aplicación en Internet: facilidades para SEO, buena velocidad de carga (cuando está bien configurado), amplio soporte por parte de hostings, etc. No obstante, esto también significa que es un producto sobre el que los atacantes han puesto su atención y prácticamente en todas las versiones del «core» de WordPress, se han identificado vulnerabilidades de todo tipo, eso sin contar con los defectos que se encuentran disponibles en los plugins desarrollados por terceros. Todo ello hace que en ocasiones, la configuración y securización de WordPress sea un reto. En este sentido, la herramienta WPScan ha sido diseñada con el objetivo de detectar vulnerabilidades conocidas sobre una instalación concreta de WordPress. Es capaz de enumerar los plugins instalados, enumerar usuarios por defecto, detectar la versión de WordPress en ejecución y las vulnerabilidades conocidas asociadas a dicha versión, detecta características inseguras de una instalación, etc.

Sitio web: https://wpscan.com/wordpress-security-scanner

Jok3r

Es una herramienta muy completa que integra cientos de utilidades para pentesting web y pentesting en entornos de red. Aunque lleva algún tiempo sin recibir actualizaciones, aún funciona muy bien y su arquitectura es ideal para ejecutar pruebas con un conjunto de herramientas previamente preparadas. La «pega» que tiene es que precisamente por incluir tantas herramientas es muy pesada y la instalación puede ser compleja, afortunadamente la aplicación está «dockerizada» y ésto ayuda a que su despliegue y uso sea muy rápido. Si quieres saber cómo utilizar esta herramienta, he escrito un par de post hace algún tiempo en éste blog y es posible que te puedan interesar:

Herramientas de pentesting interesantes: Jok3r parte 1

Herramientas de pentesting interesantes: Jok3r parte 2

Nuclei

Es otra herramienta de la que ya se ha hablado en este blog y destaca por su simplicidad de uso y no producir falsos positivos, lo cual se consigue gracias a un enfoque semiautomático, en donde es necesario crear plantillas en formato YAML especificando la manera de ejecutar las peticiones HTTP sobre un objetivo. La herramienta simplemente se encarga de interpretar y ejecutar las peticiones que se indique en dichas plantillas, por ese motivo es más sencillo evitar los FP, ya que es el pentester el que debe indicar los patrones para que la herramienta pueda determinar si se produce vulnerabilidad, defecto o fuga de información.

Descubre Nuclei: Herramienta automatizada y personalizable para pentesters y bug bounty hunters

Photon

Es una herramienta sencilla y fácil de utilizar, que si bien no está orientada a la detección o explotación de vulnerabilidades web, sí que pretende detectar fugas de información mediante un proceso de crawling que se puede ejecutar en múltiples hilos, lo que hace que el proceso sea muy rápido. Es una herramienta habitual en las primeras etapas de recolección y OSINT sobre un sitio web y dadas sus características, es una buena opción cuando se empieza con el análisis de una aplicación web expuesta en Internet.

Sitio web: https://github.com/s0md3v/Photon

DirBuster y FuzzDB

DirBuster es una de las herramientas más comunes cuando se trata de enumerar un servidor web por medio de «fuerza bruta», en donde se intenta detectar qué recursos se encuentran disponibles en el servidor. Es un proyecto de OWASP y lleva ya unos cuantos años, pero funciona bastante bien y es altamente configurable. Por otro lado FuzzDB es un recurso que cualquier pentester puede utilizar a la hora de hacer procesos de Fuzzing, ejecutar fuerza bruta o simplemente, desplegar una webshell en un servidor vulnerable. No es una herramienta como tal, pero cuenta con varios ficheros y recursos que se utilizan en proyectos tan conocidos como ZAP.

Sitio web de DirBuster: https://sourceforge.net/projects/dirbuster/files/DirBuster%20Source/1.0-RC1/

Sitio web de FuzzDB: https://github.com/fuzzdb-project/fuzzdb

 

Espero que este listado te haya parecido interesante, en cualquier caso puedes dejar un comentario si consideras que hay alguna otra herramienta que merece la pena incluir.

Un saludo y Happy Hack!
Adastra.