[HackTheBox] – Wall

Sebuah machine Hack The Box dengan ip 10.10.10.157, nampaknya akan didasarkan oleh eksploitasi CVE.

Mari kita lakukan nmap terhadap ip tersebut

Lakukan dirbuster dengan wordlist medium

Terdapat directory yang menarik bernama monitoring dengan error code 401, yang berarti memerlukan authentication. Mari kita coba buka

Kita menemukan page yang di proteksi oleh basic http authentication, penulis mencoba melakukan bruteforce dengan username admin. Namun setengah jalan bruteforcing, menemukan cara yang lebih menarik untuk dilakukan. Penulis melakukan verb tampering, memanipulasi verb based access control untuk mencoba mendapatkan akses tanpa harus melakukan authentikasi http.

Berhasil, kita bisa melihat hyperlink untuk redirection bisa dilihat di html pula, mari kita ikuti.

http://10.10.10.157/centreon

Sebuah login page Centreon, diberikan pula versi dari Centreon nya yaitu v 19.04.0

Penulis mencoba credentials basic seperti admin admin, admin password, root root, root toor, semuanya tidak berhasil. Penulis juga melakukan bruteforcing dengan menggunakan patator dengan username admin dan menggunakan wordlist rockyou namun gagal. Penulis kemudian mencari exploit yang mungkin bisa digunakan untuk melakukan bypass login page Centreon ini.

Centreon v19.04 Remote Code Execution (CVE-2019-13024)

Ternyata ada tetapi seperti judulnya, exploit tersebut merupakan exploit RCE, sebelum itu mari kita lihat terlebih dahulu script yang diberikan penemu CVE nya.

Ternyata bruteforce yang kita lakukan dari tadi gagal karena kita tidak menyertakan CSRF token saat proses submit nya. Penulis berencana mendaur ulang code diatas untuk dijadikan scipt br

uteforcing login credentials. Penulis membuat script seperti berikut

Kita mendapatkan credentialsnya !

Username : admin

Password : password1

Penulis kembali melihat blog CVE diatas

Filter data pada nagois_bin hanya dengan menggunakan htmlentities sehingga kita memungkinan melakukan RCE dan mendapatkan reverse shell. nagios_bin merupakan data yang diambil dari input yang ada di bawah kategori configuration, poller configuration, pada form yang bernama Monitoring Engine Binary, penulis pertama mencoba melakukan command seperti

Echo asdasdasd # untuk mengikuti contoh di pada blog CVE tersebut

Nampaknya kali ini aplikasi Centreon dilengkapi oleh WAF sehingga terdapat beberapa char yang di blacklist. Setelah percobaan beberapa kali, ternyata character yang di blacklist berupa (spasi) dan pagar. Sedangkan pada blog CVE dikatakan bahwa kita memerlukan pagar untuk comment out sisa dari syntax nya dan tanpa spasi akan sangat menyulitkan penulis untuk melakukan RCE.

Penulis sempat stuck untuk waktu yang lama karena mencoba banyak metode yang berujung kegagalan hehe. Setelah berapa lama penulis menemukan kata kunci untuk dicari di google yaitu Internal Field Separator atau (IFS). Kita bisa mengubah cara shell membaca syntax atau token yang tadinya dipisah oleh spasi menjadi character apapun yang kita inginkan sehingga command yang biasanya seperti

echo permenmilkita

dapat ditulis menjadi

IFS=.;haha=echo.permenmilkita;$IFS

Mari kita coba jalankan di script yang sudah kita modifikasi sesuai credentials yang sudah kita dapatkan tadi, poller ID, poller name, dan option lainnya. Kita akan memainkan paramter nagios_bin untuk melakukan RCE. Perlu diperhatikan bahwa script yang disediakan penemu CVE tidak dapat digunakan mentah mentah. Terlebih lagi saat pengerjaan box ini, penulis menemukan banyak orang iseng yang mengganti poller ID milik peserta lain sehingga mengacaukan progress yang sudah dikerjakan dan menimbulkan error yang tidak seharusnya terjadi.

Ketika script dijalankan,

Kita berhasil melakukan echo namun terlihat ada parameter sisa yang seharusnya dibuang oleh tanda pagar tadi yang ikut ter echo yaitu -v, ini mungkin menyusahkan kedepannya.

Mari kita menyiapkan script bernama new untuk reverse shell pada port 1234

Membuka simplehttpserver menggunakan python pada port 8000

python -m SimpleHTTPServer 8000

Kita akan melakukan RCE di Centreon untuk menyuruhnya mendownload file reverse shell kita dan menjalankannya

Berhasil, kita mendapatkan shell. Mari kita ubah menjadi interactive shell terlebih dahulu

command uname -a akan menghasilkan

Linux Wall 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Mari kita menggunakan sebuah script open source bernama LinEnum.sh untuk melakukan enumerasi otomatis terhadap box ini. LinEnum.sh berfungsi sebagai tools untuk kita menjalankan enumerasi secara lengkap di local linux tersebut dengan tujuan mencari task atau process yang dapat digunakan untuk melakukan privelege escalation.

Kita akan mengambilnya dari mesin lokal kita, jadi menggunakan step yang sama seperti diatas, namun bisa langsung dilakukan lebih mudah karena kita sudah memiliki interactive shell. Setelah result dari LinEnum sudah di save, penulis mengambil resultnya ke mesin lokal milik penulis untuk diteliti lebih lanjut, karena ditakutkan saat pengerjaan terjadi machine reset dan data LinEnum hilang, lagipula lebih mudah mengecek hasil LinEnum di mesin sendiri haha.

Kita akan mengecek hal hal yang paling obvious terlebih dahulu, seperti processes non generic yang berjalan, scheduled jobs, dan program dengan setuid. Saat pengerjaan penulis mengalami kesulitan karena di bagian processes banyak sekali shell yang di input oleh peserta lain dan terdaftar disana sehingga membuat penulis sempat kebingunan.
Berikut merupakan contoh process di result LinEnum namun saat pembuatan writeup

Nampaknya hanya banyak terisi command command dan process yang sudah ada dari sananya. Mari kita lihat ke bagian setuid

Dikarenakan penulis belum terlalu familiar dengan beberapa dari files yang ada di sini, maka penulis mencari 1 per 1 referensi atas files yang ada, dengan keyword di google (Nama File) exploit / zero day / priv escal. Ternyata terdapat 1 celah yang dapat kita manfaatkan

https://www.exploit-db.com/exploits/41154

Mari kita gunakan script diatas untuk melakukan priv escal

Berhasil kita sudah root !

Sisanya tinggal locate root.txt dan user.txt untuk mengeluarkan isi dari text file tersebut dan submit ke website HackTheBox.

Leave a Reply

Your email address will not be published. Required fields are marked *