Con el presente artículo continuamos publicando las ponencias relacionadas con el segundo módulo de IntelCon, la Obtención. Este segundo módulo cuenta con un total de 14 ponencias y 5 talleres con ponentes de primer nivel tanto nacionales como internacionales. Daniel Echeverri (Aka. Adastra) (@jdaanial) nos habla sobre como configurar la herramienta ZAP para optimizar el trabajo realizado por un equipo de pentesting. Añadimos esta sesión en IntelCon con el fin de que los asistentes descubrieran que el #hacking y la #ciberinteligencia pueden ser complementarios. En este caso el hacking es empleado para la obtención de información dentro del famoso Ciclo de Inteligencia, donde si extrapolamos ese conocimiento del hacking hacia la ciberinteligencia podemos ser capaces de recopilar información interesante.
En esta ponencia con un enfoque práctico, Adastra (@jdaanial) nos va mostrando en directo una serie de consejos sobre la personalización de ZAP. Para ello, Adastra comienza explicando las configuraciones iniciales a realizar, pasando por el uso de extensiones como Foxy Proxy hasta llegar al uso de scripts Zest para la automatización de ciertas acciones durante el proceso de auditoría.
[su_spoiler title=»CONTENIDO DEL ARTÍCULO» open=»yes» style=»fancy» icon=»caret-square» anchor=»indice» class=»my-custom-spoiler»]
- Conociendo al ponente
- Puntos tratados en la ponencia
- Visualización del video de la ponencia
- Visualización del presentación de la ponencia
- Conclusión
[/su_spoiler]
Conociendo al ponente
Daniel Echeverri (Aka. Adastra) (@jdaanial) es fundador y autor del blog TheHackerWay, así como de su versión THW Academy enfocada a la formación en materia de pentesting, hacking y desarrollo de software seguro.
Adastra es pentester y formador autónomo, disponiendo de una gran experiencia en actividades relacionadas con el desarrollo y arquitectura de software, administración de servidores y auditorías de seguridad. En materia formativa cabe destacar la fundación de THW Academy, su colaboración en el plan de formación de Hacking Ético y certificación RTCP en la empresa Securízame. También es docente en varios másteres cuya temática se centra en la Ciberseguridad como puede ser el impartido por la Universidad de Castilla-La Mancha. Además, Adastra es autor de los siguientes libros de la editorial 0xWORD:
- Python para Pentesters
- Hacking con Python
- Deep web – Privacidad y anonimato en TOR, I2P y Freenet
Por último, Adastra se ha convertido en los últimos años en un referente a base de ponencias en conferencias realizadas sobre todo en España y América Latina.
Puntos tratados en la ponencia
Adastra (@jdaanial) proporciona una serie de consejos para optimizar el uso de la herramienta ZAP. Gracias a estos podremos personalizar ZAP y adaptarla a las características de nuestros equipos informáticos. De esta forma seremos capaces de optimizar su uso y establecer un modelo para los miembros que forman parte de un equipo de pentesting. Los puntos tratados durante la ponencia son los siguientes:
- Escaneos en ZAP
- Políticas y Zests
- Para un equipo de pentesters…
Escaneos en ZAP
Para comenzar con la ponencia, Adastra realiza una breve introducción sobre ZAP en la que se pueden destacar los siguientes puntos:
- Se trata de uno de los proyectos de la comunidad OWASP. Es una herramienta alternativa a Burp Suite.
- Está desarrollada en Java.
- Hay que generar una CA e importarla al navegador que utilicemos para poder interceptar el tráfico correctamente.
A continuación, Adastra muestra el contenido del fichero zap.sh para explicar algunas de las configuraciones iniciales que se debe realizar para optimizar el rendimiento de la aplicación. Los parámetros a tener en cuenta son:
- Garbage Collector: la máquina virtual de Java (JVM) cuenta con un recolector de basura por defecto. Este elemento está relacionado con cómo se distribuye la memoria dentro de la JVM. Para optimizar la memoria, se recomienda el uso de ZGC.
- Xmx y Xms: valores máximo y mínimo que se asigna a la memoria de la JVM. Estos valores deben adaptarse a las características de nuestro equipo para evitar cuelgues de la aplicación.
Además, se dan una serie de indicaciones adicionales relacionadas con la configuración si se hace uso del navegador Firefox y la definición de contextos. Los contextos dentro de ZAP permiten definir el scope de la auditoría que se está realizando, permitiendo al tester filtrar todo el tráfico web que no pertenezca a su objetivo y centrarse en aquellos recursos de la web objetivo.
Un elemento principal en el uso de ZAP es Foxy Proxy, un complemento disponible en la mayoría de navegadores que permite configurar diferentes tipos de proxys en función del tipo de auditoría que estemos realizando. Por este motivo, Adastra dedica parte de la ponencia para explicar cómo realizar configuraciones básicas que permitan capturar con ZAP el tráfico que deseamos de forma correcta.
Una vez presentadas las configuraciones iniciales, Adastra inicia ZAP y la máquina virtual Web Security Dojo para poder complementar la ponencia de forma más visual realizando pruebas sobre la aplicación web vulnerable WebGoat. Durante esta fase hay que tener en cuenta los siguientes puntos:
- Contextos: nos permite separar las aplicaciones web que estemos auditando y configurar diferentes parámetros para cada uno de ellos (tecnologías, autenticación, usuarios, controles de accesos, etc.).
- Tipos de escaneo: hay que diferenciar entre escaneo activo y pasivo. Mientras que el escaneo pasivo no es intrusivo, el activo se encarga de realizar pruebas para detectar vulnerabilidades conocidas en el OWSAP TOP 10. Una vez finalizado el escaneo, en la sección de alertas se recogen en detalle cada una de las vulnerabilidades detectadas pudiendo dar lugar a falsos positivos. En este punto entra en juego la experiencia del tester, que deberá realizar las pruebas manuales necesarias para descartar los falsos positivos.
- Spidering: esta función de ZAP también se encuentra disponible en Burp Suite y permite ir recolectando información a medida que navegamos por el sitio web. El proceso de spidering se puede realizar de forma automática si realizamos un escaneo de tipo pasivo.
- Add-ons: son los complementos disponibles e n ZAP y que permiten extender y personalizar las funcionalidades de la herramienta. Durante la ponencia, se explican una serie de complementos que permiten potenciar el uso de ZAP.
Políticas y Zests
Durante la siguiente sección de la ponencia, Adastra muestra la configuración de políticas dentro del contexto definido para la realización de pruebas más específicas. En concreto, se muestra un ejemplo de la configuración de reglas de una lista de control de acceso (ACL). En la configuración de esta política permite al tester definir los recursos del sitio web a los que puede acceder un usuario en concreto. De esta forma, se pueden realizar pruebas enfocadas a la vulnerabilidad Broken Access Control.
A continuación, se introducen los Zests scripts que permiten automatizar el proceso de auditoría. El motor de Zest está desarrollado por Mozilla. Dicho motor genera un fichero JSON en el que se va almacenando la interacción que tiene el usuario con la aplicación, dando lugar al Zest script. Adastra realiza una demostración en tiempo real sobre el proceso de autenticación:
- Se habilita el script Zest y se hace la autenticación en la web. El script va recogiendo las peticiones que se generan durante el proceso.
- Se pueden ejecutar acciones contra recursos concretos.
- Se puede jugar con el flujo de la aplicación y de esta manera añadir lógica al pentest que estamos realizando.
Para un equipo de pentesters…
Durante el último punto, Adastra nos expone de forma breve algunas de las características a tener en cuenta si queremos adaptar la aplicación a un equipo de pentesters:
- Modos de uso: ZAP se puede utilizar en modo server o en modo headless, el cual permite utilizar la aplicación en segundo plano.
- API Rest: se puede hacer uso de la API Rest dentro de las opciones de ZAP. Existen clientes escritos en Python y Java.
Visualización del video de la ponencia
En el presente video puede visualizarse en su totalidad la ponencia efectuada por Daniel Echeverri.
Visualización de la presentación de la ponencia
En la presente presentación podéis visualizar el contenido utilizado en la ponencia.
Conclusión
Con esta ponencia, Adastra nos aleja del uso simple de herramientas de «botón gordo» y nos muestra unas pinceladas de la infinidad de posibilidades de potencia y personalización que tiene ZAP. Estas configuraciones desconocidas para la gran mayoría del público, se pueden convertir en un activo valioso si se aplica en el día a día de un equipo de Pentesting o bien para enfocar ese conocimiento combinándolo con la ciberinteligencia. Si queréis obtener más información y consultar su contenido, os facilitamos los siguientes enlaces: