CTF - EvilBox : One by Vulnhub
Published:
Pada tulisan kali ini, kami akan membahas mengenai salah satu challenge berupa capture the flag (CTF) yang berasal dari salah satu platform terkenal yaitu Vulnhub.com. Challenge tersebut dibuat oleh Mowree dan bernama EvilBox: One yang telah dirilis pada tanggal 16 Agustus 2021.
Challenge tersebut mengharuskan kami untuk mendapatkan hak akses root pada mesin target serta mendapatkan flag yang berbentuk .txt. Disini kami menggunakan Virtualbox untuk menjalankan mesin Evilbox tersebut serta menggunakan network bertipe NAT sehingga dapat terhubung dengan mesin attaker kami yaitu kali linux.
Berikut adalah spesifikasi unit device yang kami gunakan dalam proses menjalankan challenge tersebut :
- Device : Laptop
- Merk : Lenovo
- Ram : 8 GB
- Storage : SSD
- Processor : Intel i3 gen 8
Terlihat dari aktivitas scanning port yang kami jalankan, Terdapat informasi mengenai port serta service yang digunakan oleh mesin tersebut. Terlihat port 22 dengan service SSH dan port 80 dengan service HTTP terbuka pada mesin tersebut. Hal ini sungguh memberikan kami informasi yang berguna pada Langkah selanjutnya.
Dalam pemikiran kami, sungguh ini menjadi celah yang sangat menjanjikan dimana port 22 dengan service ssh terbuka pada mesin target tersebut. Sehingga jika kami mendapatkan akses berupa user serta password, kami dapat dengan mudah mengontrol mesin tersebut. Selain itu juga terdapat port 80 dengan service apache yang dapat kami selidiki untuk mencari tahu kemungkinan kredential login yang dapat kami gunakan pada port ssh. Berikut adalah tampilan dari service apache yang berjalan pada port 80.
Kami melanjutkan untuk melakukan bruteforce direktori yang terdapat pada mesin tersebut. Dalam proses ini kami menggunakan batuan tools dirb.
Berdasarkan proses brutforce direktori yang kami lakukan, terdapat 2 direktori dan 2 file yang berhasil kami temukan yaitu :
- index.html
- Robots.txt
- /secret/
- server-status
- index.html
- Robots.txt
- /secret/
- server-status
Berdasarkan hasil pemeriksaan yang kami lakukan menggunakan tool dirbuster, kami menemukan adanya file evil.php yang terdapat dalam direktori /secret/. Dimana file tersebut mendapat response code 200 yang berati OK. Namun saat kami membuka file tersebut, kami tidak menemukan apa yang kami harapkan.
Disini kami merasa aneh, padahal file tersebut mendapatkan response code 200, namun tidak menampilkan apa apa. Sehingga kami memutuskan untuk mencari tahu script dari evil.php tersebut.
Berdasarkan gambar diatas, kami menemukan bahwa file evil,php tersebut memuat suatu program yang setelah kami analisis program tersebut memiliki vuln pada LFI. Sehingga kami langsung mencoba melakukan pengujian apakah pada direktori /secret/evil.php terdapat parameter lainnya. Disni kami menggunakan tools ffuf untuk melakukan bruteforce parameter
Disini kami mencoba menguji parameter "FUZZ" dengan /etc/hosts. Dimana file /etc/hosts adalah salah satu file yang wajib berada dalam suatu mesin. Dimana file /etc/hosts adalah file yang berisi informasi mengenai alamat ip serta nama host. Berdasarkan pengujian, kami berhasil menemukan suatu parameter “command”. Melalui LFI ini, memungkinkan kami untuk melihat file di mesin targert tersebut.
Setelah mengetahui bahwa mesin tersebut memiliki vuln disisi LFI, kami mencoba untuk mengakses file /etc/passwd yang berisi informasi mengenai password user yang tersimpan pada mesin target tersebut.
Disni kami berhasil mendapatkan beberapa user yang terdapat pada mesin target tersebut dan kami memfokuskan pada user “mowree”. Selanjutkan kami mencoba untuk mendaptkan ssh private key untuk user ”mowree”.
Kami berhasil mendapakatkan ssha private key untuk user “mowree”, sehingga kami dapat memecahkan password untuk user tersebut menggunakan tool john the ripper dan password dari user "mowree" adalah "unicorn"
Setelah mendapatkan apa yang kami inginkan, kami mencoba melakukan login pada service ssh di mesin tersebut. Namun pada percobaan pertama kami gagal login, dikarenakan pada service ssh tersebut menggunakan otentikasi double yaitu password dan private key. Sehinnga kami perlu menambahkan private key pada command tersebut.
Berdasarkan gambar diatas kami berhasil login pada mesin tersebut dengan user id “mowree”. Namun user id tersebut tidak memiliki priviledge account sebagai “root”, sehingga disini kami mencoba mencari cara untuk mendapatkan akses root pada mesin target.
Kami langsung mengecek izin file pada /etc/passwd, dan ternyata file tersebut mempunya izin write atau edit untuk user selain root. Sehingga dengan menggunakan user ”mowree”, kami dapat dengan mudah mengedit file /etc/passwd tersebut dengan bantuan nano. Disin kami mencoba untuk menambahkan user baru dengan nama “bimantara” yang memiliki priviledge accout sebagai root dengan password “bimantara”. Password tersebut terlebih dahulu kami lakukan proses enkripsi sha-512 dengan bantuan mkpasswd.
Dan boom, kami berhasil login dengan user “bimantara” dengan password “bimantara” dengan priviledge accout sebagai root dan berikut adalah flag yang berhasil kami dapatkan.