
著者: Niranjan Pokhrel
独立した研究プロジェクトとして、公開されているVMware vCenter Serverの重大な脆弱性を隔離されたホームラボで再現・文書化し、脆弱性クラス、悪用手順、防御的緩和策を理解することを目的としています。
| CVE | CVE-2021-21972 |
| CVSSv3基本値 | 9.8 (Critical) |
| ベンダー勧告 | VMSA-2021-0002 |
| 影響を受ける製品 | VMware vCenter Server 6.5 / 6.7 / 7.0 |
| 脆弱性クラス | 認証なしの任意ファイルアップロード → リモートコード実行 |
| ステータス | VMwareがパッチを公開済み(2020年11月~2021年2月)。ラボでは研究目的のため意図的に古い隔離されたバージョンを使用。 |
vCenter ServerはVMware仮想化インフラストラクチャの中央管理プレーンであり、これを侵害することは仮想データセンター全体の侵害を意味します。この脆弱性は、単一のプラグインエンドポイントでの認証チェックの欠如が、ホスト全体の乗っ取りにまで拡大する典型的な例です。私はこのラボを構築し、CVE勧告を読むだけでなく、攻撃対象領域、悪用チェーン、そして同様に重要である防止策と防御的検出方法を実際に理解することを目指しました。
この脆弱性は vSphere Client(HTML5)に存在し、具体的には認証を必要とせずにファイルアップロードエンドポイント(/ui/vropspluginui/rest/services/uploadova)を公開している vCenter Server プラグインにあります。ポート443へのネットワークアクセスを持つ攻撃者は、このエンドポイントに細工した POST リクエストを送信し、基盤となるOSのWeb公開ディレクトリに任意のファイル(Webシェルを含む)をアップロードできます。これにより、攻撃者はvCenterサービスの権限でコード実行が可能となり、事実上アプライアンスを完全に制御できます。
大まかな攻撃チェーンは次のとおりです。
本番データを含まない、完全に隔離された非インターネット接続の仮想ネットワークで構築:
(元のビルドの具体的なIPアドレス、資格情報、インフラストラクチャの詳細は、この公開レポートから意図的に省略しています。)
脆弱性の存在は、ターゲットのアップロードエンドポイントがパッチ適用前の脆弱性と一致する応答をするかどうかをチェックする公開Nmap NSEスクリプトを使用して、防御側(つまりブルーチームや監査人)が確認できます。これは、脆弱性スキャナーや内部セキュリティチームが、攻撃者に先んじてネットワーク上の公開されたパッチ未適用のvCenterインスタンスを特定するために実行するのと同じ種類のチェックです。
nmap -p443 --script CVE-2021-21972.nse <target-ip>
脆弱なターゲットはスキャン出力でVULNERABLE (Exploitable)としてフラグが立てられ、それが直ちにパッチ適用を優先するトリガーになります。
このCVEの動作する概念実証エクスプロイトは2021年から公開されています(元々はセキュリティ研究者 chacka0101 によって公開され、参考文献にリンクされています)。このプロフィールからすぐに実行可能なRCEペイロードを配布しないという観点から、ここではエクスプロイトコードを再現しません。このレポートの目的はツールではなく、理解です。要約すると、公開されているエクスプロイトは上記のステップ2〜3を自動化します。JSP Webシェルを想定されたアップロード形式にパッケージ化し、脆弱なエンドポイントにPOSTし、Web公開パスに配置されたことを確認し、それを使用して攻撃者へのリバースシェルをトリガーします。
このプロジェクトは、教育および専門能力開発の目的で、完全に隔離された非本番ラボ環境で実施されました。許可なくシステムにアクセスすることはありませんでした。