Tutorial Completo de OWASP ZAP para Auditoría de Seguridad

Por: Artiko
owasp-zapseguridadpentestingproxymobileauditoríahttp

Tutorial Completo de OWASP ZAP para Auditoría de Seguridad

Bienvenido al tutorial más completo en español de OWASP ZAP (Zed Attack Proxy), la herramienta líder de código abierto para auditoría de seguridad en aplicaciones web y móviles.

🛡️ ¿Qué es OWASP ZAP?

OWASP ZAP es una herramienta de pentesting (pruebas de penetración) gratuita y de código abierto, mantenida por la comunidad OWASP. Te permite:

  • Interceptar y modificar tráfico HTTP/HTTPS
  • Escanear vulnerabilidades automáticamente
  • Auditar aplicaciones web y móviles
  • Fuzzing de parámetros
  • Análisis de APIs REST y GraphQL
  • Reportes de seguridad detallados

📚 Contenido del Tutorial

Módulo 1: Fundamentos y Configuración

  1. Instalación y Configuración Inicial

    • Instalación en diferentes SO
    • Configuración inicial
    • Interfaz y herramientas principales
    • Certificados SSL/TLS
  2. Configuración de Proxy para Móviles

    • Configurar ZAP como proxy
    • Configurar Android para usar el proxy
    • Configurar iOS para usar el proxy
    • Instalación de certificados en móviles
    • Bypass de Certificate Pinning
  3. Captura y Análisis de Tráfico HTTP/HTTPS

    • Interceptar peticiones y respuestas
    • Modificar requests en tiempo real
    • Análisis de headers y cookies
    • Decodificación de payloads

Módulo 2: Auditoría de Aplicaciones Móviles

  1. Auditoría de Apps Android (Próximamente)

    • Configuración con emuladores
    • Bypass de SSL Pinning
    • Análisis de APIs
    • Identificación de vulnerabilidades comunes
  2. Auditoría de Apps iOS (Próximamente)

    • Configuración con simuladores
    • Jailbreak y herramientas adicionales
    • Análisis de tráfico cifrado
    • Testing de seguridad
  3. Análisis de APIs REST y GraphQL (Próximamente)

    • Importar definiciones OpenAPI/Swagger
    • Testing de endpoints
    • Fuzzing de parámetros
    • Validación de autenticación

Módulo 3: Escaneo y Detección de Vulnerabilidades

  1. Escaneo Automático de Vulnerabilidades (Próximamente)

    • Spider y crawling
    • Active scan vs Passive scan
    • Configuración de políticas de escaneo
    • Interpretación de resultados
  2. OWASP Top 10 con ZAP (Próximamente)

    • Injection (SQL, NoSQL, Command)
    • Broken Authentication
    • Sensitive Data Exposure
    • XXE, XSS, CSRF
    • Security Misconfiguration
  3. Fuzzing y Testing Manual (Próximamente)

    • Fuzzer configuration
    • Payloads personalizados
    • Forced browsing
    • Session management testing

Módulo 4: Técnicas Avanzadas

  1. Scripting y Automatización (Próximamente)

    • Scripts en Python/JavaScript
    • Automatización con ZAP API
    • Custom scan rules
    • Integration con CI/CD
  2. Bypass de Protecciones (Próximamente)

    • Certificate Pinning bypass
    • Anti-debugging bypass
    • Root/Jailbreak detection bypass
    • Obfuscation analysis
  3. Reportes y Documentación (Próximamente)

    • Generación de reportes
    • Formatos de exportación
    • Documentación de hallazgos
    • Remediation guidelines

🎯 Objetivos de Aprendizaje

Al completar este tutorial serás capaz de:

  • ✅ Configurar OWASP ZAP como proxy para dispositivos móviles
  • ✅ Interceptar y analizar tráfico HTTP/HTTPS
  • ✅ Auditar aplicaciones móviles Android e iOS
  • ✅ Identificar vulnerabilidades del OWASP Top 10
  • ✅ Realizar fuzzing y testing manual
  • ✅ Bypass de protecciones comunes
  • ✅ Generar reportes profesionales de seguridad

📋 Prerrequisitos

Para seguir este tutorial necesitas:

  • Sistema Operativo: Windows, macOS o Linux
  • Java 11+ instalado
  • Dispositivo móvil o emulador (Android/iOS)
  • Conocimientos básicos de:
    • Protocolo HTTP/HTTPS
    • Redes y proxies
    • Seguridad web básica
  • Aplicación target para auditar (con permiso)

⚠️ IMPORTANTE: Solo realiza auditorías en aplicaciones que tienes permiso para testear. El pentesting sin autorización es ilegal.

🛠️ Instalación Rápida

Windows

# Descargar desde
https://github.com/zaproxy/zaproxy/releases/download/v2.14.0/ZAP_2.14.0_windows.exe

# O con Chocolatey
choco install zap

macOS

# Con Homebrew
brew install --cask owasp-zap

# O descargar desde
https://github.com/zaproxy/zaproxy/releases/download/v2.14.0/ZAP_2.14.0.dmg

Linux

# Ubuntu/Debian
sudo snap install zaproxy --classic

# O descargar
wget https://github.com/zaproxy/zaproxy/releases/download/v2.14.0/ZAP_2_14_0_unix.sh
bash ZAP_2_14_0_unix.sh

📱 Configuración Rápida de Proxy Móvil

Paso 1: Configurar ZAP como Proxy

# ZAP escuchará en
Proxy: 127.0.0.1:8080

# Para acceso desde móvil, cambiar a
Proxy: [TU_IP_LOCAL]:8080

Paso 2: Configurar el Móvil

Android

  1. Settings → Wi-Fi
  2. Long press en tu red → Modify network
  3. Advanced options → Proxy → Manual
  4. Proxy hostname: [IP de tu PC]
  5. Proxy port: 8080

iOS

  1. Settings → Wi-Fi
  2. Tap en (i) de tu red
  3. HTTP Proxy → Manual
  4. Server: [IP de tu PC]
  5. Port: 8080

Paso 3: Instalar Certificado ZAP

# Generar certificado
http://zap/

# O directamente
http://[IP_ZAP]:8080/OTHER/core/other/rootcert/

🔍 Casos de Uso Comunes

1. Auditoría de App Móvil

# Ejemplo de script para automatizar
from zapv2 import ZAPv2

zap = ZAPv2(proxies={'http': 'http://127.0.0.1:8080'})

# Escanear app móvil
target = 'https://api.mobileapp.com'
zap.spider.scan(target)
zap.ascan.scan(target)

# Obtener vulnerabilidades
alerts = zap.core.alerts(baseurl=target)
for alert in alerts:
    print(f"Vulnerabilidad: {alert['name']}")
    print(f"Riesgo: {alert['risk']}")
    print(f"Descripción: {alert['description']}")

2. Testing de API REST

// Configuración para API testing
const zapClient = require('zaproxy');

const options = {
    apiKey: 'tu-api-key',
    proxy: 'http://localhost:8080'
};

const zaproxy = new zapClient(options);

// Importar OpenAPI spec
zaproxy.openapi.importFile('/path/to/openapi.json', target, contextId);

3. Bypass SSL Pinning (Android)

# Con Frida
frida -U -f com.example.app -l ssl-pinning-bypass.js --no-pause

# Script básico de bypass
Java.perform(function() {
    var TrustManager = Java.use('com.android.org.conscrypt.TrustManagerImpl');
    TrustManager.verifyChain.implementation = function() {
        return untrustedChain;
    };
});

🎓 Metodología de Auditoría

1. Reconocimiento

  • Identificar tecnologías
  • Mapear endpoints
  • Analizar arquitectura

2. Escaneo

  • Spider/Crawling
  • Passive scanning
  • Active scanning

3. Explotación Manual

  • Fuzzing dirigido
  • Testing de autenticación
  • Validación de entrada

4. Post-Explotación

  • Escalación de privilegios
  • Lateral movement
  • Data exfiltration

5. Reporte

  • Documentar hallazgos
  • Priorizar por riesgo
  • Recomendar remediación

💡 Tips para Auditoría Móvil

1. Preparación del Entorno

# Android - Habilitar opciones de desarrollador
adb shell settings put global http_proxy [IP]:8080

# iOS - Usar certificado personalizado
openssl x509 -in zap_root_ca.pem -out zap_root_ca.crt

2. Herramientas Complementarias

  • Burp Suite: Comparación y validación
  • Wireshark: Análisis de red profundo
  • Frida: Instrumentación dinámica
  • MobSF: Análisis estático
  • objection: Runtime manipulation

3. Checklist de Seguridad Móvil

  • Almacenamiento inseguro de datos
  • Comunicación insegura
  • Autenticación débil
  • Autorización inadecuada
  • Calidad del código
  • Manipulación de código
  • Ingeniería reversa
  • Funcionalidad extraña

📊 Dashboard de Vulnerabilidades

Niveles de Riesgo

  • 🔴 Crítico: Explotable remotamente, alto impacto
  • 🟠 Alto: Explotable, impacto significativo
  • 🟡 Medio: Requiere condiciones específicas
  • 🟢 Bajo: Impacto limitado
  • Informativo: Best practices

Métricas Importantes

  • CVSS Score: Common Vulnerability Scoring System
  • CWE ID: Common Weakness Enumeration
  • OWASP Category: Top 10 mapping
  • Exploitability: Facilidad de explotación
  • Impact: Impacto en el negocio

🔧 Configuración Avanzada

HUD (Heads Up Display)

// Habilitar HUD para testing en navegador
zap.hud.enable()
zap.hud.setDisplayOption('show-all-alerts', true)

Contextos y Sesiones

# Crear contexto para app específica
context_id = zap.context.new_context('MobileApp')
zap.context.include_in_context('MobileApp', 'https://api.app.com.*')

# Configurar autenticación
zap.authentication.set_authentication_method(
    context_id, 
    'formBasedAuthentication',
    'username={%username%}&password={%password%}'
)

🎓 Progreso del Tutorial

  • Introducción (Este archivo)
  • Capítulo 1: Instalación y Configuración
  • Capítulo 2: Proxy para Móviles
  • Capítulo 3: Captura de Tráfico
  • Capítulo 4: Auditoría Android
  • … más capítulos próximamente

🤝 Recursos y Referencias

Documentación Oficial

Comunidad

Herramientas Relacionadas

  • OWASP Mobile Security Testing Guide
  • OWASP API Security Project
  • OWASP Top 10
  • OWASP ASVS

⚖️ Aspectos Legales y Éticos

⚠️ ADVERTENCIA IMPORTANTE

  • Solo audita sistemas con autorización escrita
  • Respeta la privacidad y confidencialidad
  • Sigue un código de ética profesional
  • Documenta todo el proceso
  • Reporta responsablemente las vulnerabilidades

Responsible Disclosure

  1. Identificar vulnerabilidad
  2. Documentar detalladamente
  3. Contactar al propietario
  4. Dar tiempo para remediar
  5. Publicar después del fix

📅 Actualizaciones

Este tutorial se mantiene actualizado con:

  • Nuevas versiones de OWASP ZAP
  • Técnicas de bypass actualizadas
  • Vulnerabilidades emergentes
  • Feedback de la comunidad

Última actualización: Enero 2025

🎯 Siguiente Paso

¿Listo para empezar? Continúa con el primer capítulo:

→ Capítulo 1: Instalación y Configuración


Este tutorial es solo con fines educativos. Úsalo responsablemente y siempre con autorización.

¡Happy Hacking Ético! 🛡️🔍