Sei sulla pagina 1di 14

Pentesting con

OWASP Zed Attack Proxy


Prox

1. Introduccin
ZAP es una poderosa herramienta para realizar ataques de penetracin (disciplina conocida
como Pentesting), que permite analizar sitios web para buscar sus vulnerabilidades, con muy
diversos fines, como por ejemplo, aprendizaje o securizacin del sitio.
Inicialmente basado en el cdigo de Paros Proxy (una de las herramientas de pentesting ms
usadas en su momento y actualmente abandonada), ZAP se basa en la lista OWASP de las
vulnerabilidades web ms comunes para su desarrollo, por lo que incluye una gran cantidad de
herramientas capaces de detectar casi cualquier vulnerabilidad que pueda existir en un sitio
web.
Adems, ZAP es una herramienta gratuita, multiplataforma, muy orientada a la comunidad
(cualquiera puede aportar su granito de arena al proyecto, desde solicitando nuevas
herramientas hasta incluso participar en su desarrollo), y cuya intencin es hacer accesible el
pentesting a todo el mundo.
Toda la informacin sobre el proyecto ZAP est disponible en su pgina web:
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
A continuacin vamos a realizar una pequea demostracin de las posibilidades de este
programa.

2. Descripcin de la prueba
Para realizar las pruebas con ZAP, usaremos la distribucin Web Security Dojo de Maven
Security. Aparte del propio ZAP, esta distribucin ofrece una serie de aplicaciones objetivo,
que nos servirn para hacer un pentesting muy sencillito que muestre las utilidades de ZAP.
Dicha distribucin se puede conseguir en la siguiente direccin:
http://www.mavensecurity.com/web_security_dojo/
Se distribuye como una mquina virtual preconfigurada, tanto como para VirtualBox como
para VMWare, por lo que su instalacin no tiene ninguna complejidad. La versin utilizada en
estas pruebas es la 1.2.
OJO: Esta distribucin tiene un montn de vulnerabilidades en sus aplicaciones objetivo, por lo
que lo ms recomendable es no conectarla a Internet, para evitar posibles ataques externos.
La versin de ZAP utilizada ser la includa en dicha distribucin, que es la 1.3.0.
Como objetivo se usar Damn Vulnerable Web Application, en su versin 1.2. Esta incluye la
mayora de las vulnerabilidades ms frecuentemente encontradas en sitios web reales, con lo
que es un buen campo de pruebas para aquellos que aprender a descubrir el funcionamiento
de este tipo de vulnerabilidades para poder evitarlas a la hora de crear nuestros propios sitios.

3. Realizacin de la pruebas
3.1: Preparando la prueba
Lo primero ser abrir la mquina virtual que utilizaremos, la ya mencionada distribucin Dojo.
Una vez la iniciemos, nos encontraremos en el escritorio de la mquina virtual:

Lo siguiente que deberemos hacer ser abrir el ZAP. Para ello, vamos al men Applications, y
en la seccin Tools encontraremos su acceso directo:

Una vez abierto ZAP, lo siguiente ser abrir y configurar el navegador que vayamos a utilizar.
En el caso de la distribucin Dojo, usaremos Firefox. Ahora lo que tenemos que hacer es que el
navegador utilice ZAP como proxy (de ah el nombre de Zed Attack Proxy). En esta distribucin
es muy sencillo. Al lado del botn que nos redirige a la pgina de inicio, se encuentra un men
desplegable para escoger la proxy a travs de la cul queremos que nuestro navegador
navegue, por lo que slo tenemos que seleccionar la opcin Zed Attack Proxy, y el navegador
se configurar automticamente para utilizar ZAP como proxy.

En caso de que estemos utilizando ZAP en una mquina distinta de Dojo, simplemente bastar
con seguir los pasos indicados en al gua de usuario de ZAP, accesible desde la misma
aplicacin, pulsando F1, o en el men Help->OWASP ZAP User Guide.
OJO: Al configurar ZAP como proxy, ser necesario que el ZAP est abierto para poder usar el
navegador. En caso de que no est abierto, el navegador no podr acceder a ningn sitio web,
por lo que si una vez terminadas las pruebas queremos volver a usar el navegador sin proxy,
hay que acordarse de restablecer la configuracin del navegador previa.

Una vez que tenemos abierto ZAP y configurado el navegador, lo siguiente ser crear una
nueva sesin en ZAP. Para ello, hacemos clic en el men File->New Session, o mediante el
atajo de teclado Control+N. El programa nos recordar que ya tenemos una sesin abierta
que no hemos salvado, pero dado que no hemos hecho nada, y que durante la configuracin
se nos podran haber colado datos de sitios que no nos interesan para la realizacin de estas
pruebas, podemos descartar dicha sesin sin ningn problema.

Una vez iniciada la nueva sesin, abrimos la Damn Vulnerable Web Application. Para ello,
simplemente hacemos clic en el link que aparece en la pgina de inicio del navegador
(http://localhost/). Una vez abierta, apareceremos en la pantalla de login de la aplicacin.

Para acceder a la aplicacin, introducimos como usuario admin y como contrasea,


password, y entraremos en la pgina principal de la aplicacin.

DVWA tiene determinados unos niveles de seguridad, que vienen a representar distintos
grados de robustez de un sitio web. Por defecto, el nivel activado cuando entramos en la
aplicacin es High. Para poder realizar la demostracin, vamos a poner el nivel de seguridad
en Low, para que no exista ningn tipo de comprobacin de seguridad y podamos probar
ataques a nuestras anchas. Para ello, en el men lateral hacemos clic en DVWA Security, lo
que nos llevar a pgina dnde podremos cambiar el nivel.

Para poner el nivel en Low, vamos a la seleccin desplegable, seleccionamos la opcin


Low, y hacemos clic en Submit. Ahora el nivel de seguridad de la aplicacin de seguridad
est puesto al mnimo y todas las vulnerabilidades de la aplicacin, expuestas.

Lo primero que podramos hacer en un sitio real sera lanzar el Spider de ZAP para explorarlo
entero. Los desarrolladores sin embargo, recomiendan primero realizar una exploracin
manual del sitio, y despus, lanzar el Spider, que nos reportar cualquier sitio que nos
hayamos podido dejar en el camino. En nuestras pruebas, en cambio, no es necesario, ya que
conocemos la estructura completa de DVWA, y podemos acceder sin problema a cualquier
parte del sitio.
DVWA tiene un gran nmero de vulnerabilidades, pero para estas pruebas slo vamos a probar
el funcionamiento de ZAP sobre una de las ms comunes, Cross Site Scripting (XSS) en su
versin reflejada.
A nivel muy bsico, podemos definir XSS como un ataque que consiste en inyectar cdigo
JavaScript en pginas web, con lo que conseguimos atacar a todo aquel que acceda a dichas
pginas modificadas. Sus dos versiones son XSS Reflected y XSS Stored, en funcin de si el
cdigo inyectado se encuentra almacenado en un sitio externo o en el propio sitio,
respectivamente.

3.2: ZAP vs XSS Reflected


Para hacer pruebas sobre esta vulnerabilidad, hacemos clic en el men lateral dnde pone
XSS Reflected (thank you, captain Obvious). As, accederemos a la seccin dnde se
encuentra esta vulnerabilidad, y una pantalla como esta:

Como se puede ver, en esta pgina no vemos nada ms que un formulario en el que se nos
invita a escribir nuestro nombre, y unos cuantos links de referencia sobre XSS. Mirando en
ZAP, podemos ver que, por el momento, no se ha detectado ninguna vulnerabilidad. Vamos a
escribir nuestro nombre, a ver que pasa:

Parece ser que nos hemos encontrado con una aplicacin muy simptica, pues si le decimos
nuestro nombre, nos devuelve un saludo personalizado. Poniendo otro nombre, devuelve un
saludo para ese otro nombre (creo que no es necesario otro par de capturas de pantalla para
demostrarlo). Seguramente, a los que conozcan algo del funcionamiento de XSS ya se les habr
ocurrido por dnde atacar la aplicacin para poder explotar la vulnerabilidad. Sin embargo,
podemos usar ZAP, ya sea para automatizar las pruebas o bien porque no sabemos por dnde
atacar la vulnerabilidad. Para ello, vamos a ZAP, y buscamos la pgina en el recuadro Sites
situado a la izquierda:

Como podemos ver, ZAP nos da informacin sobre las peticiones que hemos enviado al sitio,
as como las respuestas que hemos recibido a dichas peticiones. Para buscar las
vulnerabilidades, hacemos clic derecho en el sitio que queremos buscarlas, y seleccionamos
Attack->Active Scan Node

Parece que ZAP ha encontrado algo! Una banderita roja aparece al lado del sitio! Para ver de
qu se trata, vamos a la seccin situada en la parte inferior derecha y seleccionamos la
pestaa Alerts, que es dnde ZAP va almacenando la informacin sobre las vulnerabilidades
que va encontrando. Como podemos ver, tambin podemos aadir nuestras propias alertas o
editar las que ya han aparecido.

Veamos la informacin de Cross Site Scripting, ya que son las que nos interesan. Para ello,
abrimos el desplegable de XSS y seleccionamos la nica que ha aparecido.

Al lado del seleccionador de alertas podemos ver la informacin de aquella que hemos
seleccionado, como su descripcin, posibles soluciones y links de referencia. En este caso,
parece ser que cuando el parmetro name de la peticin incluye cdigo JavaScript este se
ejecuta. Este parmetro es el nombre que introducimos en el formulario, as que vamos a
hacer una prueba por nosotros mismos, para probar si lo que nos dice ZAP es cierto.

Pues parece ser que ZAP tena razn, se puede inyectar cdigo en esta pgina. En DVWA no
tiene demasiada importancia, porque para eso es la aplicacin, aprender en qu consiste el
ataque XSS para poder evitarlo. Sin embargo, en un sitio web real, una vulnerabilidad de este
tipo es muy peligrosa, porque puede comprometer seriamente a todos los visitantes del
mismo. Por eso, es muy importante asegurarnos de que nuestros sitios son seguros y no
presentan estas vulnerabilidades, y como hemos visto, ZAP puede ayudarnos a detectarlas.

3.3: Terminando la prueba


Ya hemos visto que ZAP sirve para detectar las vulnerabilidades, as que ahora que hacemos?
Pues ZAP todava tiene un par de cosas que nos pueden ayudar.
Lo primero que deberamos hacer es guardar la sesin actual. Esto servir para mantener
informacin sobre el estado de las vulnerabilidades de nuestro sitio, y as, poder compararlas
en un futuro, para comparar resultados entre sesiones.
Para guardar la sesin, hacemos clic en el men File->Save as. Buscamos la carpeta dnde
queramos guardar la sesin, le ponemos un nombre, y clic en Save.

Tambin podemos crear automticamente un informe en formato HTML sobre las


vulnerabilidades que han aparecido en esta sesin. Para ello, hacemos clic en Report>Generate HTML Report. Buscamos la carpeta en la que queremos guardar el informa,
introducimos el nombre, y hacemos clic en Save.

Si abrimos el informe, veremos algo as:

Con este informe podremos compartir la informacin sobre las vulnerabilidades del sitio con
todos aquellos que sea necesario, de una manera fcil y cmoda.

4. Conclusin
Como hemos podido ver, ZAP detecta perfectamente las vulnerabilidades de un sitio web,
ayudndonos a identificarlas y eliminarlas o aprender ms sobre ellas. Aparte de su
funcionalidad bsica de deteccin de vulnerabilidades, ofrece la posibilidad de generar
informes, e interconexin con otras aplicaciones para poder realizar anlisis ms potentes.
Esto, unido a que es un proyecto respaldado por una de las organizaciones ms importantes a
nivel de seguridad web, que se trate de una aplicacin libre, gratuita, y con un uso muy
sencillo, aparte de la existencia de una comunidad activa de desarrollo, convierten a ZAP en
una herramienta muy potente, que todo aquel que desee adentrarse o dedicarse al mundo del
pentesting, debera tener siempre muy a mano.

Potrebbero piacerti anche