Editorial
Information Gathering
Port and Service
Nmap scan report for 10.10.11.20
Host is up (0.026s latency).
Not shown: 65533 closed tcp ports (reset)
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: Did not follow redirect to http://editorial.htb
|_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 32.29 secondsSetup
HOST
Initial Access
pada website dapat form "Publish with us", disini terdapat 2 form untuk set book cover, baik melalui url, atau file upload

SSRF - Dev
disini saya mencoba pada bagian bookurl apakah aplikasi tersebut melakukan request kepada url yang dikirimkan atau tidak


seperti yang dapat dilihat pada gambar diatas, aplikasi tersebut melakukan request ke url yang diinputkan. disini aplikasi tersebut menyimpan response body dari url tersebut

salah satu dampak dari SSRF adalah saya dapat melakukan pencarian port internal, khususnya terhadap internal webserver, disini saya akan menggunakan FFUF untuk melakukan fuzzing pada port

disini saya menemukan webserver yang berjalan pada port 5000, selanjutnya saya memeriksa response body dari internal webserver tersebut


internal webserver tersebut adalah sebuah API, disini terdapat beberapa endpoint yang tersedia. saya memeriksa response body dari setiap endpoint dan saya mendapatkan credential dari endpoint berikut
saya mendapatkan credential dev, saya mencoba untuk connect ke ssh dan berhasil masuk
Move to Prod
pada home directory user dev terdapat directory apps yang dimana didalamnya terdapat .git, disini saya memeriksa log commit dengan menggunakan git log
selanjutnya saya memeriksa perubahan yang terjadi berdasarkan hash commit dengan perintah git diff. disini saya mendapatkan sebuah credential dari user prod
saya memeriksa apakah prod meruapakan salah satu user atau bukan
ternyata prod merupakan salah satu user dari server tersebut, disini saya mencoba untuk login sebagai prod dan berhasil
Privilege Escalation to root
disini saya memeriksa daftar perintah yang dapat dijalankan oleh prod dengan menggunakan hak akses sudo
user prod dapat menjalankan script clone_prod_change.py dengan sudo, berikut ini adalah script dari file tersebut
script tersebut menggunakan module git, disini saya mencoba untuk memeriksa versi dari module git yang digunakan tersebut dengan cara berikut

versi module git yang digunakan adalah 3.1.29 yang dimana memiliki kerentanan remote code execution

disini saya mencoba untuk memeriksa kerentanan tersebut dengan membuat sebuah file pwned pada folder /tmp
file pwned telah berhasil dibuat pada folder /tmp dengan user root. selanjutnya saya akan membuat sebuah executable file untuk melakukan reverse shell

kemudian saya menjalankan nc listener dan trigger dengan menjalankan perintah berikut
disini saya berhasil mendapatkan root.
Last updated