SonicWall アプライアンス向け自動セキュリティ評価フレームワーク。 許可を受けた侵入テストのみを対象としています。
# Install dependencies
pip install -r requirements.txt
# Run all modules against a target
python3 sonicwall_audit.py --target 192.168.1.1 --port 8443
# Run specific modules
python3 sonicwall_audit.py -t 192.168.1.1 -p 8443 -m ssl,cve
# Verbose output
python3 sonicwall_audit.py -t 192.168.1.1 -p 8443 -v
# JSON-only output
python3 sonicwall_audit.py -t 192.168.1.1 -p 8443 --format json
| モジュール | 説明 | リスクレベル |
|---|---|---|
ssl | SSL/TLS 設定:証明書、プロトコル、暗号スイート、HSTS | パッシブ |
cve | フィンガープリンティングによる既知 CVE 検出 | パッシブ |
auth | デフォルト認証情報、セッションセキュリティ、レート制限 | アクティブ(低) |
web | ヘッダー、情報漏洩、API 露出、HTTP メソッド | パッシブ/アクティブ |
ssl)cve)auth)web)レポートは reports/ に保存されます(--output-dir で設定可能):
sonicwall_audit_YYYYMMDD_HHMMSS.json — 機械可読sonicwall_audit_YYYYMMDD_HHMMSS.txt — 重要度評価付きの人間可読| コード | 意味 |
|---|---|
| 0 | 重大または高重要度の所見なし |
| 1 | 高重要度の所見あり |
| 2 | 重大な重要度の所見あり |
実際に悪用可能な脆弱性を備えた Docker ベースの練習用ラボ。2 つの重要な SonicWall CVE をシミュレートしています。両方のコンテナは実際の SonicWall の応答パターンを再現しているため、監査ツールキットをテストできます。
cd lab && docker-compose up --build -d
| コンテナ | ポート | CVE | チャレンジ |
|---|---|---|---|
sonicwall-sma100 | 8443 | CVE-2021-20038 | CGI バイナリのスタックバッファオーバーフロー → RCE |
sonicwall-sslvpn | 4433 | CVE-2024-53704 |
エクスプロイトのスケルトンは lab/exploits/ に、動作する解答は lab/solutions/ にあります。
完全なウォークスルー:lab/WALKTHROUGH.md
sonicwall/
├── sonicwall_audit.py # メインエントリポイント / オーケストレーター
├── validate_cves.py # スタンドアロン CVE バリデーター
├── requirements.txt
├── configs/
│ └── default.json # デフォルト設定
├── modules/
│ ├── base.py # 共有基底クラス + HTTP ユーティリティ
│ ├── ssl_audit.py # SSL/TLS 監査モジュール
│ ├── cve_scanner.py # 既知 CVE スキャナー
│ ├── auth_tester.py # 認証テストモジュール
│ ├── web_interface.py # Web インターフェース監査モジュール
│ ├── report_generator.py # JSON + テキストレポート出力
│ ├── cve_2021_20038_validator.py # CVE-2021-20038 詳細バリデーター
│ └── cve_2024_53704_validator.py # CVE-2024-53704 詳細バリデーター
├── lab/ # 脆弱な練習用ラボ(Docker)
│ ├── docker-compose.yml
│ ├── WALKTHROUGH.md
│ ├── cve-2021-20038/ # バッファオーバーフローコンテナ
│ ├── cve-2024-53704/ # 認証バイパスコンテナ
│ ├── exploits/ # スケルトンエクスプロイト(穴埋め問題)
│ └── solutions/ # 動作するエクスプロイト(ネタバレ注意)
└── reports/ # 生成されたレポート
# Returns non-zero exit code on critical/high findings
python3 sonicwall_audit.py -t $TARGET -p 8443 --format json -m ssl,cve,web
echo $? # 0=pass, 1=high, 2=critical
modules/cve_scanner.py を編集し、SONICWALL_CVES にエントリを追加します:
{
"cve": "CVE-YYYY-NNNNN",
"cvss": 9.8,
"severity": "CRITICAL",
"title": "Description",
"description": "Full description",
"check": "_check_cve_yyyy_nnnnn", # method name
"remediation": "Update to version X.",
"affected_products": ["SonicOS"],
}
その後、対応する _check_cve_yyyy_nnnnn(self, cve_info) メソッドを実装します。
| クッキーの偽造による SSLVPN 認証バイパス |