HackTheBox Ambassador
Information Gathering
Scanning dengan nmap dan mendapatkan hasil seperti dibawah:
Scanning dengan Nikto dan mendapatkan hasil seperti dibawah:
Fuzzing directory dengan berbagai macam tools dan mendapatkan hasil seperti dibawah:
Melihat port 3000 kita disajikan halaman login yang menjalankan grafana dengan versi 8.2.0
, rentan terhadap Traversal Direktori dan Arbitrary File Read ke file lokal. Jalur rentan grafana_url/public/plugins/<'plugin-id'>
di mana <'plugin id'>
adalah id plugin untuk setiap plugin yang diinstal.
Setiap instance grafana dilengkapi dengan plugin yang sudah diinstal sebelumnya seperti plugin Prometheus atau plugin MySQL sehingga dengan beberapa URL ini rentan untuk setiap instance.
Kami dapat mencapai layar masuk dan mengetahui versi grafana, dalam kasus kami menggunakan port 3000 “(Versi v8.2.0 (d7f71e9eae)”
Setelah kita dapat melihat version Grafana kita mencari kerentanan apa yang ada pada Grafana version 8.2.0 ini. Disini kita menemupakan hasil browsing, kita menemukan sebuah Artikel dan Exploit. Untuk Artikel berisi tentang kerentanan ini vk9-sec.com dan Exploit-DB Grafana 8.3.0
Post Exploitation
Disini kita menggunakan payload dari Exploit-DB dan membaca langsung directory traversal menggunakan /etc/passwd
kita dapat melihat secara langsung yang ada pada /etc/passwd.
Disini kita melihat isi file dari /etc/Grafana/Grafana
ini. dan kita mendapatkan informasi sensitive untuk login pada Grafana.
Selanjutnya kita mencari dengan secara manual dengan mengeksekusi menggunakan curl untuk membaca file database dan menyimpannya secara lokal.
Setelah kita mendownload databases tersebut bila kita cari kita disini menemukan informasi sensitive lagi informasi sensitive ini dapat kita gunakan untuk login pada Mysql.
Setelah login pada Mysql dengan password yang di dapat dari databases yang didownload tadi. Disini bila kita membuka databases whackywidget dan melihat tables tersebut muncul users bila kita buka dengan select * from users
, disini kita dapat melihat informasi sensitive lagi.
Disini kita mencoba login pada SSH dengan user Developer dan Password yang telah di decode dari base64
Disini kita mencoba mencari informasi sensitive apa yang ada pada server ini dan apakah kita bisa menaikan user biasa ke user root. Setelah mencarinya kita mendapatkan directory /opt/my-app/*
. directory ini kemungkinan ada informasi sensitive.
Untuk melihat informasi sensitive kita menggunakan command “git show” disini memunculkan informasi token API.
Privileges Escalation
Setelah mencari – cari ternyata ada kerentanan yang terdapat pada consul service
ini yang bisa memuat langsung dengan Remote Code Execution dengan cara menjalankan Token API.
Berikut ini saya dapatkan source code yang bisa user privileges, dengan source code ini kita bisa menaikan user biasa ke user root dengan cara backconnect. Hashicorp Consul RCE via API
Dengan menjalankan source code tadi yang berbentuk file python dengan rhosts target dan lhost ip attacker kita bisa langsung backconnect.
Dan kita bisa langsung mendapatkan user Root.