Exploit Jenkins in the Cloud

Exploit Jenkins in the Cloud


Azure PwnedLabs

ip=10.1.0.130

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn $ip -oG allPorts

ssh_command.

nmap -sCV -p22,8080 $ip -oN targeted

ssh_command.

whatweb http://10.1.0.130:8080

ssh_command.

Nos dirigimos a http://10.0.130.8080

echo "10.1.0.130 jenkins.local" | sudo tee -a /etc/hosts

ssh_command.

Podemos ver los errores en jenkins y vemos los siguientes:

ssh_command.

Para poder ver las credenciales nos dirigimos a S3 Explorer. Y vemos un bucket llamado jenkins-config.load.

ssh_command.

aws sts get-caller-identity

ssh_command.

aws s3 ls jenkins-config-load

Vemos que tipo de archivos se encuentran en el bucket.

ssh_command.

aws s3 cp s3://jenkins-config-load/config.xml .

Bajamos el archivo config.xml

batcat confi.xml

ssh_command.

Se puede llegar a la conclusion que en este sitio se encuentra un directorio admin.

Nos dirigimos a Credenciales en el dashboard.

ssh_command.

En inspector cambiamos el tipo a texto.

ssh_command.

Y ahora se despliega la contrasena.

ssh_command.

En el dashboard nos dirigimos a Script Console y usamos hudson para poder decifrar la constrasena.

ssh_command.

aws sts get-caller-identity

Hacemos un whoami de aws para verificar que somos el usuario correcto.

ssh_command.

aws s3 ls jenkisn-config-load/admin/

aws s3 cp s3://jenkins-config-load/admin/jenkins-backup.sh .

grep -niE 'username|password' jenkins-backup.sh

ssh_command.

Adquirimos las credenciales que usariamos en el ultimo paso.

Despues nos dirigimos de nuevo al Script console. http://jenkins.local:8080/manage/script

ssh_command.

Corremos el siguiente script:

ssh_command.

De ultimo copiamos nuestra llave publica y correcmos lo siguiente:

ssh_command.

ssh -i id_ed25519 jenkins@jenkins.local

ssh_command.

su -

Introducimos la contrasena que encontramos en el paso anterior.

cat /root/flag.txt

ssh_command.

© 2026 Cu3rv0x