それでは、ビジネスに取り掛かりましょう。
分析時に、Citrix XenServerの3つのコンポーネントが注目されました。
1. Web Self Service-仮想マシンを管理するためのWebベースのコンソール。
2. vSwitchコントローラー-仮想ネットワーク管理Webコンソール
インフラ
3.ライセンス管理コンソール-XenServerライセンス管理サービス。
XenServerの最新バージョン(6.0.0)は、調査時にテストされました。
Webセルフサービス
このコンポーネントは、仮想マシン管理Webコンソールです。
他のすべてのモジュールと同様に、Webの脆弱性の「標準セット」を発見しました。
- クロスサイトリクエストフォージェリ(CSRF);
- クロスサイトスクリプティング(保存されたXSS);
- URLリダイレクタの悪用;
- HTTP応答の分割
アプリケーションのすべての形式はCSRF攻撃を受けやすく、多くのフィールドのフィルタリングが不十分であり、保存されたXSSが可能になりました。 さらに、ログインページで、URLリダイレクトの乱用とHTTP応答の分割を可能にする非常に「有用な」パラメーターを見つけました。 ビデオは、クッキーを受け取る自動化されたエクスプロイトのアクションを示しています
管理者は最初の3つの脆弱性を使用し、その後「痕跡を掃く」。
- まず、URLリダイレクトの悪用により、管理者を管理対象のページに誘導します。
- このページのスクリプトは、CSRFを使用して、システムに新しいアカウントを作成します。 ユーザー名フィールドにストアドXSSの脆弱性があります。 その助けを借りて、ユーザーのリストを含むページに便利なJavaScriptロードを埋め込み、そこに管理者をリダイレクトします。
- 埋め込まれたJavaScriptコードは管理者Cookieをサーバーに送信し、新しく作成されたアカウントを削除します。
vSwitchコントローラー
このコンポーネントは最も興味深いものでした。 ここで、次の脆弱性が発見されました。
- クロスサイトリクエストフォージェリ(CSRF);
- URLリダイレクタの悪用;
- HTTP応答の分割
- 不十分な承認
vSwitchコントローラーのWebインターフェイスは、REST APIを使用してサーバーと対話します。 これは、各ユーザーアクションに応じてHTTP要求が生成されることを意味します。 権限に応じて、ユーザーは対応するリクエストの実行を許可または禁止されます。
特に、vSwitchコントローラーのWebインターフェイスにより、管理者はシステム構成の完全なスナップショットを取得できます。 これらの画像は、特権ユーザーのみがダウンロードできるようにする必要があります。 しかし、判明したように、読み取り専用権限を持つユーザーは、サービスのREST APIへの要求を手動で生成することにより、スナップショットをダウンロードすることもできます。
GET /ws.v1/nox/snapshot/<snapshot-uuid>/export
<snapshot-uuid>の代わりに、ダウンロードされるスナップショットの識別子が置き換えられます。
すべての写真とその識別子のリストは、リクエストを送信することで取得できます。
GET /ws.v1/nox/snapshot/
スナップショットには、vSwitchコントローラーのすべてのパラメーター、vSwitchコントローラーのユーザー資格情報(ソルトを含む名前とパスワードのハッシュ)、サーバーのSSL証明書と秘密鍵、およびマスターサーバーの特権ユーザーの資格情報が平文で含まれています。 これらの資格情報を使用して、SSHを使用してメインXenServerサーバーに接続し、XenServerインフラストラクチャ全体を制御できます。 そのようなアクセスが取得されると、攻撃者の能力は彼自身の想像力によってのみ制限されます。
説明されている脆弱性自体は、読み取り専用権限を持つユーザー特権の存在を必要とするため、悪用するのは困難です。 ただし、ここではCSRFの脆弱性が助けになります。これにより、既知のパスワードを使用して被害者の管理者に必要なアカウントを静かに作成できます(これにより、管理者がフィッシングリンクをたどるのに十分です)。
ライセンス管理コンソール
このコンポーネントはライセンス管理を目的としており、Flexera Softwareの無料のlmadminライセンスマネージャーに依存しています。 次の脆弱性を検出できました。
- コンテンツのなりすまし;
- クロスサイトスクリプティング(保存されたXSS);
- クロスサイトリクエストフォージェリ(CSRF);
- サービス妨害
リンクをさまよった後、サイトのメインページに興味深いGETパラメーターadminがあり、管理セクションにつながるリンクのアドレスを決定することがあります。 この値は、本格的なXSS攻撃が不可能になるようにフィルターされますが、任意のリソースへのリンクを妨げるものはありません。 サービス拒否は、単一のHTTP要求を送信することで実装できます。
パラメータの1つが配列として渡されます。例:
?admin[]=blah
さらに、攻撃者はシステムで許可される必要はありません。 理由は、配列をスクリプトパラメーターとして渡すときの未処理の例外です。 したがって、この脆弱性を悪用して任意のコードの実行を達成することはできませんでした。
調査時点の最新バージョンのlmadminでは、注目に値します
これらの脆弱性はなくなりました。
要約すると、結論は次のとおりです。リスクの観点から、重要ではない脆弱性を無視すべきではありません。 実際には、集合体でいくつかの単純な脆弱性を使用する場合、攻撃を実行することができ、その結果、攻撃者はシステムを完全に制御できます。 このようなシナリオは、2回以上正常に実装されています(侵入テストの実施時を含む)。
エラーの影響を受けない製品はありません。 脆弱性は常に存在し、消滅することはありません。 また、この場合のように、メーカーが脆弱性レポートに迅速に対応し、パッチをタイムリーにリリースすることは良いことですが、残念ながら、常にそうなるとは限りません。
ただし、リスクは常に最小限に抑えることができます。 これらのギャップのほとんどすべては、XenServer管理インターフェイスへのアクセスを制限する追加の対策を講じることで解決できます。 さらに、これらの脆弱性の多くのトリガーは、単純なCSRF攻撃である可能性があります。 有名な曲の1つにあるように、「疑わしいリンクについては特に気をつけてください」と。