← Volver al listado de tecnologías

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:

📚 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:

📋 Prerrequisitos

Para seguir este tutorial necesitas:

⚠️ 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

2. Escaneo

3. Explotación Manual

4. Post-Explotación

5. Reporte

💡 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

3. Checklist de Seguridad Móvil

📊 Dashboard de Vulnerabilidades

Niveles de Riesgo

Métricas Importantes

🔧 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

🤝 Recursos y Referencias

Documentación Oficial

Comunidad

Herramientas Relacionadas

⚖️ Aspectos Legales y Éticos

⚠️ ADVERTENCIA IMPORTANTE

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:

Ú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! 🛡️🔍