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
poc-CVE-2024-23897 — CVE-2024-23897: Beliebiges Dateilesen in Jenkins führt zu RCE | Kitploit
Tools/GitHubGitHub/vmc8ll/poc-cve-2024-23897
SchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPenetrationstestsRed TeamingPayload-Entwicklung
GitHubvmc8ll/poc-cve-2024-23897

poc-CVE-2024-23897

CVE-2024-23897: Beliebiges Dateilesen in Jenkins führt zu RCE

Repository anzeigen
vor 5 MonatenNoch 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

poc-CVE-2024-23897

CVE-2024-23897: Beliebiger Dateizugriff in Jenkins führt zu RCE 🎯 Betroffene Produkte und Versionen

root@kitploit:~
- Produkt: Jenkins (Continuous Integration/Continuous Delivery Server)
- Versionen: Jenkins 2.441 und früher, Jenkins LTS 2.426.2 und früher
- Behoben in: Jenkins 2.442, Jenkins LTS 2.426.3

📝 Beschreibung

CVE-2024-23897 ist eine kritische Sicherheitslücke in Jenkins, die es nicht authentifizierten Angreifern ermöglicht, beliebige Dateien auf dem Dateisystem des Jenkins-Controllers zu lesen. Die Sicherheitslücke besteht, weil Jenkins eine Funktion seines CLI-Befehlsinterpreters nicht deaktiviert, die ein '@'-Zeichen gefolgt von einem Dateipfad durch den Inhalt der Datei ersetzt.

Dieser Fehler kann in Kombination mit anderen Techniken zu Remote Code Execution (RCE) führen, was ihn besonders gefährlich für Organisationen macht, die Jenkins in ihren CI/CD-Pipelines einsetzen. 🔍 Details zur Sicherheitslücke Grundursache

Die Sicherheitslücke geht auf die expandAtFiles()-Funktion in der Klasse org.kohsuke.args4j.CmdLineParser zurück. Wenn der Parser CLI-Argumente analysiert und auf ein '@'-Symbol gefolgt von einem Dateipfad trifft, liest und erweitert er den Inhalt dieser Datei. Angriffsvektor

Angreifer können diese Sicherheitslücke über die Jenkins-CLI-Schnittstelle ohne Authentifizierung ausnutzen: bash

java -jar jenkins-cli.jar -s http://target-jenkins-server:8080/ help @/etc/passwd

Technische Analyse Einschränkungen beim Dateilesen

  • Ohne Authentifizierung: Nur die ersten 3 Zeilen der Datei können gelesen werden (abhängig vom CLI-Befehl)
  • Mit 'Overall/Read'-Berechtigung: Der vollständige Dateiinhalt kann gelesen werden
  • Binärdateien: Können extrahiert werden, aber möglicherweise von Kodierungsproblemen betroffen (Windows-1252 unter Windows liefert bessere Ergebnisse als UTF-8 unter Linux)

Erweiterung der Angriffsfläche

  1. Anmeldeinformationen extrahieren:
    • /var/jenkins_home/credentials.xml für verschlüsselte Anmeldeinformationen lesen
    • /var/jenkins_home/secrets/master.key und hudson.util.Secret zur Entschlüsselung lesen
    • Anmeldeinformationen mit der Jenkins-Script-Konsole entschlüsseln: println(Hudson.util.Secret.fromString("{XXX=}").getPlainText())
  2. „Remember-me“-Cookies fälschen:
    • Administrativen Zugriff durch Fälschen von Authentifizierungs-Cookies erlangen
  3. Beliebigen Code ausführen:
    • RCE über Resource Root URL, XSS oder CSRF-Vektoren erreichen

💥 Auswirkungen Sofortige Auswirkungen

  • Vertraulichkeit: Vollständige Offenlegung aller Dateien auf dem Jenkins-Server (Quellcode, Anmeldeinformationen, SSH-Schlüssel, Token)
  • Integrität: Angreifer können Builds, Pipelines und Konfigurationen ändern
  • Verfügbarkeit: Potenzial für Denial-of-Service oder Ransomware-Einsatz

Ausnutzung in der realen Welt

  • Hinzugefügt zum Katalog der von CISA bekannten ausgenutzten Sicherheitslücken (KEV)
  • Von Ransomware-Banden (RansomEXX) genutzt, um Infrastrukturen zu kompromittieren
  • Vom Bedrohungsakteur IntelBroker ausgenutzt, um GitHub-Repositories zu stehlen und IT-Dienstleister zu kompromittieren

🔧 Erkennung Indikatoren für eine Kompromittierung

Erfolgreiche Ausnutzungsversuche können erkannt werden durch:

HTTP-Anfragemuster: text

POST /cli?remoting=false HTTP/1.1 Content-type: application/octet-stream [binary payload containing @/path/to/file]

Typische Payload-Beispiele:

  • @/etc/passwd
  • @/var/jenkins_home/secrets/initialAdminPassword
  • @/etc/os-release

Splunk-Erkennungsabfrage text

index=web uri="/cli?remoting=false" http_method=POST http_status=200

🛡️ Abschwächung Offizieller Fix

Auf gepatchte Versionen aktualisieren:

  • Jenkins ≥ 2.442
  • Jenkins LTS ≥ 2.426.3

Vorübergehende Abschwächung

Wenn ein sofortiges Patchen nicht möglich ist:

  • Jenkins-CLI-Zugriff deaktivieren
  • Java-Systemeigenschaft setzen: hudson.cli.CLICommand.allowAtSyntax=false
  • Netzwerkzugriff auf die Jenkins-Admin-Oberfläche einschränken
  • WAF-Regeln implementieren, um Anfragen mit @/ Mustern zu blockieren

🔗 Referenzen

  • NVD-Eintrag
  • Jenkins-Sicherheitshinweis
  • CISA-KEV-Katalog
  • Splunk-Forschung
  • Tenable CVE-Seite

📦 Erstellen und Ausführen bash

Build the exploit

go build -o jenkins-cve-2024-23897 exploit.go

Run the exploit

./jenkins-cve-2024-23897 http://target-jenkins:8080 /etc/passwd

Run with Go directly

go run exploit.go http://target-jenkins:8080 /etc/passwd

🎯 Anwendungsbeispiele bash

Read sensitive files

./jenkins-cve-2024-23897 http://jenkins.internal:8080 /etc/passwd ./jenkins-cve-2024-23897 http://localhost:8080 /var/jenkins_home/secrets/initialAdminPassword

Read Windows file (if Jenkins runs on Windows)

./jenkins-cve-2024-23897 http://win-jenkins:8080 C:/Windows/win.ini

⚙️ Funktionsweise

  • Sitzungsinitialisierung: Erzeugt eine eindeutige 20-Byte-Sitzungs-ID
  • Payload-Erstellung: Erstellt binären Payload mit help @/path/to/file-Struktur
  • Upload-Phase: Sendet Payload an den Jenkins-CLI-Endpunkt
  • Download-Phase: Ruft Dateiinhalt aus der Antwort ab
  • Ausgabe: Zeigt den Dateiinhalt oder eine Fehlermeldung an

📊 Funktionen

  • Reine Go-Implementierung – Keine externen Abhängigkeiten
  • Plattformübergreifend – Funktioniert unter Windows, Linux, macOS
  • Konfigurierbare Timeouts – Anpassbar für langsame Netzwerke
  • Saubere Fehlerbehandlung – Detaillierte Fehlermeldungen
  • Binärdatei-sicher – Verarbeitet sowohl Text- als auch Binärdateien

⚠️ Wichtige Hinweise

  • Nur zu Bildungszwecken – Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie eine Testberechtigung haben
  • Nicht authentifizierte Lesevorgänge – Ohne Authentifizierung sind nur die ersten ~3 Zeilen lesbar
  • Binärdateien – Können von Kodierungsproblemen betroffen sein (für eine bessere Binärextraktion Windows-Ziel verwenden)
Tool herunterladen