•
9 min read
Websec-Audit

WebSec-Audit

Framework Profesional de Auditoría de Seguridad Web

Version License Bash Platform Maintenance

Un framework en Bash modular y extensible para evaluaciones integrales de seguridad en aplicaciones web.

Automatiza más de 15 módulos de superficies de ataque, genera registros estructurados y produce informes profesionales en HTML, JSON y TXT.

Características · Instalación · Uso · Módulos · Estructura de Salida · Contribución


Esta herramienta está diseñada exclusivamente para evaluaciones de seguridad autorizadas. Ejecútala únicamente contra sistemas de tu propiedad o sobre los que tengas autorización explícita por escrito para realizar pruebas. El uso no autorizado contra sistemas de terceros es ilegal y puede dar lugar a procesos penales. El autor no asume ninguna responsabilidad de ningún tipo por el mal uso de este software.


✨ Características

  • Más de 15 módulos de seguridad — reconocimiento, escaneo de puertos, SSL/TLS, cabeceras, SQLi, XSS, CMS, CORS, SSRF, toma de control de subdominios y más
  • Arquitectura modular — activa o desactiva cualquier módulo de forma independiente mediante --skip-<módulo>
  • Tres modos de escaneo — Normal, Agresivo (--aggressive), Sigiloso (--stealth)
  • Informes profesionales — panel interactivo en HTML, JSON estructurado y registro en texto plano
  • Independiente de herramientas rígidas — recurre de forma fluida a alternativas si faltan herramientas opcionales
  • Motor de hallazgos inteligente — hallazgos almacenados como JSONL con gravedad, módulo, evidencia y remediación
  • Soporte para proxy — enruta todo el tráfico a través de Burp Suite o cualquier proxy HTTP
  • Gravedades alineadas con CVSS — CRITICAL / HIGH / MEDIUM / LOW / INFO (Crítica / Alta / Media / Baja / Info)
  • Cero dependencias externas obligatorias — el escaneo principal funciona únicamente con curl y nmap

📦 Instalación

Instalación rápida (recomendada)

Ventana de terminal
git clone https://github.com/davidalvarezp/websec-audit.git
cd websec-audit
chmod +x install.sh websec-audit.sh
sudo ./install.sh

Manual (Debian/Ubuntu)

Ventana de terminal
# Obligatorias
sudo apt-get install -y curl nmap
# Recomendadas
sudo apt-get install -y nikto sqlmap gobuster whatweb wafw00f sslscan \
python3 python3-pip jq ruby dirb dnsutils whois wordlists
# Opcionales (mejora significativamente la cobertura)
pip3 install droopescan
gem install wpscan --no-document
git clone --depth 1 https://github.com/drwetter/testssl.sh.git /opt/testssl.sh
sudo ln -s /opt/testssl.sh/testssl.sh /usr/local/bin/testssl.sh

Kali Linux

La mayoría de las herramientas vienen preinstaladas. Ejecuta:

Ventana de terminal
sudo apt-get install -y gobuster dalfox subjack nuclei subfinder
./install.sh # gestiona los componentes restantes

🚀 Uso

Básico

Ventana de terminal
./websec-audit.sh -t https://objetivo.com

Agresivo (más profundo, más ruidoso)

Ventana de terminal
./websec-audit.sh -t https://objetivo.com --aggressive -T 20

Sigiloso (más lento, huella de detección menor)

Ventana de terminal
./websec-audit.sh -t https://objetivo.com --stealth

A través de un proxy (Burp Suite)

Ventana de terminal
./websec-audit.sh -t https://objetivo.com --proxy http://127.0.0.1:8080

Directorio de salida personalizado e informe exclusivo en JSON

Ventana de terminal
./websec-audit.sh -t https://objetivo.com -o /tmp/audit --format json

Omitir módulos específicos

Ventana de terminal
./websec-audit.sh -t https://objetivo.com --skip-nikto --skip-sqli --skip-cms -v

Escaneo completo de puertos con modo agresivo

Ventana de terminal
./websec-audit.sh -t https://objetivo.com --ports full --aggressive --depth 5

📋 Referencia Completa de Opciones

OBLIGATORIAS
-t, --target <url|ip> URL o dirección IP objetivo
SALIDA
-o, --output <dir> Directorio de salida
--format <fmt> json | html | txt | all (por defecto: all)
OPCIONES DE ESCANEO
-T, --threads <n> Hilos concurrentes (por defecto: 10)
-p, --ports <perfil> top-100 | top-1000 | full (por defecto: top-1000)
--timeout <s> Tiempo de espera de conexión (por defecto: 10)
--depth <n> Profundidad de rastreo (por defecto: 3)
--proxy <url> Proxy HTTP/HTTPS
--aggressive Modo agresivo
--stealth Modo sigiloso
CONTROL DE MÓDULOS (--skip-<módulo>)
--skip-recon WHOIS, DNS, enumeración de subdominios
--skip-portscan Escaneo de puertos con nmap
--skip-fingerprint WhatWeb, detección de WAF
--skip-ssl Análisis SSL/TLS
--skip-headers Cabeceras de seguridad HTTP
--skip-dirbrute Fuerza bruta de directorios/archivos
--skip-nikto Escáner web Nikto
--skip-sqli Inyección SQL (sqlmap)
--skip-xss XSS (dalfox + manual)
--skip-cms Detección y escaneo de CMS
--skip-cors Mala configuración de CORS
--skip-redirect Redirección abierta
--skip-ssrf SSRF
--skip-subtakeover Toma de control de subdominios
--skip-nuclei Escaneo con plantillas de Nuclei
DICCIONARIOS (WORDLISTS)
--wl-dirs-small <archivo> Diccionario pequeño para fuerza bruta de directorios
--wl-dirs-big <archivo> Diccionario grande para fuerza bruta de directorios
--wl-dns <archivo> Diccionario de subdominios DNS
VARIOS
-v, --verbose Salida detallada
--no-color Desactivar colores ANSI
--no-banner Ocultar banner
-V, --version Información de versión
-h, --help Ayuda

🔍 Módulos

# Módulo Descripción Herramientas Clave
00 Información del Objetivo Resolver IP, inicializar directorios dig, host
01 Reconocimiento WHOIS, registros DNS, AXFR, enumeración de subdominios, SPF/DMARC, dorks whois, dig, subfinder, amass, dnsrecon
02 Escaneo de Puertos Detección completa de servicios/versiones, análisis de puertos basado en riesgos nmap
03 Identificación (Fingerprinting) Pila tecnológica, detección de WAF, filtración de versiones whatweb, wafw00f
04 SSL/TLS Soporte de protocolos, cifrados, caducidad de certificados, HSTS, CAA testssl.sh, sslscan, openssl
05 Cabeceras HTTP Más de 7 cabeceras de seguridad, flags de cookies, auditoría CSP, redirección HTTPS curl
06 Enum. de Dir. y Archivos Fuerza bruta de directorios + sondeo de 40 rutas sensibles gobuster, ffuf, dirb
07 Nikto Errores de configuración de servidores web, CVEs conocidos nikto
08 Inyección SQL Detección automatizada y explotación de SQLi sqlmap
09 XSS Sondeo de XSS reflejado en parámetros comunes + XSS basado en DOM dalfox, curl
10 Escaneo de CMS Detección y escaneo de WordPress, Drupal, Joomla, Magento wpscan, droopescan
11 CORS CORS mal configurado, orígenes comodín, CORS con credenciales curl
12 Redirección Abierta Más de 20 parámetros × 10 payloads de redirección curl
13 SSRF IMDS en la nube (AWS/GCP/Azure), sondeo de IPs internas curl
14 Toma de Control de Subdominios Detección de CNAME huérfanos para más de 20 servicios subjack, nuclei, dig
15 Nuclei Plantillas comunitarias de CVEs y errores de configuración nuclei

📁 Estructura de Salida

results_objetivo_AAAAMMDD_HHMMSS/
├── logs/
│ ├── audit_AAAAMMDD_HHMMSS.log # Registro de auditoría completo con marca de tiempo
│ └── findings.jsonl # Un objeto JSON por hallazgo encontrado
├── recon/
│ ├── whois.txt
│ ├── dns_records.txt
│ ├── subdomains.txt
│ ├── axfr.txt
│ ├── whatweb.json
│ ├── waf_detection.txt
│ └── google_dorks.txt
├── portscan/
│ ├── nmap.txt
│ ├── nmap.xml
│ └── nmap.gnmap
├── ssl/
│ ├── testssl.json
│ └── testssl.log
├── headers/
│ └── response_headers.txt
├── dirs/
│ ├── gobuster_dirs.txt
│ └── sensitive_paths_found.txt
├── vulns/
│ ├── sqlmap/
│ ├── xss/
│ └── nuclei/
├── cms/
│ ├── wpscan_results.json
│ └── droopescan_*.json
├── misc/
│ ├── cors_tests.txt
│ ├── open_redirect.txt
│ ├── ssrf_tests.txt
│ └── subtakeover.txt
└── reports/
├── report_AAAAMMDD_HHMMSS.html # Panel interactivo
├── report_AAAAMMDD_HHMMSS.json # JSON estructurado
└── report_AAAAMMDD_HHMMSS.txt # Texto plano

📊 Ejemplos de Informes

Informe HTML

  • Filtro interactivo por gravedad (Crítica / Alta / Media / Baja / Info)
  • Búsqueda en tiempo real entre todos los hallazgos
  • Barra de riesgo y panel de metadatos del escaneo
  • Evidencia y remediación detalladas por cada hallazgo
  • Tema oscuro, diseño adaptativo (responsive)

Informe JSON

{
"metadata": {
"tool": "websec-audit",
"version": "1.0.1",
"target": "https://davidalvarezp.com",
"start_time": "2026-01-01 12:00:00",
"duration_secs": 342
},
"summary": {
"total": 18,
"critical": 2,
"high": 5,
"medium": 6,
"low": 3,
"info": 2
},
"findings": [
{
"id": 1,
"severity": "CRITICAL",
"module": "RECON",
"title": "DNS Zone Transfer (AXFR) is permitted",
"description": "Name server ns1.davidalvarezp.com allows AXFR — full DNS zone disclosed.",
"evidence": "...",
"recommendation": "Restrict AXFR to authorised secondary name servers only.",
"timestamp": "2026-01-01T12:00:12Z"
}
]
}

🔧 Requisitos

Obligatorios

Herramienta Propósito Instalación
bash 5.0+ Intérprete de comandos apt-get install bash
curl Solicitudes HTTP apt-get install curl
nmap Escaneo de puertos apt-get install nmap

Recomendados (mejoran considerablemente la cobertura)

Herramienta Módulo Instalación
nikto Escaneo de vulnerabilidades web apt-get install nikto
sqlmap Inyección SQL apt-get install sqlmap
gobuster / ffuf Fuerza bruta de directorios apt-get install gobuster
whatweb Identificación tecnológica apt-get install whatweb
wafw00f Detección de WAF apt-get install wafw00f
sslscan / testssl.sh SSL/TLS apt-get install sslscan
wpscan WordPress gem install wpscan
dalfox XSS Lanzamientos en GitHub
nuclei Plantillas CVE Lanzamientos en GitHub
subfinder Enumeración de subdominios Lanzamientos en GitHub
jq Análisis de JSON apt-get install jq
python3 Utilidades apt-get install python3

🤝 Contribución

¡Las contribuciones son bienvenidas! Por favor, lee CONTRIBUTING.md antes de enviar una solicitud de extracción (pull request).

  1. Haz un fork del repositorio
  2. Crea una rama para tu funcionalidad: git checkout -b feature/nuevo-modulo
  3. Realiza el commit de tus cambios: git commit -m 'feat: add new-module'
  4. Sube los cambios a tu rama: git push origin feature/nuevo-modulo
  5. Abre una Pull Request

📝 Registro de Cambios (Changelog)

Consulta CHANGELOG.md para ver el historial completo de versiones.


📜 Licencia

Este proyecto está licenciado bajo la Licencia MIT — consulta el archivo LICENSE para más detalles.


Hecho con ❤️ por dap

⭐ Dale una estrella a este repositorio si te resulta útil.