Jenkins Arbitrary File Read to RCE via "Remember Me"
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Neste post do blog, é possível encontrar uma ótima maneira de transformar uma vulnerabilidade de Local File Inclusion no Jenkins em RCE: https://blog.securelayer7.net/spring-cloud-skipper-vulnerability/
Este é um resumo criado por IA da parte do post onde o craft de um cookie arbitrário é abusado para obter RCE abusando de uma leitura de arquivo local até que eu tenha tempo para criar um resumo por conta própria:
Feature Requirement: "Lembre-se de mim" deve estar habilitado (configuração padrão).
Access Levels: O atacante precisa de permissões Overall/Read.
Secret Access: Capacidade de ler tanto conteúdo binário quanto textual de arquivos-chave.
User Information Retrieval
Acesse a configuração do usuário e segredos de $JENKINS_HOME/users/*.xml
para cada usuário para coletar:
Nome de usuário
Semente do usuário
Timestamp
Hash da senha
Secret Key Extraction
Extraia chaves criptográficas usadas para assinar o cookie:
Chave Secreta: $JENKINS_HOME/secret.key
Chave Mestra: $JENKINS_HOME/secrets/master.key
Arquivo de Chave MAC: $JENKINS_HOME/secrets/org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices.mac
Token Preparation
Calcule o Tempo de Expiração do Token:
Concatene os Dados para o Token:
MAC Key Decryption
Descriptografe o Arquivo de Chave MAC:
Signature Computation
Calcule HMAC SHA256:
Cookie Encoding
Gere o Cookie Final:
Session Authentication
Recupere os Tokens CSRF e de Sessão:
Faça uma solicitação para /crumbIssuer/api/json
para obter Jenkins-Crumb
.
Capture JSESSIONID
da resposta, que será usado em conjunto com o cookie de lembrete.
Command Execution Request
Envie uma Solicitação POST com Script Groovy:
O script Groovy pode ser usado para executar comandos em nível de sistema ou outras operações dentro do ambiente Jenkins.
O comando curl de exemplo fornecido demonstra como fazer uma solicitação ao Jenkins com os cabeçalhos e cookies necessários para executar código arbitrário de forma segura.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)