Photobomb
Writeup mesin Hack The Box Photobomb
Port Scanning
Pertama, kita lakukan port scanning pada target.
Output dari nmap menunjukkan bahwa port yang terbuka hanya port 80 dan 22.
Sambil kita lakukan full port scan, kita bisa asumsikan bahwa kemungkinan kita akan mendapatkan akses masuk lewat aplikasi yang berada di port 80.
Web Exploitation
Saat melihat source dari halaman depan aplikasi, kita mendapati file photobomb.js yang dapat diakses melalui url berikut: http://photobomb.htb/photobomb.js
Setelah melakukan fuzzing semua parameter pada fitur Download Photo, saya mengkonfirmasi adanya kerentanan command injection pada parameter filetype.
Untuk konfirmasi, pertama kita siapkan terlebih dahulu web server di mesin kita untuk menerima output dari command yang kita kirim.
Lalu pada parameter filetype, kita masukkan command
Sesuaikan sendiri untuk IP dan portnya dengan IP mesin kalian.
Berikut screenshot saat command injection dikirim melalui Burp Repeater.
Dan berikut response yang kita terima pada HTTP server yang sudah kita siapkan sebelumnya.
Disitu terlihat hasil dari decode base64 nya adalah output dari command uname -a yang kita kirim sebelumnya.
Get Shell User Access
Setelah mengkonfirmasi adanya kerentanan Command Injection, saya mengubah payload sebelumnya dengan payload reverse shell. Namun entah payload saya yang salah, server mesin Photobomb yang error, atau memang didesain seperti itu, shell yang didapatkan setelah back connect seperti hang dan tidak bisa digunakan untuk menjalankan command apapun.
Solusi akhir yang terpikirkan adalah menambahkan public key SSH dari mesin saya ke server, sehingga saya bisa login ke SSH tanpa menggunakan password.
Referensi: SSH Tanpa Password
Selanjutnya tinggal login SSH menggunakan key.
Get Root Access
Dari user wizard, kita dapat melakukan privilege escalation memanfaatkan path injection. Pertama, kita cek terlebih dahulu apakah user kita dapat menjalankan command sudo tanpa password.
Output
Ada "kesalahan" yang bisa kita eksploitasi disini yakni saat mengeksekusi sudo, kita juga dapat mengatur env (SETENV), yang nanti dapat kita chaining dengan kesalahan pada scripting file cleanup.sh.
Pada file /opt/cleanup.sh, baris terakhir memiliki kerentanan path injection dimana perintah path dari find tidak di define secara solid sehingga dapat kita manipulasi.
Cara melakukan privilege escalation dari kerentanan ini:
Last updated