Cargando



Escanear vulnerabilidad de un sitio web con ZAP

ZAP (Zed Attack Proxy) es una herramienta de pruebas de penetración para testear sitios web. Es un un escáner que permite hacer pruebas de seguridad web automáticas. En este tutorial vamos a aprender a utilizar comprobar la seguridad realizando ataques automáticos.


sep 24 2015 05:46
Profesional
sep 24 2015 13:21
ZAP (Zed Attack Proxy) es una herramienta de pruebas de penetración para testear sitios web. Es un un escáner que permite hacer pruebas de seguridad web automáticas. En este tutorial vamos a aprender a utilizar comprobar la seguridad realizando ataques automáticos.

Está diseñado para ser utilizado por personas que comienzan en el tema seguridad o por expertos con un amplio conocimiento de seguridad. Es un software muy importante para desarrolladores y administradores de servidores que quieran hacer pruebas funcionales de penetración de seguridad.

Algunas empresas que utilizan y colaboran ZAP son: OWASP, Mozilla, Google, Microsoft y otras.

Zap podemos descargarlo de la pagina oficial de OWASP Zed Attack Proxy Project, existen versiones para diversas plataforma nativas o una multiplataforma en Java.

panta01.jpg


En este caso utilizaremos la versión Cross plataform o multiplataforma, que contiene todas las versiones, que esta programada en Java, para ejecutarla necesitaremos tener instalado JRE 7 (Java Runtime Environment) o superior.

Una vez descargado descomprimimos el archivo y lo ejecutamos como cualquier software Java, en este caso utilizamos en Linux.

Desde cualquier sistema operativo podemos ejecutar desde un acceso directo o desde una terminal con el comando
java -jar zap-2.4.2.jar

panta02.jpg



Aceptamos los términos y condiciones que se muestra al iniciar y vamos a la pantalla principal del software.


panta03.jpg



Vamos a realizar una prueba de seguridad se puede utilizar el dominio o la ip de la web en este caso utilizaremos la ip 67.222.16.108.
Añadimos la ip en la caja de texto URL a atacar y luego hacemos clic en el botón Atacar. Luego de escanear todas las paginas encontradas en la web obtendremos el resultado.


panta04.jpg



Podemos observar que se encontraron algunas vulnerabilidades como:

X-Frame que es una vulnerabilidad que permite mostrar un sitio web completo en un iframe y de esa forma hacer pensar a alguien que esta navegado una web cuando en realidad tiene otra incluida en iframe. Supongamos creamos una web incluimos Facebook en un iframe y un formulario de Paypal en otro simulando que Facebook cobrara por registrarse, asi con cualquier web, en realidad el pago iría al atacante.

panta05.jpg



Este tipo de ataque se denomina clickjacking y se puede prevenir por ejemplo con Javascript poniendo este código en las etiquetas <head> de la web.
if(top != self) {
top.onbeforeunload = function() {};
top.location.replace(self.location.href);
}
Otra vulnerabilidad encontrada en esta ip es que no tiene protección XSS, esto se puede implementar según el lenguaje de programación que utilicemos.

Evitar ataques XSS es fácil existen muchas librerías para utilizar en cualquier aplicación web.
El método implica verificar los datos que introducen los usuarios o de cualquier fuente de datos externa o cualquier parámetro que se envié por url.

Estos cuidados son los únicos que tenemos que tener en cuenta para prevenir los ataques XSS e incrementar la seguridad que evite ataques XSS, para ello deberemos llevar a cabo la validación de datos, el control de los datos que recibe la aplicación e impedir que se utilice o ejecute código peligroso cuando se introducen datos.

Ejemplo funcion strip_tag() en php

Esta función elimina cualquier carácter html que contenga la variable $descripcion, excepto las que autorice, como en este caso <p> parrafo y <strong> negrita
$descripcion= strip_tags($_POST[descripcion],’<p>,<strong>’);
Ahora que logramos el primer análisis comenzaremos a aplicar distintas herramientas y plugin para hacer Fuzzing se denomina Fuzzing a la utilización de diversas técnicas de testeo que envían datos a la aplicación en forma masiva y secuencial, para tratar de detectar vulnerabilidades en la web o en el software que estamos analizando.

Por ejemplo tomamos una web cualquier que sea potencialmente vulnerable del tipo

http://www.dominio/i...rdetalle&id=105

En otro tutorial SQLMAP herramienta de Inyección de SQL y Ethical hacking de bases de datos, explicaba que una forma sencilla de encontrar web para analizar es poner en el buscador de Google section.php?id= y nos aparecerán miles de web que podrían ser vulnerables. Aquí lo tienes por si te interesa:



Analizamos una web y vemos el listado de páginas vulnerables.


panta06.jpg



Luego tomamos una de la paginas, en este caso el index.php que tiene dos variables id y sección, a continuación le hacemos un clic derecho a esta pagina.


panta07.jpg



Vamos al menú Atacar y seleccionamos Fuzz, se abre la ventana de Fuzzer y hacemos un clic en la caja de texto en blanco esto activara el botón Add (añadir) que nos permitir añadir el tipo de ataque especifico.


panta08.jpg



A continuación veremos la pantalla Payloads. Las funciones o exploit que brinda un software para testear y buscar vulnerabilidades y provocar errores en la web que estamos auditando se denomina Payload. En esta pantalla hacemos clic en Add para añadir un Payload.

Aquí podremos seleccionar el tipo de ataque a realizar, seleccionamos tipo File fuzzer y elegiremos el Payload Injection que abarcar ataques xss, ataque sql injection entre otros y sql injetion que abarca todos los ataques sql. Podemos añadir y probar muchos tipos de ataques distintos del listado que nos ofrece Zap.


panta09.jpg



Luego damos clic en añadir, luego en Aceptar y damos clic al botón Start Fuzzer para comenzar la auditoria.


panta010.jpg



Como resultado del escaneo con los Payload Injection y SQL Injection, detectamos que la web es vulnerable a ataques XSS y tiene al menos tres fallas ante inyecciones sql de alto riesgo y nos indica en que paginas esta el problema.

Otro análisis que podemos realizar es seleccionando el payload Web Server, en este caso veremos que tenemos un problema con las sesiones y las cookies ya que pueden ser leídas desde el navegador que estemos utilizando.




Otra de las opciones es simular el traficode 10000 usuarios casi simultáneos, que navegaran todos los enlaces disponibles en nuestra web, generando peticiones para ver si la web no se satura y queda fuera de servicio.

Por ejemplo vamos a añadir un payload, seleccionamos el dominio o la pagina principal con el botón derecho y vamos a Atacar > Fuzz, luego hacemos clic en Add, luego en la pantalla de Payload hacemos clic en Add, seleccionamos tipo File Fuzzer y en jbrofuzz selecionamos Zero Fuzzers.


panta012.jpg


Luego de ejecutar el payload veremos el trafico a nuestras paginas, sino que también veremos el trafico a aquellas paginas web que tengamos enlazada.


panta013.jpg



Podemos observar en el caso de esta web el trafico generado hacia facebook, twitter, linkedin, google plus, entre otras que componen la estrategia de redes sociales de esta web seguramente. Si tenemos Google Analytics o Google Searh Console (anteriormente Webmastertools) también generará trafico, por lo que no es bueno excederse en estas pruebas, o es mejor hacerlo en local, con Google analytics deshabilitado.


panta014.jpg



Internet y las aplicaciones web aumentan cada día la cantidad de usuarios, por ello la demanda de expertos y auditores de seguridad de la información dentro de las empresas es muy importante.

Estas pruebas no son concluyentes solo son un alerta para que podamos profundizar la investigación. Esta simulaciones de ataques y exploraciones automatizadas pueden brindar una solución rápida para auditar sitios web.

Es importante que se utilizen estas herramientas con cuidado y fines éticos ya que son usadas por los webmaster y quienes administran servidores y los hackers maliciosos también. OWASP ZAP es una herramienta muy utilizada por quienes hacen etical hacking para su trabajo en la auditoria de seguridad web y testear aplicaciones.

Para más información sobre Seguridad IT con otras técnicas, ataques, hack etc. estate al día y comparte tus conocimientos aquí:



¿Te ayudó este Tutorial?


3 Comentarios


Alice Sawn
sep 24 2015 21:10

Muy bueno Sergio, gracias por tu tutorial, me gustan los de seguridad.


Roberto Gomez
sep 25 2015 19:30

Te sigo Sergio, haces algunos tutoriales que me encantan, este uno de ellos. saludos.

Muy bueno como siempre, Sergio. Sigo tus tutoriales xq son detallados, comprensibles y didácticos. ¡Saludos!.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X