Citrix ADCの脆弱性を分析し、企業の内部ネットワークに1分で侵入できるようにします

昨年末、Positive Technologiesの専門家がCitrix ADCソフトウェア CVE-2019-19781の脆弱性を発見しました。これにより、権限のないユーザーがオペレーティングシステムの任意のコマンドを実行できるようになります。世界中で約8万社



脅威にさらされています。さらに悪いことに、Citrix ADCは組織の外部ネットワークと内部ネットワーク間のインターフェースにインストールされています。したがって、この脆弱性を悪用した後、攻撃者は即座に会社の内部ネットワークにアクセスし、プライベートネットワークセグメントに対する攻撃を開発することができます。 今日の記事では、調査の著者が脆弱性をより詳細に分析し、その検出と悪用の詳細を分析します。行こう!







Citrix ADCとは



Citrix ADCは、ソフトウェアベースのアプリケーション配信および負荷分散ソリューションであり、ホストされている場所に関係なく、従来のクラウドおよびWebアプリケーションのパフォーマンスを加速するように特別に設計されています。このようなコントローラーは、ITおよび通信業界で最も広く使用されています。予測によると、2023年までにADCの需要は金融および保険会社から増加するでしょう。



それはどれほど深刻ですか



現在の脅威(脅威情報)の監視中に、158か国から少なくとも8万社が潜在的に脆弱であることがわかりました。脆弱性が発見された時点で、そのような組織の数によるTOP-5には、米国(絶対的なリーダー-すべての脆弱な組織の38%以上が米国に所在)、ドイツ、イギリス、オランダ、オーストラリアが含まれています。



ロシアは、さまざまなビジネスセクターで潜在的に脆弱な企業の総数で26位にランクされ、合計で300を超える組織です。カザフスタンとベラルーシは、脆弱な企業の数でそれぞれ44位と45位にランクされました。



2020年2月の時点で、脆弱な可能性のある組織の数で上位の国には、ブラジル(脆弱性が最初に特定された企業の数の43%)、中国(39%)、ロシア(35%)、フランス(34%)、イタリア(33%)とスペイン(25%​​)。脆弱性を排除する上で最も優れたダイナミクスは、米国、英国、オーストラリアによって示されました。これらの国では、脆弱なデバイスを使い続け、保護対策を講じなかった企業の21%が記録されました。







発見と運用



私が調査を始めた当初、私はパストラバーサルを使用して、権限のないユーザーが認証なしではアクセスできない静的ファイル(/vpn/../vpns/style.css)にアクセスできることがわかりました。これは、Citrix ADCのブラックボックス分析中に見つかりました。







上記の動作に興味を持ったので、Citrix ADCイメージを見つけてローカルで実行することにしました(助けてくれた同僚のYuri Aleinovに感謝します)。



まず、このアプリケーションのWebインターフェースを担当するApache Webサーバー設定(/etc/httpd.conf)を分析しました。下の図でわかるように、パターン「/vpns/portal/scripts/.*\.pl$」に該当するパスは、ModPerl ::レジストリ関数によって処理されます。フォルダからperlスクリプトを実行することが可能であることが判明/ netscaler /ポータル/スクリプト/許可なし。







その後、/ vpn /../ vpns / portal / scripts / [scriptName] .plアクセスして、呼び出すことができるスクリプトを分析し始めました







ほとんどすべてのスクリプトが、NetScaler :: Portal :: UserPrefsモジュール(/netscaler/portal/modules/NetScaler/Portal/UserPrefs.pmのcsd関数を呼び出します。この関数は、HTTPヘッダーNSC_USERおよびNSC_NONCEで機能します。 2番目のヘッダーでは興味深いアクションは実行されませんが、NSC_USERヘッダーの値がファイル名として使用されます。ファイル(名前がNSC_USERヘッダーの値として渡されたもの)が存在しない場合、このファイルは特定の構造で作成され、すでに存在する場合は、$ doc変数が解析され、それに基づいて生成されます... ファイル名にパストラバーサルを使用すると、書き込み権限を持つファイルシステムの任意のディレクトリに拡張子「.xml」のファイルを作成できることがわかります。これを確認するには、「../../../../ tmp / myTestFile」という行を「NSC_USER」ヘッダーの値として送信し、ファイルが「/ tmp /」ディレクトリに存在するかどうかを確認します。 この段階では、拡張子「.xml」のファイルを作成できますが、ファイルの内容を制御する方法はありません。 スクリプト「newbm.pl」にも注目してみましょう。このスクリプトも、関心のあるディレクトリにあります。このスクリプトはPOSTパラメーターを受け取り、「url」、「title」、「desc」などのパラメーターの値をファイルに書き込みます(ファイルの名前はNSC_USERヘッダーで指定されています)。



























これで、任意の場所にxmlファイルを作成できるだけでなく、コンテンツを部分的に制御することもできます。



RCEへのパスを続けるには、Webサーバーの構成に戻り、もう1つのパス(/ vpns / portal /)がperl関数NetScaler :: Portal :: Handler(/ netscaler / portal / modules / NetScaler / Portal / Handler.pm







ハンドラー関数は、最後の「/」文字の後のパスの一部をファイル名として取得し、「/ netscaler / portal / templates /」フォルダーで検索し、「Template Toolkit」ライブラリーを使用してこのファイルをレンダリングしようとします。 したがって、テンプレートを含むフォルダーにファイルをロードできる場合は、そのレンダーを呼び出すこともできます。











テンプレートツールキットライブラリが標準の方法を使用してperlコードを実行することができないようなモードで動作するという事実により、さらなる悪用は複雑になります。たとえば、「[%PERL%]ディレクティブは使用できません







これらの制限に基づいて、標準ライブラリプラグインの脆弱性を探すことにしました。 "Datafile"(/ usr/ local/lib/perl5/site_perl/5.14.2/mach/Template/Plugin/Datafile.pm )のようなプラグインを検討してください。ファイルはかなり小さいので、2つの引数を指定した標準関数「open」の呼び出しにすぐに注目します。この使用は安全ではなく、RCEにつながる可能性があります。







この脆弱性をローカルで悪用しようとしています。チェックとして、「/ tmp /」フォルダに「testRCE」ファイルを作成します。







現時点では、システムの任意の場所にファイルを作成し、テンプレートツールキットライブラリのコンテンツと脆弱性を部分的に制御できます。許可されていないユーザーから任意のコマンドを実行するために、これらすべてを使用します。



テンプレートを含むフォルダーにファイルを作成します。テンプレートをレンダリングすると、コードが実行され、Webコマンドラインインタープリターが作成されます。







次に、このファイルをレンダリングします。







前に作成したスクリプト(Webシェル)に移動し、任意のOSコマンドを実行します。







自分を守る方法



Citrixは、この脆弱性に対処するためのガイダンスリリースしました。さらに、メーカーは、ユーザーがすべての脆弱なソフトウェアバージョンを推奨バージョンにすぐに更新することを推奨しています。



企業はアプリケーションレベルのファイアウォールを使用して、潜在的な攻撃をブロックできます。たとえば、PTアプリケーションファイアウォールはそのような攻撃をすぐに検出します。リアルタイム保護のための危険な要求に対しては、システムをブロッキングモードにする必要があります。識別された脆弱性の全ライフタイム(ソフトウェアの最初の脆弱なバージョンのリリース以降、つまり2014年以降に関連している)を考慮すると、この脆弱性の悪用の可能性(したがって、インフラストラクチャの侵害)を振り返って特定することも重要です。



2019年12月18日以降、PT Network Attack Discoveryの ユーザーはこの脆弱性をオンラインで悪用する試みを検出する特別なルールを利用できます。



作成者:Mikhail Klyuchnikov(@ __mn1__)、Positive Technologies



タイムライン



  • 2019年12月5日Citrixに報告
  • 2019年12月19日Citrixからの緩和策をリリース



All Articles