- Published on
HACKTHEBOX - Instant WriteUp
- Authors

- Name
- Alvin Dhiyaul H

Executive Summary
Serangan dimulai dengan penemuan sebuah aplikasi mobile (instant.apk) yang terhubung ke situs web http://instant.htb.
Melalui proses reverse engineering pada APK tersebut, dua subdomain penting berhasil diidentifikasi:
- mywalletv1.instant.htb – digunakan untuk fungsi aplikasi.
- swagger-ui.instant.htb – menampung dokumentasi API.
Selama analisis APK, sebuah JWT token administrator yang bocor ditemukan, yang memungkinkan akses tidak sah ke dokumentasi API.
Akses ini mengungkapkan adanya kerentanan directory traversal yang kemudian dieksploitasi, sehingga menyebabkan kompromi pada server instant.htb.

Reconnaissance
Scanning open port untuk mengetahui service yang sedang berjalan diserver
alvin@0xOff Instant % nmap -sC -sV 10.10.11.37
Starting Nmap 7.95 ( https://nmap.org ) at 2024-11-19 10:18 WIB
Nmap scan report for instant.htb (10.10.11.37)
Host is up (0.037s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 31:83:eb:9f:15:f8:40:a5:04:9c:cb:3f:f6:ec:49:76 (ECDSA)
|_ 256 6f:66:03:47:0e:8a:e0:03:97:67:5b:41:cf:e2:c7:c7 (ED25519)
80/tcp open http Apache httpd 2.4.58
|_http-title: Instant Wallet
|_http-server-header: Apache/2.4.58 (Ubuntu)
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: 1 IP address (1 host up) scanned in 16.52 seconds
Terdapat dua port terbuka yaitu port 22 & 80, jadi dapat kita simpulkan bahwasanya terdapat sebuah service web server yang berjalan diserver.
Setting hosts pada file config /etc/hosts
sudo echo "10.10.11.37 instant.htb" | sudo tee -a /etc/hosts
Dan ketika saya mengakses Web, saya di suguhkan dengan sebuah Web Exchange Crypto yang dimana kita diarahkan untuk mendowload sebuah Mobile Apps dari Exchange tersebut.


Lalu hal pertama yang saya lakukan adalah mencoba untuk melihat file network config apakah terdapat sebuah subdomain dari host instant.htb yang dimana file tersebut terdapat pada sebuah path direktori res/xml/network_security_config.xml

Dan benar saja, terdapat dua subdomain yang saya temukan di file network_security_config.xml yaitu subdomain mywalletv1.instant.htb dan swagger-ui.instant.htb
Lalu tambahkan juga kedua subdomains tersebut pada file config /etc/hosts
sudo echo "10.10.11.37 instant.htb swagger-ui.instant.htb mywalletv1.instant.htb" | sudo tee -a /etc/hosts
Lalu saya mencoba untuk mengakses subdomains swagger-ui.instant.htb, dan ternyata ketika saya mencoba untuk mengakses subdomain tersebut terdapat sebuah direktori /apidocs yang berisi tentang cara penggunaan api yang ada di server.

Dan ketika saya ingin mencoba melakukan interaksi dengan API, ternyata kita di haruskan untuk memiliki sebuah token Authorization.

Sehingga kita perlu mencari Token BearerAuth di apk yang sudah saya lakukan Reversing sebelumnya.
Seperti hal yang biasa saya lakukan ketika sedang melakukan Static Analysis ketika sedang Melakukan Penetration Testing di Android Application, saya biasa mencari semua Activity di file AndroidManifest.xml

Dan dapat di lihat bahwasanya semua Activity yang ada di apps berada pada direktori Source code/com/instantlabs.instant
Setelah mengecek semua Activity saya berhasil menemukan sebuah endpoint API dan beserta Authorization Token nya

Kemudian saya mengambil Authorization Token nya untuk digunakan pada /apidocs yang ada di subdomain swagger-ui.instant.htb

Kemudian setelah saya berhasil mendapatkan Akses pada API, ada hal yang menarik menurut saya yaitu Endpoint API yang dapat mengakses sebuah Logs yang ada di API.
NOTE
Logs adalah sebuah bagian penting ketika kita sedang melakukan sebuah Penetretion Testing, karena dari sebuah log kita dapat mengetahui aktivitas apa saja yang tercatat di dalam sebuah file log, bahkan terkadang kita juga dapat menemukan sebuah Informasi Penting seperti Credential yang seharusnya bersifat privat.
Kemudian saya mencoba mengakses sebuah Endpoint yang dapat melihat semua file log yang ada di server, seperti halnya di bawah ini.

Dapat dilihat pada Respons yang muncul ketika saya mencoba mengakses Endpoint http://swagger-ui.instant.htb/api/v1/admin/view/logs yang dimana dapat dilihat kita mendapat sebuah Informasi bahwasanya terdapat nama user aktif di server yaitu shirohige dan terdapat nama file log 1.log
Selanjutnya saya mencoba untuk melihat lebih dalam lagi yaitu dengan cara membaca file 1.log pada Endpoint http://swagger-ui.instant.htb/api/v1/admin/read/log?log_file_name=1.log

Ternyata tidak ada sebuah Informasi yang begitu menarik ketika saya mencoba membaca file 1.log, tetapi saya juga tertuju pada sebuah parameter log_file_name= yang di mana parameter ini digunakan untuk mengabil file log yang ada direktori user yaitu/home/shirohige/log sehingga saya mencoba untuk melakukan percobaan Directory Traversal untuk mencoba mengakses flag user yang ada di user shirohige

Dan kita berhasil mendapatkan Flag user.txt dengan cara melakukan serangan Directory Traversal
Foothold
Setelah kita berhasil mengetahui Flag user dengan menggunakan Teknik Directory Traversal, sekarang saya mencoba untuk mengambil sebuah credential ssh key untuk mengakses server melalui SSH

Selanjutnya kita dapat menggunakan id_rsa yang sudah berhasil kita exfiltrate untuk Login ke server

Privilege Escalation to Root Access

backups 
session-backup.dat 
Selanjutnya kita dapat melakukan cracking file session-backup.dat menggunakan Tools SolarPuttyCracker

Dan setelah kita berhasil melakukan cracking file backups.dat kita berhasil mengetahui password untuk login dengan privilege root

Dan kita berhasil mendapatkan flag root.txt
