Tutorial Completo de OWASP ZAP para Auditoría de Seguridad
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
-
Instalación y Configuración Inicial
- Instalación en diferentes SO
- Configuración inicial
- Interfaz y herramientas principales
- Certificados SSL/TLS
-
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
-
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
-
Auditoría de Apps Android (Próximamente)
- Configuración con emuladores
- Bypass de SSL Pinning
- Análisis de APIs
- Identificación de vulnerabilidades comunes
-
Auditoría de Apps iOS (Próximamente)
- Configuración con simuladores
- Jailbreak y herramientas adicionales
- Análisis de tráfico cifrado
- Testing de seguridad
-
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
-
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
-
OWASP Top 10 con ZAP (Próximamente)
- Injection (SQL, NoSQL, Command)
- Broken Authentication
- Sensitive Data Exposure
- XXE, XSS, CSRF
- Security Misconfiguration
-
Fuzzing y Testing Manual (Próximamente)
- Fuzzer configuration
- Payloads personalizados
- Forced browsing
- Session management testing
Módulo 4: Técnicas Avanzadas
-
Scripting y Automatización (Próximamente)
- Scripts en Python/JavaScript
- Automatización con ZAP API
- Custom scan rules
- Integration con CI/CD
-
Bypass de Protecciones (Próximamente)
- Certificate Pinning bypass
- Anti-debugging bypass
- Root/Jailbreak detection bypass
- Obfuscation analysis
-
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
- Settings → Wi-Fi
- Long press en tu red → Modify network
- Advanced options → Proxy → Manual
- Proxy hostname: [IP de tu PC]
- Proxy port: 8080
iOS
- Settings → Wi-Fi
- Tap en (i) de tu red
- HTTP Proxy → Manual
- Server: [IP de tu PC]
- 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
- OWASP ZAP: www.zaproxy.org
- Documentation: www.zaproxy.org/docs
- API Reference: www.zaproxy.org/docs/api
- ZAP in Ten: Videos tutoriales
Comunidad
- OWASP Slack: Canal #zap
- GitHub: github.com/zaproxy
- Twitter: @zaproxy
- YouTube: OWASP ZAP
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
- Identificar vulnerabilidad
- Documentar detalladamente
- Contactar al propietario
- Dar tiempo para remediar
- 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! 🛡️🔍