Citrix NetScaler の脆弱性 CVE-2023-3519:ログイン認証情報を採取する JavaScript

Hackers hijack Citrix NetScaler login pages to steal credentials

2023/10/09 BleepingComputer — Citrix NetScaler Gateway において、最近に発見された脆弱性 CVE-2023-3519 を悪用するハッカーたちが、ユーザー認証情報を盗み出すという、大規模なキャンペーンを展開している。Citrix NetScaler ADC/NetScaler Gateway に存在する脆弱性は、2023年7月にゼロデイとして発見された、認証を必要としないリモートコード実行のバグである。8月の初旬までの期間において、この脆弱性は、少なくとも 640台の Citrix サーバのバックドアとして悪用され、その数は8月中旬の時点で 2,000台に達している。


IBM の X-Force によると、Citrix デバイスのアップデート促す警告が何度も出されているが、その攻撃対象は依然として広大だと指摘している。さらに、9月の時点で ハッカーたちは、脆弱性 CVE-2023-3519 を悪用してログイン認証情報を採取する、JavaScript を注入し始めたという。

Netscaler ログインページの変更

Netscaler の認証情報を盗むキャンペーンを X-Force が発見したのは、クライアントが NetScaler デバイスで認証に時間がかかるという事例を調査していたときだった。

そのときの調査によると、ハッカーは脆弱性 CVE-2023-3519 を悪用して侵入し、Citrix NetScaler デバイスの index.html ログイン・ページへ向けて、認証情報を盗み出すという悪意の JavaScript スクリプトを注入していた。

この攻撃は、脆弱な NetScaler デバイスを悪用して、”/netscaler/ns_gui/vpn” にシンプルな PHP Web シェルを書き込む Web リクエストから始まる。この Web シェルにより、攻撃者は侵害されたエンド・ポイントにリアルタイムかつダイレクトにアクセスし、その結果として “ns.conf” ファイルから設定データを収集できるようになる。

続いて攻撃者は、リモートの JavaScript ファイルを参照するための、カスタム HTMLコードを “index.html” ファイルに追加する。

Observed attack chain
Observed attack chain (IBM)

最後の JS スニペットは、クレデンシャル収集用に設計されており、VPN 認証ページの Logon ボタンにカスタム関数をアタッチしている。最終的に、収集されたクレデンシャルは、HTTP POST リクエストを介して攻撃者に流出していく。

Stealing user credentials
Stealing user credentials (IBM)
攻撃の規模

このキャンペーンのために脅威アクターたちは、jscloud[.]ink/jscloud[.]live/jscloud[.]biz/jscdn[.]biz/cloudjs[.]live といった複数のドメインを登録している。

X-Force は、ログインページが変更された NetScaler デバイスの、約 600の IP アドレスを特定したが、そこではクレデンシャルを盗む操作が容易になっているという。被害者の大半は米国とヨーロッパにいるが、侵害されたシステムは世界中に散在している。

Victims map
Victims map (IBM)

このキャンペーンの期間について、X-Force のレポートが指摘するのは、検索されたタイムスタンプに基づくログインページの最も早い修正が、2023年8月11日であるという点だ。つまり、このキャンペーンは、2ヶ月も前から進行していたことになる。

新たに検出されたアーティファクト

IBM のアナリストたちは、この活動について、既知の脅威グループや脅威クラスターに帰属させるには至っていない。しかし、防御者が早期に発見する際に有益な、新しいアーティファクトを取得している。

このアーティファクトは、NetScaler Packet Processing Engine (NSPPE) に関連する、NetScaler アプリケーションのクラッシュログであり、”/var/core//NSPPE*” で見つけられるという。

X-Forced は、「NSPPE のクラッシュ・ファイルのタイム・スタンプが、悪用により作成された PHP Web シェルの、ファイル・システムのタイム・スタンプと一致していることを確認した。その他のケースでは、悪用後の活動の一部として、Web シェルに渡されたコマンドを復元できた」と述べている。

なお、このクラッシュ・ファイルは “.gz ” アーカイブに保存されているため、分析の前に抽出が必要であり、PowerShell などのツールを用いて文字列データの内容を、読み取り可能な形式に変換する必要があるという。

Crash log in original form
Crash log in original, non-readable form (IBM)

システム管理者に対して推奨されるのは、CISA が提供する、修復と検出のガイダンスに従うことである。