
Python製の概念実証コードで、HikvisionワイヤレスAPにおける認証済みコマンドインジェクションを対象とし、カスタマイズ可能なエンドポイントとコマンドによるリモートコード実行テストを可能にします。
このツールは、Hikvision ワイヤレスアクセスポイントの CVE-2026-0709 をテストするためのPython概念実証(PoC)です。これは、影響を受けるデバイス上でリモートコード実行につながる可能性がある認証済みコマンドインジェクションの脆弱性です。
自分が所有する、または明示的に評価を許可されたシステムに対するセキュリティテストおよび研究用です。
CVE-2026-0709 は認証済みの脆弱性です。攻撃者は有効な認証情報でログインし、その後、Hikvision ワイヤレスAPの脆弱なエンドポイントに特別に細工したリクエストを送信する必要があります。デバイスが脆弱な場合、サニタイズされていない入力が基盤となるオペレーティングシステムに渡され、デバイスのサービスアカウントで任意のコマンド実行が可能になります。
このスクリプトは:
このスクリプトはテンプレートとして作成されています。実際のエンドポイントパス、パラメータ名、ログインロジックは、公式ベンダーアドバイザリまたは公開されている概念実証に従って記入する必要があります。
requests依存関係のインストール:
pip install requests
スクリプトが hikvision_cve_2026_0709.py として保存されていると仮定します。
python hikvision_cve_2026_0709.py \
--host 192.168.1.50 \
--port 80 \
--user admin \
--password MyStrongPassword \
--cmd "id"
python hikvision_cve_2026_0709.py \
--host ap.example.local \
--port 443 \
--https \
--user admin \
--password MyStrongPassword \
--cmd "uname -a"
--host(必須):ターゲットAPのIPまたはホスト名。
--port(オプション):ターゲットポート(デフォルト:80)。
--https(フラグ):HTTPの代わりにHTTPSを使用。
-u, --user(必須):ログイン用ユーザー名。
-p, --password(必須):ログイン用パスワード。
--cmd(オプション):デバイス上で実行するコマンド(デフォルト:id)。
スクリプトは以下を実行します:
ホスト、ポート、スキーム(HTTP/HTTPS)からベースURLを構築します。
提供された認証情報で認証します。
1つのパラメータにインジェクションされたシェルシーケンス(例:127.0.0.1; id;)を含むペイロードを送信します。
HTTPステータスコードとレスポンスボディを出力します。
このリポジトリは、Hikvision固有のエンドポイントやパラメータをハードコードしていません。CVE-2026-0709 の実際の詳細に合わせてスクリプトを更新する必要があります:
認証関数
authenticate(...) 内で、プレースホルダーのログインロジックを実際のものに置き換えます:
デバイスがフォームベースのログインを使用する場合、URLとフォームフィールド(例:/login、user、pwd)を調整します。
HTTP基本認証を使用する場合、個別のログインリクエストは不要かもしれません。代わりに、セッションを基本認証を使用するように設定します。
脆弱なエンドポイント
exploit_command_injection(...) 内で、以下を設定します:
vuln_path を実際のパスに設定(例:APIまたは診断エンドポイント)。
脆弱なパラメータキー(例:host、address、command)を設定。
アドバイザリに記載されている正確なHTTPメソッド(GETまたはPOST)とボディ/ヘッダーを設定。
コマンド出力
デバイスの動作に応じて:
レスポンスにコマンド出力が直接含まれる場合があります。
または、一般的なステータスのみが表示され、副作用(例:新しいファイル、ネットワークコールバック)を通じて成功を推測する必要がある場合があります。
自動的に成功を検出したい場合は、それに応じて解析ロジックを調整します。
CVE-2026-0709 の公式ベンダーアドバイザリ/技術解説書を読みます。
以下を特定します:
エンドポイントURL(パス)。
脆弱なパラメータ。
必要な認証方法。
スクリプトを編集します:
authenticate() を正しいログインパスとフィールドで更新します。
exploit_command_injection() を正しいパスとパラメータ名で更新します。
ラボ内のテストデバイスに対してスクリプトを実行します。
コマンド実行の証拠(例:id または uname -a の出力)がないかレスポンスを確認します。
このPoCは、教育、研究、および防御的セキュリティ目的で提供されています。これは本番グレードのエクスプロイトやスキャナーではありません。コードを十分にレビューしてテストし、常に組織のセキュリティポリシーと法的要件に従ってください。