
Descriptions
- Operating System : Linux
- IP Address : 10.10.10.206
Just info, saya menggunakan sistem operasi windows pada sistem utama, dengan bantuan sistem operasi virtual kali linux untuk mendukung berbagai tools yang akan digunakan dalam eksploitasi mesin virtual ini.
Enumeration
- Active Port

- Directory

Foothold
- Sampai sini, kita telah mendapat beberapa informasi menarik dimana pada ip tersebut kita bisa melihat bahwa port 22 (SSH), dan 80 (HTTP) aktif.
- Saya coba tes akses apakah ssh bisa melakukan login secara publik ternyata tidak bisa.

- Lalu coba akses port 80 di browser.

- Hmm menarik! setelah dilihat diraba ditrawang ternyata website tersebut menggunakan CMS yang bernama CuteNews.
Edit file hosts pada sistem lokal agar lebih mudah sehingga akses dapat dilakukan melalui domain passage.htb
- Halaman login atau register CMS ini terdapat pada halaman passage.htb/CuteNews/.

- Terlihat pada bagian footer bahwa aplikasi memiliki versi 2.1.2 yang mana setelah googling mengarahkan saya pada situs ini: https://musyokaian.medium.com/cutenews-2-1-2-remote-code-execution-vulnerability-450f29673194.
- Baca demi membaca, kesimpulan dari vulnerability ini sudah terdokumentasi pada CVE-2019-11447 yang mana menunjukan kita dapat melakukan upload shell pada fitur ubah gambar avatar dengan syarat sudah menjadi user pada CMS tersebut (oke, langsung coba registrasi).
- Selanjutnya login maka akan menampilkan halaman awal seperti berikut.

- Pergi ke halaman “Personal options” dan coba upload shell dengan menambahkan header untuk gambar berformat GIF seperti berikut (sesuai deskripsi pada dokumentasi CVE-2019-11447).
GIF8;
- Intercept request.

- Oke, shell berhasil di upload dan saatnya coba test akses.

- Agar lebih mudah akses konsol server, saya lakukan reverse shell.

- Setelah berhasil masuk ke server, langkah selanjutnya adalah eskalasi kedalam user hingga menjadi root.
Privilege Escalation
- Cek isi direktori /home untuk melihat direktori user yang ada.

- Terdapat dua user pada mesin ini yang bernama nadav dan paul namun kita tidak bisa melakukan akses kedalam direktori semua user tersebut.
Akses akun user Paul
- Setelah menelusuri isi dalam direktori CMS, terdapat folder pada /var/www/html/CuteNews/cdata/users lalu pada file bernama “lines” yang menampilkan semacam isi log user yang melakukan akses login sebelumnya.

- Print file lines dan didapat beberapa enkoding dari base64.

- Setelah decode salah satu baris, ditemukan kredensial milik user Paul.
array (
'name' =>
array (
'paul-coles' =>
array (
'id' => '1592483236',
'name' => 'paul-coles',
'acl' => '2',
'email' => 'paul@passage.htb',
'nick' => 'Paul Coles',
'pass' => 'e26f3e86d1f8108120723ebe690e5d3d61628f4130076ec6cb43f16f497273cd',
'lts' => '1592485556',
'ban' => '0',
'cnt' => '2',
),
),
)
- Decrypt password (sha256).

- Password akun Paul sudah ditemukan dan saatnya akses flag pada file home.

- FYI, setelah saya cek didalam folder /home/paul/.ssh terdapat key untuk kredensial login sehingga akses dapat dilakukan langsung ke mesin tanpa harus melakukan reverse shell.

Akses akun user Nadev
- Untuk melakukan akses ke user Nadav, ternyata key yang digunakan sama dengan user Paul karena sudah diberikan akses dan bisa dilihat pada file authorized_keys.

- Tes akses user Nadav.

Akses akun Root
- Eslakasi ini sempat membuat saya bingung karena di mesin ini banyak sekali pengecoh-pengecoh seperti service yang berjalan, port yang terbuka, dan lain-lain hingga akhirnya hamba butuh clue 🙂 (setiap mesin punya thread masing-masing yang bisa diakses pada halaman forum HTB, contohnya: https://forum.hackthebox.eu/discussion/3804/official-passage-discussion).
- Dan setelah di ulik lagi, saya coba enumerasi mesin ini menggunakan LinPEAS ternyata terdapat sebuah utilitas bernama “dbus-daemon-launch-helper”.

- Saya coba cari informasi terkait cara eskalasi hingga menemukan sebuah blog yang membahas bagaimana cara eskalasi untuk membaca file tertentu dengan izin root, dan yah ternyata jawabannya adalah menggunakan gdbus (suatu kebetulan yang disengaja 😀 haha).
- Membaca flag yang ada di direktori /root/root.txt, tapi sebelumnya saya harus membuat file bernama rahasia.txt untuk tujuan pembacaan file yang akan dibaca.
gdbus call --system --dest com.ubuntu.USBCreator --object-path /com/ubuntu/USBCreator --method com.ubuntu.USBCreator.Image /root/root.txt /tmp/mxtvn/rahasia.txt true

- Tujuan akhir sudah selesai, namun disini jika ingin menggunakan akses konsol user root kita dapat mencuri id_rsa yang ada di direktori /root/.ssh/id_rsa.

- Thanks